log
public/assets
+public/attachments
tmp
.DS_Store
source 'http://rubygems.org'
# Require rails
-gem 'rails', '3.1.3'
+gem 'rails', '3.2.2'
# Require the postgres database driver
gem 'pg'
gem 'jquery-rails'
# Load rails plugins
-gem 'rails-i18n-updater'
+gem 'rails-i18n', ">= 0.5.1"
gem 'dynamic_form'
gem 'rinku', '>= 1.2.2', :require => 'rails_rinku'
gem 'oauth-plugin', '>= 0.4.0.pre7'
gem 'open_id_authentication', '>= 1.1.0'
gem 'validates_email_format_of', '>= 1.5.1'
-gem 'composite_primary_keys', '>= 4.1.1'
+gem 'composite_primary_keys', '>= 5.0.0'
+gem 'http_accept_language', '>= 1.0.2'
+gem 'paperclip', '~> 2.0'
+gem 'deadlock_retry', '>= 1.2.0'
gem 'jsonify-rails'
+# Character conversion support for ruby 1.8
+gem 'iconv', :platforms => :ruby_18
+
# Load libxml support for XML parsing and generation
gem 'libxml-ruby', '>= 2.0.5', :require => 'libxml'
-# Load ImageMagick support for user picture resizing
-gem 'rmagick', :require => 'RMagick'
-
# Load HTML sanitizer
gem 'sanitize'
gem 'httpclient'
# Load memcache in case we are using it
-gem 'memcache-client'
-gem 'memcached'
+gem 'memcached', '>= 1.4.1'
# Gems needed for running tests
group :test do
# Gems needed for compiling assets
group :assets do
- gem 'sass-rails', " ~> 3.1.0"
- gem 'coffee-rails', "~> 3.1.0"
- gem 'uglifier'
+ gem 'sass-rails', '~> 3.2.3'
+ gem 'coffee-rails', '~> 3.2.1'
+ gem 'uglifier', '>= 1.0.3'
gem 'therubyracer'
end
remote: http://rubygems.org/
specs:
SystemTimer (1.2.3)
- actionmailer (3.1.3)
- actionpack (= 3.1.3)
- mail (~> 2.3.0)
- actionpack (3.1.3)
- activemodel (= 3.1.3)
- activesupport (= 3.1.3)
+ actionmailer (3.2.2)
+ actionpack (= 3.2.2)
+ mail (~> 2.4.0)
+ actionpack (3.2.2)
+ activemodel (= 3.2.2)
+ activesupport (= 3.2.2)
builder (~> 3.0.0)
erubis (~> 2.7.0)
- i18n (~> 0.6)
- rack (~> 1.3.5)
+ journey (~> 1.0.1)
+ rack (~> 1.4.0)
rack-cache (~> 1.1)
- rack-mount (~> 0.8.2)
rack-test (~> 0.6.1)
- sprockets (~> 2.0.3)
- activemodel (3.1.3)
- activesupport (= 3.1.3)
+ sprockets (~> 2.1.2)
+ activemodel (3.2.2)
+ activesupport (= 3.2.2)
builder (~> 3.0.0)
- i18n (~> 0.6)
- activerecord (3.1.3)
- activemodel (= 3.1.3)
- activesupport (= 3.1.3)
- arel (~> 2.2.1)
+ activerecord (3.2.2)
+ activemodel (= 3.2.2)
+ activesupport (= 3.2.2)
+ arel (~> 3.0.2)
tzinfo (~> 0.3.29)
- activeresource (3.1.3)
- activemodel (= 3.1.3)
- activesupport (= 3.1.3)
- activesupport (3.1.3)
+ activeresource (3.2.2)
+ activemodel (= 3.2.2)
+ activesupport (= 3.2.2)
+ activesupport (3.2.2)
+ i18n (~> 0.6)
multi_json (~> 1.0)
- addressable (2.2.6)
- arel (2.2.1)
+ addressable (2.2.7)
+ arel (3.0.2)
builder (3.0.0)
- coffee-rails (3.1.1)
+ cocaine (0.2.1)
+ coffee-rails (3.2.2)
coffee-script (>= 2.2.0)
- railties (~> 3.1.0)
+ railties (~> 3.2.0)
coffee-script (2.2.0)
coffee-script-source
execjs
- coffee-script-source (1.1.3)
- composite_primary_keys (4.1.1)
- activerecord (~> 3.1)
+ coffee-script-source (1.2.0)
+ composite_primary_keys (5.0.1)
+ activerecord (~> 3.2.0)
+ deadlock_retry (1.2.0)
dynamic_form (1.1.4)
erubis (2.7.0)
- execjs (1.2.9)
+ execjs (1.3.0)
multi_json (~> 1.0)
- faraday (0.7.5)
- addressable (~> 2.2.6)
- multipart-post (~> 1.1.3)
- rack (< 2, >= 1.1.0)
+ faraday (0.7.6)
+ addressable (~> 2.2)
+ multipart-post (~> 1.1)
+ rack (~> 1.1)
hike (1.2.1)
- httpclient (2.2.3)
+ http_accept_language (1.0.2)
+ httpclient (2.2.4)
i18n (0.6.0)
- jquery-rails (1.0.18)
- railties (~> 3.0)
+ iconv (0.1)
+ journey (1.0.3)
+ jquery-rails (2.0.1)
+ railties (>= 3.2.0, < 5.0)
thor (~> 0.14)
- json (1.6.1)
- jsonify (0.2.0)
- jsonify-rails (0.2.0)
+ json (1.6.5)
+ jsonify (0.3.1)
+ multi_json (~> 1.0)
+ jsonify-rails (0.3.1)
actionpack
- jsonify (>= 0.2.0)
+ jsonify (>= 0.3.1)
libv8 (3.3.10.4)
libxml-ruby (2.2.2)
- mail (2.3.0)
+ mail (2.4.3)
i18n (>= 0.4.0)
mime-types (~> 1.16)
treetop (~> 1.4.8)
- memcache-client (1.8.5)
- memcached (1.3.5)
+ memcached (1.4.1)
mime-types (1.17.2)
- multi_json (1.0.3)
- multipart-post (1.1.3)
+ multi_json (1.1.0)
+ multipart-post (1.1.5)
nokogiri (1.5.0)
oauth (0.4.5)
oauth-plugin (0.4.0.rc2)
oauth (~> 0.4.4)
oauth2
rack
- oauth2 (0.5.1)
- faraday (~> 0.7.4)
- multi_json (~> 1.0.3)
+ oauth2 (0.5.2)
+ faraday (~> 0.7)
+ multi_json (~> 1.0)
open_id_authentication (1.1.0)
rack-openid (~> 1.3)
- pg (0.11.0)
+ paperclip (2.7.0)
+ activerecord (>= 2.3.0)
+ activesupport (>= 2.3.2)
+ cocaine (>= 0.0.2)
+ mime-types
+ pg (0.13.2)
polyglot (0.3.3)
- rack (1.3.5)
- rack-cache (1.1)
+ rack (1.4.1)
+ rack-cache (1.2)
rack (>= 0.4)
- rack-mount (0.8.3)
- rack (>= 1.0.0)
rack-openid (1.3.1)
rack (>= 1.1.0)
ruby-openid (>= 2.1.8)
rack
rack-test (0.6.1)
rack (>= 1.0)
- rails (3.1.3)
- actionmailer (= 3.1.3)
- actionpack (= 3.1.3)
- activerecord (= 3.1.3)
- activeresource (= 3.1.3)
- activesupport (= 3.1.3)
+ rails (3.2.2)
+ actionmailer (= 3.2.2)
+ actionpack (= 3.2.2)
+ activerecord (= 3.2.2)
+ activeresource (= 3.2.2)
+ activesupport (= 3.2.2)
bundler (~> 1.0)
- railties (= 3.1.3)
- rails-i18n-updater (1.0.1)
- actionpack
- activesupport
- rails
- railties (3.1.3)
- actionpack (= 3.1.3)
- activesupport (= 3.1.3)
+ railties (= 3.2.2)
+ rails-i18n (0.5.1)
+ i18n (~> 0.5)
+ railties (3.2.2)
+ actionpack (= 3.2.2)
+ activesupport (= 3.2.2)
rack-ssl (~> 1.3.2)
rake (>= 0.8.7)
rdoc (~> 3.4)
thor (~> 0.14.6)
rake (0.9.2.2)
- rdoc (3.11)
+ rdoc (3.12)
json (~> 1.4)
- rinku (1.4.1)
- rmagick (2.13.1)
+ rinku (1.5.1)
ruby-openid (2.1.8)
sanitize (2.0.3)
- nokogiri (< 1.6, >= 1.4.4)
- sass (3.1.10)
- sass-rails (3.1.5)
- actionpack (~> 3.1.0)
- railties (~> 3.1.0)
- sass (~> 3.1.10)
- tilt (~> 1.3.2)
- sprockets (2.0.3)
+ nokogiri (>= 1.4.4, < 1.6)
+ sass (3.1.15)
+ sass-rails (3.2.4)
+ railties (~> 3.2.0)
+ sass (>= 3.1.10)
+ tilt (~> 1.3)
+ sprockets (2.1.2)
hike (~> 1.2)
rack (~> 1.0)
- tilt (!= 1.3.0, ~> 1.1)
- therubyracer (0.9.9)
+ tilt (~> 1.1, != 1.3.0)
+ therubyracer (0.9.10)
libv8 (~> 3.3.10)
thor (0.14.6)
tilt (1.3.3)
treetop (1.4.10)
polyglot
polyglot (>= 0.3.1)
- tzinfo (0.3.31)
- uglifier (1.1.0)
+ tzinfo (0.3.32)
+ uglifier (1.2.3)
execjs (>= 0.3.0)
multi_json (>= 1.0.2)
validates_email_format_of (1.5.3)
DEPENDENCIES
SystemTimer (>= 1.1.3)
- coffee-rails (~> 3.1.0)
- composite_primary_keys (>= 4.1.1)
+ coffee-rails (~> 3.2.1)
+ composite_primary_keys (>= 5.0.0)
+ deadlock_retry (>= 1.2.0)
dynamic_form
+ http_accept_language (>= 1.0.2)
httpclient
+ iconv
jquery-rails
jsonify-rails
libxml-ruby (>= 2.0.5)
- memcache-client
- memcached
+ memcached (>= 1.4.1)
oauth-plugin (>= 0.4.0.pre7)
open_id_authentication (>= 1.1.0)
+ paperclip (~> 2.0)
pg
- rails (= 3.1.3)
- rails-i18n-updater
+ rails (= 3.2.2)
+ rails-i18n (>= 0.5.1)
rinku (>= 1.2.2)
- rmagick
sanitize
- sass-rails (~> 3.1.0)
+ sass-rails (~> 3.2.3)
therubyracer
timecop
- uglifier
+ uglifier (>= 1.0.3)
validates_email_format_of (>= 1.5.1)
--- /dev/null
+ 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.
+
+ <one line to give the program's name and a brief idea of what it does.>
+ Copyright (C) <year> <name of author>
+
+ 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.
+
+ <signature of Ty Coon>, 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.
--- /dev/null
+# Description
+
+This is the Rails port, the [Ruby on Rails](http://rubyonrails.org/)
+application that powers [OpenStreetMap](http://www.openstreetmap.org).
+
+The Rails port provides almost all the services which are available
+on the OpenStreetMap site, including:
+
+* The web site itself, including the edit pages.
+* The editing [API](http://wiki.openstreetmap.org/wiki/API_v0.6).
+* Browse pages - a web front-end to the OpenStreetMap data.
+* The user system, including preferences, diary entries, friends and
+ user-to-user messaging.
+* GPX uploads, browsing and API.
+
+There are some non-Rails services which the site includes, for
+example; tiles, geocoding, GPX file loading. There are also some
+utilities which provide other services on the OpenStreetMap site,
+or improve its function, but are not integrated with the Rails
+port, for example; Osmosis, CGImap.
+
+# License
+
+This software is licensed under the [GNU General Public License 2.0](http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt),
+a copy of which can be found in the LICENSE file.
+
+# Running it
+
+You can find documentation on [how to setup and
+run](http://wiki.openstreetmap.org/wiki/The_Rails_Port) the software
+on the OpenStreetMap wiki.
+
+# Hacking it
+
+The canonical Git repository for this software is hosted at
+[git.openstreetmap.org](http://git.openstreetmap.org/?p=rails.git),
+but much of the development is done on GitHub and for most people
+[this repository on Github](https://github.com/openstreetmap/openstreetmap-website)
+will be a better place to start.
+
+Anybody hacking on the code is welcome to join the
+[rails-dev](http://lists.openstreetmap.org/listinfo/rails-dev) mailing
+list where other people hacking on the code hang out and will be happy
+to help with any problems you may encounter.
+
+There are also weekly IRC meetings, at 1800 GMT on Mondays in #osm-ewg on
+the OFTC network where questions can be asked and ideas discussed. For more
+information, please see [the EWG page]
+(http://www.osmfoundation.org/wiki/Engineering_Working_Group#Meetings). You can
+join the channel using your favourite IRC client or [irc.openstreetmap.org](http://irc.openstreetmap.org/).
+
+## Rails
+
+If you're not already familiar with Ruby on Rails then it's probably
+worth having a look at [Rails Guides](http://guides.rubyonrails.org/) for an introduction.
+
+While working with Rails you will probably find the [API documentation](http://api.rubyonrails.org/)
+helpful as a reference.
+
+## Coding style
+
+When writing code it is generally a good idea to try and match your
+formatting to hat of any existing code in the same file, or to other
+similar files if you are writing new code. Consistency of layout is
+far more important that the layout itself as it makes reading code
+much easier.
+
+One golden rule of formatting -- please don't use tabs in your code
+as they will cause the file to be formatted differently for different
+people depending on how they have their editor configured.
+
+## Testing
+
+Having a good suite of tests is very important to the stability and
+maintainability of any code base. The tests in the Rails port code are
+by no means complete, but they are extensive, and must continue to be
+so with any new functionality which is written. Tests are also useful
+in giving others confidence in the code you've written, and can
+greatly speed up the process of merging in new code.
+
+When hacking, you should:
+
+* Write new tests to cover the new functionality you've added.
+* Where appropriate, modify existing tests to reflect new or changed
+functionality.
+* Never comment out or remove a test just because it doesn't pass.
+
+## Comments
+
+Sometimes it's not apparent from the code itself what it does, or,
+more importantly, **why** it does that. Good comments help your fellow
+developers to read the code and satisfy themselves that it's doing the
+right thing.
+
+When hacking, you should:
+
+* Comment your code - don't go overboard, but explain the bits which
+might be difficult to understand what the code does, why it does it
+and why it should be the way it is.
+* Check existing comments to ensure that they are not misleading.
+
+## Committing
+
+When you submit patches, the project maintainer has to read them and
+understand them. This is difficult enough at the best of times, and
+misunderstanding patches can lead to them being more difficult to
+merge. To help wit this, when submitting you should:
+
+* Split up large patches into smaller units of functionality.
+* Keep your commit messages relevant to the changes in each individual
+unit.
+
+When writing commit messages please try and stick to the same style as
+other commits, namely:
+
+* A one line summary, starting with a capital and with no full stop.
+* A blank line.
+* Full description, as proper sentences with capitals and full stops.
+
+For simple commits the one line summary is often enough and the body
+of the commit message can be left out.
+
+## Sending the patches
+
+If you have forked on GitHub then the best way to submit your patches is to
+push your changes back to GitHub and then send a "pull request" on GitHub.
+
+Otherwise you should either push your changes to a publicly visible git repository
+and send the details to the [rails-dev](http://lists.openstreetmap.org/listinfo/rails-dev)
+list or generate patches with `git format-patch` and send them to the
+[rails-dev](http://lists.openstreetmap.org/listinfo/rails-dev) list.
+
+++ /dev/null
-# Description
-
-This is the Rails port. The Ruby on Rails application that powers
-http://www.openstreetmap.org.
-
-# Running it
-
-You can find documentation on how to setup and run the software on the
-OpenStreetMap wiki:
-
-* http://wiki.openstreetmap.org/wiki/The_Rails_Port
-
-# Hacking it
-
-The canonnical Git repository for this software is hosted at
-git.openstreetmap.org:
-
-* http://git.openstreetmap.org/?p=rails.git
-
-See commiting to the rails port on the wiki for getting your patches
-integrated:
-
-* http://wiki.openstreetmap.org/wiki/Committing_to_the_rails_port
-
theme: "<%= asset_path 'theme/default/style.css' %>"
});
- var mapnik = new OpenLayers.Layer.OSM.Mapnik(i18n("javascripts.map.base.mapnik"), {
+ var mapnik = new OpenLayers.Layer.OSM.Mapnik(i18n("javascripts.map.base.standard"), {
attribution: "",
keyid: "mapnik",
displayOutsideMaxExtent: true,
});
map.addLayer(mapnik);
- var osmarender = new OpenLayers.Layer.OSM.Osmarender(i18n("javascripts.map.base.osmarender"), {
- attribution: "",
- keyid: "osmarender",
- displayOutsideMaxExtent: true,
- wrapDateLine: true,
- layerCode: "O"
- });
- map.addLayer(osmarender);
-
var cyclemap = new OpenLayers.Layer.OSM.CycleMap(i18n("javascripts.map.base.cycle_map"), {
attribution: "Tiles courtesy of <a href='http://www.opencyclemap.org/' target='_blank'>Andy Allan</a>",
keyid: "cyclemap",
});
map.addLayer(mapquest);
- var numZoomLevels = Math.max(mapnik.numZoomLevels, osmarender.numZoomLevels);
-
markers = new OpenLayers.Layer.Markers("Markers", {
displayInLayerSwitcher: false,
- numZoomLevels: numZoomLevels,
+ numZoomLevels: 20,
maxExtent: new OpenLayers.Bounds(-20037508,-20037508,20037508,20037508),
maxResolution: 156543,
units: "m",
clearTimeout(menu.timer);
if (delay > 0) {
- menu.timer = setTimeout(function () { openMenu(anchor, menu, align) }, delay);
+ menu.timer = setTimeout(function () { openMenu(anchor, menu, align); }, delay);
} else {
openMenu(event, menu, align);
}
function leaveMenuAnchor(event, anchor, menu) {
var to = event.relatedTarget;
- if (!menu.is(to) && menu.has(to).length == 0) {
+ if (!menu.is(to) && menu.has(to).length === 0) {
menu.hide();
}
function leaveMenu(event, anchor, menu) {
var to = event.relatedTarget;
- if (!anchor.is(to) && menu.has(to).length == 0) {
+ if (!anchor.is(to) && menu.has(to).length === 0) {
menu.hide();
}
var anchor = $("#" + anchorid);
var menu = $("#" + menuid);
- anchor.mouseup(function (event) { closeMenu(menu) });
- anchor.mouseover(function (event) { enterMenuAnchor(anchor, anchor, menu, delay, align) });
- anchor.mouseout(function (event) { leaveMenuAnchor(event, anchor, menu) });
- menu.mouseup(function (event) { closeMenu(menu) });
- menu.mouseout(function (event) { leaveMenu(event, anchor, menu) });
+ anchor.mouseup(function (event) { closeMenu(menu); });
+ anchor.mouseover(function (event) { enterMenuAnchor(anchor, anchor, menu, delay, align); });
+ anchor.mouseout(function (event) { leaveMenuAnchor(event, anchor, menu); });
+ menu.mouseup(function (event) { closeMenu(menu); });
+ menu.mouseout(function (event) { leaveMenu(event, anchor, menu); });
}
var minzoom = match[1];
var name = link.id.replace(/anchor$/, "");
+ $(link).off("click.minzoom");
+
if (zoom >= minzoom) {
- $(link).off("click");
$(link).attr("title", i18n("javascripts.site." + name + "_tooltip"));
$(link).removeClass("disabled");
} else {
- $(link).click(function () { alert(i18n("javascripts.site." + name + "_zoom_alert")); return false; });
+ $(link).on("click.minzoom", function () { alert(i18n("javascripts.site." + name + "_zoom_alert")); return false; });
$(link).attr("title", i18n("javascripts.site." + name + "_disabled_tooltip"));
$(link).addClass("disabled");
}
// This is a hack to omit the default mapnik layer from the shortlink.
if (layers && layers != "M") {
- args["layers"] = layers;
+ args.layers = layers;
}
else {
- delete args["layers"];
+ delete args.layers;
}
// Here we're assuming that all parameters but ?layers= and
// ?{node,way,relation}= can be safely omitted from the shortlink
// which encodes lat/lon/zoom. If new URL parameters are added to
// the main slippy map this needs to be changed.
- if (args["layers"] || args[objtype]) {
+ if (args.layers || args[objtype]) {
this.href = setArgs(prefix + "/go/" + code, args);
} else {
this.href = prefix + "/go/" + code;
* Called to get the arguments from a URL as a hash.
*/
function getArgs(url) {
- var args = new Object();
+ var args = {};
var querystart = url.indexOf("?");
if (querystart >= 0) {
if (match = queryitems[i].match(/^(.*)=(.*)$/)) {
args[unescape(match[1])] = unescape(match[2]);
} else {
- args[unescape(queryitems[i])] = null
+ args[unescape(queryitems[i])] = null;
}
}
}
* Called to set the arguments on a URL from the given hash.
*/
function setArgs(url, args) {
- var queryitems = new Array();
+ var queryitems = [];
- for (arg in args)
- {
+ for (arg in args) {
if (args[arg] == null) {
queryitems.push(escape(arg));
} else {
* rails and then later by javascript.
*/
function i18n(string, keys) {
- string = i18n_strings[string] || string
+ string = i18n_strings[string] || string;
for (var key in keys) {
var re_key = '\\[\\[' + key + '\\]\\]';
/* Default rules for the body of every page */
body {
- font-family: Arial,sans-serif;
- color: #000;
+ font-family: 'Helvetica Neue',Arial,sans-serif;
+ font-size: 14px;
+ line-height: 20px;
+ color: #222;
background-color: #fff;
margin: 0px;
padding: 0px;
height: 1px;
}
+/* Default rules for headings */
+
+h2 {
+ margin: 5px 0;
+ font-size: 25px;
+ line-height: 30px;
+}
+
/* Rules for the whole left sidebar, including the logo */
#left {
position: absolute;
top: 0px;
- min-width: 170px;
+ width: 185px;
+ font-size: 11px;
+ line-height: 12px;
}
/* Rules for the OpenStreetMap logo in the top left corner */
width: 170px;
min-width: 170px;
padding: 5px;
- margin: 5px;
- height: 150px;
- background: #fff;
- border: 1px solid #ccd;
- border-radius: 5px;
- -moz-border-radius: 5px;
+ text-align: center;
+ margin: 25px 0 5px 0;
}
#logo h1 {
- font-size: 14px;
+ font-size: 18px;
+ line-height: 20px;
text-align: center;
margin: 0px;
}
#logo h2 {
font-size: 10px;
+ line-height: 15px;
margin: 0px;
}
/* Rules for the introductory text displayed in the left sidebar to new users */
#intro {
- width: 170px;
- padding: 5px;
- margin: 5px;
- border: 1px solid #ccc;
- font-size: 11px;
- border-radius: 5px;
- -moz-border-radius: 5px;
+ border-top: 1px solid #ccc;
}
#intro p {
padding: 5px;
border: 1px solid #ccc;
background: #ea0;
- line-height: 1.2em;
+ line-height: 20px;
font-size: 14px;
border-radius: 5px;
-moz-border-radius: 5px;
/* Rules for the menu displayed in the left sidebar */
.left_menu {
- width: 170px;
- min-width: 170px;
- margin: 5px;
padding: 5px;
- border: 1px solid #ccc;
- background: #ddd;
- line-height: 1.2em;
+ margin: 4px 0;
+ border-top: 1px solid #ccc;
+ border-bottom: 1px solid #ccc;
+ line-height: 20px;
font-size: 14px;
font-weight: bold;
- border-radius: 5px;
- -moz-border-radius: 5px;
-}
-
-.left_menu td {
- font-size: 12px;
}
.left_menu h1 {
*/
.optionalbox {
- width: 170px;
- min-width: 170px;
- margin: 5px;
padding: 5px;
- border: 1px solid #ccc;
- line-height: 1.2em;
- font-size: 12px;
- background: #eee;
- border-radius: 5px;
- -moz-border-radius: 5px;
+ margin: 4px 0;
+ border-top: 1px solid #ccc;
}
.optionalbox h1 {
font-size: 14px;
font-weight: bold;
- line-height: 22px;
+ line-height: 20px;
margin: 0px;
vertical-align: bottom;
}
/* Rules for the search box */
.whereami {
- line-height: 22px;
+ line-height: 20px;
vertical-align: bottom;
}
.search_container {
- height: 16px;
- padding-bottom: 6px;
+ height: 15px;
+ padding-bottom: 5px;
}
#search_field form {
}
.search_help {
- font-size: 10px;
- line-height: 1em;
- margin-top: 3px;
+ margin-top: 2px;
margin-bottom: 0px;
}
/* Rules for donation request box */
.donate {
- width: 170px;
- margin: 5px;
+ width: 155px;
+ margin: 10px 5px;
padding: 5px;
border: 1px solid #ccc;
background: #cbeea7;
- line-height: 1.2em;
+ line-height: 20px;
text-align: center;
font-size: 14px;
border-radius: 5px;
/* Rules for tabbed navigation bar */
-#tabnav
-{
- height: 20px;
- margin: 0px;
- padding-top: 5px;
- background: image-url('tab_bottom.gif') repeat-x bottom;
+#top-bar {
+ border-bottom: 1px solid #ccc;
+ height: 29px;
}
-#tabnav li
-{
- margin: 0px;
+#tabnav {
+ padding: 0;
+ margin: 0;
+ overflow:hidden;
+}
+
+#tabnav li {
+ margin: 0px;
padding: 0px;
display: inline;
list-style-type: none;
}
-#tabnav a, #tabnav a:link, #tabnav a:visited
-{
- background: #f3f3f3;
- font-size: 13px;
- line-height: 14px;
+#tabnav a, #tabnav a:link, #tabnav a:visited {
+ background: #fff;
+ font-size: 14px;
+ line-height: 19px;
font-weight: bold;
- padding: 2px 10px;
- border: 1px solid #ccc;
+ padding: 5px 10px;
text-decoration: none;
color: #333;
- border-top-right-radius: 5px;
- -moz-border-radius-topright: 5px;
- border-top-left-radius: 5px;
- -moz-border-radius-topleft: 5px;
}
-#tabnav a:link.active, #tabnav a:visited.active
-{
- border-bottom: 1px solid #fff;
- background: #fff;
+#tabnav a:link.active, #tabnav a:visited.active {
+ border-bottom: 1px solid #aaa;
+ background: #9ed485;
color: #000;
}
-#tabnav a:link:hover, #tabnav a:visited:hover
-{
- background: #fff;
+#tabnav a:link:hover, #tabnav a:visited:hover {
+ text-decoration:underline;
}
-#tabnav a:link.disabled, #tabnav a:visited.disabled,
-#tabnav a:link:hover.disabled, #tabnav a:visited:hover.disabled
-{
- background: #bbbbbb;
- color: white
+#tabnav a:link.disabled,
+#tabnav a:visited.disabled,
+#tabnav a:link:hover.disabled,
+#tabnav a:visited:hover.disabled {
+ color: #888;
}
/* Rules for greeting bar in the top right corner */
#greeting {
- height: 20px;
+ height: 28px;
margin: 0px;
- padding-top: 5px;
font-size: 13px;
- line-height: 14px;
- background: image-url('tab_bottom.gif') repeat-x bottom;
+ line-height: 28px;
}
.greeting-bar-unread {
/* Rules for OpenLayers maps */
#map {
- border: 1px solid black;
- margin: 0px;
+ margin: 0px;
padding: 0px;
}
#permalink {
z-index: 10000;
position: absolute;
- bottom: 15px;
- right: 15px;
+ bottom: 0px;
+ right: 0px;
+ padding: 5px;
+ background:#fff;
text-align: right;
- font-size: smaller;
+ font-size: 12px;
+}
+
+#permalink a {
+ padding: 5px;
}
/* Rules for edit menu */
#sidebar {
display: none;
position: absolute;
- border: 1px solid black;
margin: 0px;
padding: 0px;
width: 30%;
overflow: auto;
position: absolute;
font-size: 13px;
- line-height: 14px;
+ line-height: 15px;
top: 29px;
bottom: 0px;
left: 0px;
#sidebar .sidebar_title {
margin: 0px;
- padding: 3px 6px;
+ padding: 3px 6px 4px 6px;
height: 29px;
font-size: 14px;
line-height: 15px;
- border-bottom: 1px solid black;
background: #bbb;
}
.search_results_heading {
margin: 0px;
- padding: 3px 6px;
- border: 1px solid #ccc;
- background: #ddd;
+ padding: 2px 5px;
+ border-bottom: 1px solid #ccc;
+ font-weight: bold;
}
.search_results_entry {
margin: 0px;
- padding: 2px 6px;
+ padding: 2px 5px;
}
.search_results_error {
.export_heading {
margin: 0px;
- padding: 3px 6px;
- border: 1px solid #ccc;
- background: #ddd;
+ padding: 2px 5px;
+ border-bottom: 1px solid #ccc;
+ font-weight: bold;
}
.export_bounds {
/* Rules for the main content area */
#content {
- padding: 0px;
+ padding: 10px;
margin: 0px;
- position: absolute;
- bottom: 10px;
- line-height: 1.2em;
+ position: absolute;
+ bottom: 0px;
+}
+
+#content.site_index,
+#content.site_edit,
+#content.site_export {
+ border: 0px;
+ padding: 0px;
}
#slim_container {
position: relative;
width: 90%;
height: 400px;
+ border: 1px solid #ccc;
display: none;
}
position: relative;
width: 500px;
height: 400px;
+ border: 1px solid #ccc;
}
#accountImage td {
position: relative;
width: 400px;
height: 400px;
+ border: 1px solid #ccc;
}
.user_view .user_map p#no_home_location {
.fieldName {
vertical-align: top;
font-weight: bold;
+ font-size: 12px;
+ line-height: 20px;
}
.minorNote {
font-size: 0.8em;
}
-input[type="text"], input[type="email"], input[type="url"], input[type="password"], textarea {
- border: 1px solid black;
-}
-
-input[type="submit"] {
- border: 1px solid black;
+input[type="text"],
+input[type="email"],
+input[type="url"],
+input[type="password"],
+textarea {
+ border: 1px solid #888;
}
/* Rules for user images */
/* Rules for doing distinct colour of alternate table rows */
-.table0 {
+.table0 {
background: #f6f6f6;
}
-.table1 {
+.table1 {
background: #fff;
}
/* Rules for the main content area */
#content {
- top: 35px;
+ top: 30px;
}
/* Rules for OpenLayers maps */
/* Rules for tabbed navigation bar */
-#tabnav
-{
- padding-left: 215px;
+#top-bar {
+ margin-left: 185px;
}
-#tabnav a, #tabnav a:link, #tabnav a:visited
-{
+#tabnav a,
+#tabnav a:link,
+#tabnav a:visited {
float: left;
- margin-right: 4px;
+ margin-right: 1px;
}
/* Rules for greeting bar in the top right corner */
left: 15px
}
+/* Rules for OpenLayers maps */
+
+#map {
+ border-left: 1px solid #ccc;
+}
+
/* Rules for attribution text under the main map shown on printouts */
.attribution_license {
#sidebar {
left: 0px;
- margin-right: 3px;
+ border-left: 1px solid #ccc;
}
#sidebar #sidebar_title {
/* Rules for the main content area */
#content {
- left: 192px;
- right: 10px;
+ border-left: 1px solid #ccc;
+ left: 185px;
+ right: 0px;
text-align: left;
}
float: right;
}
-/* Rules for the login page */
-
-#login_wrapper input[type=submit] {
- float: right;
-}
-
/* Rules for the account confirmation page */
form#termsForm div#buttons {
text-align: right;
}
-input.openid_url {
+input.openid_url {
background: image-url('openid_input.png') repeat-y left white;
padding-left: 16px;
}
/* Rules for tabbed navigation bar */
-
-#tabnav
-{
- padding-right: 215px;
+#top-bar {
+ margin-right: 185px
}
-#tabnav a, #tabnav a:link, #tabnav a:visited
-{
+#tabnav a,
+#tabnav a:link,
+#tabnav a:visited {
float: right;
- margin-left: 4px;
+ margin-left: 1px;
}
/* Rules for greeting bar in the top right corner */
right: 15px
}
+/* Rules for OpenLayers maps */
+
+#map {
+ border-right: 1px solid #ccc;
+}
+
/* Rules for attribution text under the main map shown on printouts */
.attribution_license {
#sidebar {
right: 0px;
- margin-left: 3px;
+ border-right: 1px solid #ccc;
}
#sidebar #sidebar_title {
/* Rules for the main content area */
#content {
- right: 192px;
- left: 10px;
+ border-right: 1px solid #ccc;
+ right: 185px;
+ left: 0px;
text-align: right;
}
float: left;
}
-/* Rules for the login page */
-
-#login_wrapper input[type=submit] {
- float: left;
-}
-
/* Rules for the account confirmation page */
form#termsForm div#buttons {
text-align: left;
}
-input.openid_url {
+input.openid_url {
background: image-url('openid_input.png') repeat-y right white;
padding-right: 16px;
}
}
/* Rules for tabbed navigation bar */
+#top-bar {
+ margin: 0;
+}
-#tabnav
-{
+#tabnav {
height: 14px;
margin: 0px;
- padding-left: 3px;
padding-top: 5px;
margin-top: 18px;
- background: image-url('tab_bottom.gif') repeat-x bottom;
font-size: 10px;
line-height: 10px;
}
-#tabnav a, #tabnav a:link, #tabnav a:visited
-{
+#tabnav a, #tabnav a:link, #tabnav a:visited {
font-size: 10px;
line-height: 10px;
- padding: 1px 5px;
+ padding: 2px 5px;
margin-right: 1px;
}
def amf_handle_error_with_timeout(call,rootobj,rootid)
amf_handle_error(call,rootobj,rootid) do
- Timeout::timeout(API_TIMEOUT, OSM::APITimeoutError) do
+ OSM::Timer.timeout(API_TIMEOUT, OSM::APITimeoutError) do
yield
end
end
class ApplicationController < ActionController::Base
+ include SessionPersistence
protect_from_forgery
report_error message, :bad_request
rescue OSM::APIError => ex
report_error ex.message, ex.status
- rescue ActionController::UnknownAction => ex
+ rescue AbstractController::ActionNotFound => ex
raise
rescue Exception => ex
logger.info("API threw unexpected #{ex.class} exception: #{ex.message}")
##
# wrap an api call in a timeout
def api_call_timeout
- SystemTimer.timeout_after(API_TIMEOUT) do
+ OSM::Timer.timeout(API_TIMEOUT) do
yield
end
rescue Timeout::Error
##
# wrap a web page in a timeout
def web_timeout
- SystemTimer.timeout_after(WEB_TIMEOUT) do
+ OSM::Timer.timeout(WEB_TIMEOUT) do
yield
end
- rescue ActionView::TemplateError => ex
- if ex.original_exception.is_a?(Timeout::Error)
+ rescue ActionView::Template::Error => ex
+ ex = ex.original_exception
+
+ if ex.is_a?(ActiveRecord::StatementInvalid) and ex.message =~ /^Timeout::Error/
+ ex = Timeout::Error.new
+ end
+
+ if ex.is_a?(Timeout::Error)
render :action => "timeout"
else
raise
end)
options[:cache_path] = Proc.new do |controller|
- cache_path.merge(controller.params).merge(:locale => I18n.locale)
+ cache_path.merge(controller.params).merge(:host => SERVER_URL, :locale => I18n.locale)
end
actions.push(options)
# extend expire_action to expire all variants
def expire_action(options = {})
I18n.available_locales.each do |locale|
- super options.merge(:locale => locale)
+ super options.merge(:host => SERVER_URL, :locale => locale)
end
end
end
end
+ if params[:nearby]
+ if @user
+ changesets = changesets.where(:user_id => @user.nearby)
+ elsif request.format == :html
+ require_user
+ return
+ end
+ end
+
if params[:bbox]
bbox = BoundingBox.from_bbox_params(params)
elsif params[:minlon] and params[:minlat] and params[:maxlon] and params[:maxlat]
@title = t 'changeset.list.title_friend'
@heading = t 'changeset.list.heading_friend'
@description = t 'changeset.list.description_friend'
+ elsif params[:nearby] and @user
+ @title = t 'changeset.list.title_nearby'
+ @heading = t 'changeset.list.heading_nearby'
+ @description = t 'changeset.list.description_nearby'
elsif user and bbox
@title = t 'changeset.list.title_user_bbox', :user => user.display_name, :bbox => bbox.to_s
@heading = t 'changeset.list.heading_user_bbox', :user => user.display_name, :bbox => bbox.to_s
@bbox = bbox
@edits = changesets.order("changesets.created_at DESC").offset((@page - 1) * @page_size).limit(@page_size).preload(:user, :changeset_tags)
- end
- render :action => :list
+ render :action => :list
+ end
end
##
before_filter :check_database_writable, :only => [:new, :edit]
before_filter :require_administrator, :only => [:hide, :hidecomment]
- caches_action :list, :view, :layout => false
+ caches_action :list, :layout => false, :unless => :user_specific_list?
caches_action :rss, :layout => true
+ caches_action :view, :layout => false
cache_sweeper :diary_sweeper, :only => [:new, :edit, :comment, :hide, :hidecomment]
def new
},
:order => 'created_at DESC',
:per_page => 20)
+ elsif params[:friends]
+ if @user
+ @title = t 'diary_entry.list.title_friends'
+ @entry_pages, @entries = paginate(:diary_entries, :include => :user,
+ :conditions => {
+ :user_id => @user.friend_users,
+ :visible => true
+ },
+ :order => 'created_at DESC',
+ :per_page => 20)
+ else
+ require_user
+ return
+ end
+ elsif params[:nearby]
+ if @user
+ @title = t 'diary_entry.list.title_nearby'
+ @entry_pages, @entries = paginate(:diary_entries, :include => :user,
+ :conditions => {
+ :user_id => @user.nearby,
+ :visible => true
+ },
+ :order => 'created_at DESC',
+ :per_page => 20)
+ else
+ require_user
+ return
+ end
else
@title = t 'diary_entry.list.title'
@entry_pages, @entries = paginate(:diary_entries, :include => :user,
comment.update_attributes(:visible => false)
redirect_to :action => "view", :display_name => comment.diary_entry.user.display_name, :id => comment.diary_entry.id
end
+
+ def comments
+ @this_user = User.active.find_by_display_name(params[:display_name])
+
+ if @this_user
+ @comment_pages, @comments = paginate(:diary_comments,
+ :conditions => { :user_id => @this_user },
+ :order => 'created_at DESC',
+ :per_page => 20)
+ @page = (params[:page] || 1).to_i
+ else
+ @title = t'diary_entry.no_such_user.title'
+ @not_found_user = params[:display_name]
+ render :action => 'no_such_user', :status => :not_found
+ end
+ end
private
##
# require that the user is a administrator, or fill out a helpful error message
redirect_to :controller => 'diary_entry', :action => 'view', :display_name => params[:id]
end
end
+
+ ##
+ # is this list user specific?
+ def user_specific_list?
+ params[:friends] or params[:nearby]
+ end
end
class SiteController < ApplicationController
layout 'site', :except => [:key, :permalink]
+ layout false, :only => [:key, :permalink]
before_filter :authorize_web
before_filter :set_locale
@zoom = '17' if @zoom.nil?
end
end
+
+ def copyright
+ @locale = params[:copyright_locale] || I18n.locale
+ end
end
@trace.errors.add(:gpx_file, "can't be blank")
end
else
- @trace = Trace.new(:visibility => default_visibility)
+ @trace = Trace.new({:visibility => default_visibility}, :without_protection => true)
end
@title = t 'trace.create.upload_trace'
trace = Trace.find(params[:id])
if trace.visible? and (trace.public? or (@user and @user == trace.user))
- if request.format == Mime::XML
+ if Acl.no_trace_download(request.remote_ip)
+ render :nothing => true, :status => :forbidden
+ elsif request.format == Mime::XML
send_file(trace.xml_file, :filename => "#{trace.id}.xml", :type => Mime::XML.to_s, :disposition => 'attachment')
else
send_file(trace.trace_name, :filename => "#{trace.id}#{trace.extension_name}", :type => trace.mime_type, :disposition => 'attachment')
end
if params[:tag]
- traces = traces.where("EXISTS (SELECT * FROM gpx_file_tags AS gft WHERE gft.gpx_id = gpx_files.id AND gft.tag = ?)")
+ traces = traces.where("EXISTS (SELECT * FROM gpx_file_tags AS gft WHERE gft.gpx_id = gpx_files.id AND gft.tag = ?)", params[:tag])
end
traces = traces.order("timestamp DESC")
:inserted => true,
:user => @user,
:timestamp => Time.now.getutc
- })
+ }, :without_protection => true)
Trace.transaction do
begin
else
render :action => 'terms'
end
+ elsif params[:user] and Acl.no_account_creation(request.remote_ip, params[:user][:email].split("@").last)
+ render :action => 'blocked'
else
session[:referer] = params[:referer]
def save
@title = t 'user.new.title'
- if Acl.address(request.remote_ip).where(:k => "no_account_creation").exists?
- render :action => 'new'
- elsif params[:decline]
+ if params[:decline]
if @user
@user.terms_seen = true
else
redirect_to :action => :account, :display_name => @user.display_name
end
+ elsif Acl.no_account_creation(request.remote_ip, params[:user][:email].split("@").last)
+ render :action => 'blocked'
else
@user = User.new(params[:user])
:openid_url => params[:openid])
flash.now[:notice] = t 'user.new.openid association'
+ elsif Acl.no_account_creation(request.remote_ip)
+ render :action => 'blocked'
end
end
elsif user = User.authenticate(:username => username, :password => password, :pending => true)
failed_login t('user.login.account not active', :reconfirm => url_for(:action => 'confirm_resend', :display_name => user.display_name))
elsif User.authenticate(:username => username, :password => password, :suspended => true)
- webmaster = link_to t('user.login.webmaster'), "mailto:webmaster@openstreetmap.org"
- failed_login t('user.login.account suspended', :webmaster => webmaster)
+ failed_login t('user.login.account is suspended', :webmaster => "mailto:webmaster@openstreetmap.org")
else
failed_login t('user.login.auth failure')
end
when "active", "confirmed" then
successful_login(user)
when "suspended" then
- webmaster = link_to t('user.login.webmaster'), "mailto:webmaster@openstreetmap.org"
- failed_login t('user.login.account suspended', :webmaster => webmaster)
+ failed_login t('user.login.account is suspended', :webmaster => "mailto:webmaster@openstreetmap.org")
else
failed_login t('user.login.auth failure')
end
cookies.permanent["_osm_username"] = user.display_name
session[:user] = user.id
- session_expires_after 1.month if session[:remember_me]
+ session_expires_after 28.days if session[:remember_me]
target = session[:referer] || url_for(:controller => :site, :action => :index)
if user.save
set_locale
+ cookies.permanent["_osm_username"] = user.display_name
+
if user.new_email.blank?
flash.now[:notice] = t 'user.account.flash update success'
else
around_filter :setup_nonce
def grant
- @this_user.roles.create(:role => @role, :granter_id => @user.id)
+ @this_user.roles.create({
+ :role => @role, :granter_id => @user.id
+ }, :without_protection => true)
redirect_to :controller => 'user', :action => 'view', :display_name => @this_user.display_name
end
url = "http://nominatim.openstreetmap.org/reverse?lat=#{lat}&lon=#{lon}&zoom=#{zoom}&accept-language=#{language}"
begin
- response = Timeout::timeout(4) do
+ response = OSM::Timer.timeout(4) do
REXML::Document.new(Net::HTTP.get(URI.parse(url)))
end
rescue Exception
def user_image(user, options = {})
options[:class] ||= "user_image"
- if user.image
- image_tag url_for_file_column(user, "image"), options
- else
- image_tag "anon_large.png", options
- end
+ image_tag user.image.url(:large), options
end
def user_thumbnail(user, options = {})
options[:class] ||= "user_thumbnail"
- if user.image
- image_tag url_for_file_column(user, "image"), options
- else
- image_tag "anon_small.png", options
- end
+ image_tag user.image.url(:small), options
end
def preferred_editor
def wikipedia_link(key, value)
# Some k/v's are wikipedia=http://en.wikipedia.org/wiki/Full%20URL
- return nil if value =~ /^http:\/\//
+ return nil if value =~ /^https?:\/\//
if key == "wikipedia"
# This regex should match Wikipedia language codes, everything
class Acl < ActiveRecord::Base
- scope :address, lambda { |address| where("#{inet_aton} & netmask = address", address) }
-
-private
-
- def self.inet_aton
- if self.connection.adapter_name == "MySQL"
- "inet_aton(?)"
+ def self.match(address, domain = nil)
+ if domain
+ condition = Acl.where("address >>= ? OR domain = ?", address, domain)
else
- "?"
+ condition = Acl.where("address >>= ?", address)
end
end
+
+ def self.no_account_creation(address, domain = nil)
+ self.match(address, domain).where(:k => "no_account_creation").exists?
+ end
+
+ def self.no_trace_download(address, domain = nil)
+ self.match(address, domain).where(:k => "no_trace_download").exists?
+ end
end
class ChangesetTag < ActiveRecord::Base
- set_primary_keys :changeset_id, :k
+ self.primary_keys = "changeset_id", "k"
belongs_to :changeset
validates_format_of :support_url, :with => /\Ahttp(s?):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?/i, :allow_blank=>true
validates_format_of :callback_url, :with => /\A[a-z][a-z0-9.+-]*:\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?/i, :allow_blank=>true
+ attr_accessible :name, :url, :support_url, :callback_url,
+ :allow_read_prefs, :allow_write_prefs,
+ :allow_write_diary, :allow_write_api,
+ :allow_read_gpx, :allow_write_gpx
+
before_validation :generate_keys, :on => :create
attr_accessor :token_callback_url
permissions.each do |p|
params[p] = true
end
- RequestToken.create(params)
+ RequestToken.create(params, :without_protection => true)
end
def access_token_for_user(user)
params[p] = true
end
- token = access_tokens.create(params)
+ token = access_tokens.create(params, :without_protection => true)
end
token
validates_presence_of :body
validates_associated :diary_entry
+ attr_accessible :body
+
def digest
md5 = Digest::MD5.new
md5 << diary_entry_id.to_s
validates_numericality_of :longitude, :allow_nil => true,
:greater_than_or_equal_to => -180, :less_than_or_equal_to => 180
validates_associated :language
+
+ attr_accessible :title, :body, :language_code, :latitude, :longitude
end
expire_action(:controller => 'diary_entry', :action => 'list', :language => entry.language_code, :display_name => nil)
expire_action(:controller => 'diary_entry', :action => 'list', :language => nil, :display_name => entry.user.display_name)
- expire_action(:controller => 'diary_entry', :action => 'rss', :language => nil, :display_name => nil)
- expire_action(:controller => 'diary_entry', :action => 'rss', :language => entry.language_code, :display_name => nil)
- expire_action(:controller => 'diary_entry', :action => 'rss', :language => nil, :display_name => entry.user.display_name)
+ expire_action(:controller => 'diary_entry', :action => 'rss', :format => :rss, :language => nil, :display_name => nil)
+ expire_action(:controller => 'diary_entry', :action => 'rss', :format => :rss, :language => entry.language_code, :display_name => nil)
+ expire_action(:controller => 'diary_entry', :action => 'rss', :format => :rss, :language => nil, :display_name => entry.user.display_name)
if record.is_a?(DiaryEntry)
expire_fragment(:controller => 'diary_entry', :action => 'view', :display_name => entry.user.display_name, :id => entry.id, :part => "location")
class Language < ActiveRecord::Base
- set_primary_key :code
+ self.primary_key = "code"
has_many :diary_entries, :foreign_key => 'language'
validates_inclusion_of :message_read, :in => [ true, false ]
validates_as_utf8 :title
+ attr_accessible :title, :body
+
def digest
md5 = Digest::MD5.new
md5 << from_user_id.to_s
include GeoRecord
include ConsistencyValidations
- set_table_name 'current_nodes'
+ self.table_name = "current_nodes"
belongs_to :changeset
# and set manually before the actual delete
node.visible = true
+ # Start with no tags
+ node.tags = Hash.new
+
+ # Add in any tags from the XML
pt.find('tag').each do |tag|
raise OSM::APIBadXMLError.new("node", pt, "tag is missing key") if tag['k'].nil?
raise OSM::APIBadXMLError.new("node", pt, "tag is missing value") if tag['v'].nil?
class NodeTag < ActiveRecord::Base
- set_table_name 'current_node_tags'
- set_primary_keys :node_id, :k
+ self.table_name = "current_node_tags"
+ self.primary_keys = "node_id", "k"
belongs_to :node
class OauthNonce < ActiveRecord::Base
validates_presence_of :nonce, :timestamp
validates_uniqueness_of :nonce, :scope => :timestamp
-
+
+ attr_accessible :nonce, :timestamp
+
# Remembers a nonce and it's associated timestamp. It returns false if it has already been used
def self.remember(nonce, timestamp)
oauth_nonce = OauthNonce.create(:nonce => nonce, :timestamp => timestamp)
include GeoRecord
include ConsistencyValidations
- set_table_name 'nodes'
- set_primary_keys :node_id, :version
+ self.table_name = "nodes"
+ self.primary_keys = "node_id", "version"
validates_presence_of :changeset_id, :timestamp
validates_inclusion_of :visible, :in => [ true, false ]
class OldNodeTag < ActiveRecord::Base
- set_table_name 'node_tags'
- set_primary_keys :node_id, :version, :k
+ self.table_name = "node_tags"
+ self.primary_keys = "node_id", "version", "k"
belongs_to :old_node, :foreign_key => [:node_id, :version]
class OldRelation < ActiveRecord::Base
include ConsistencyValidations
- set_table_name 'relations'
- set_primary_keys :relation_id, :version
+ self.table_name = "relations"
+ self.primary_keys = "relation_id", "version"
belongs_to :changeset
class OldRelationMember < ActiveRecord::Base
- set_table_name 'relation_members'
- set_primary_keys :relation_id, :version, :sequence_id
+ self.table_name = "relation_members"
+ self.primary_keys = "relation_id", "version", "sequence_id"
belongs_to :old_relation, :foreign_key => [:relation_id, :version]
# A bit messy, referring to the current tables, should do for the data browser for now
class OldRelationTag < ActiveRecord::Base
- set_table_name 'relation_tags'
- set_primary_keys :relation_id, :version, :k
+ self.table_name = "relation_tags"
+ self.primary_keys = "relation_id", "version", "k"
belongs_to :old_relation, :foreign_key => [:relation_id, :version]
class OldWay < ActiveRecord::Base
include ConsistencyValidations
- set_table_name 'ways'
- set_primary_keys :way_id, :version
+ self.table_name = "ways"
+ self.primary_keys = "way_id", "version"
belongs_to :changeset
class OldWayNode < ActiveRecord::Base
- set_table_name 'way_nodes'
- set_primary_keys :way_id, :version, :sequence_id
+ self.table_name = "way_nodes"
+ self.primary_keys = "way_id", "version", "sequence_id"
belongs_to :old_way, :foreign_key => [:way_id, :version]
# A bit messy, referring to current nodes and ways, should do for the data browser for now
class OldWayTag < ActiveRecord::Base
- set_table_name 'way_tags'
- set_primary_keys :way_id, :version, :k
+ self.table_name = "way_tags"
+ self.primary_keys = "way_id", "version", "k"
belongs_to :old_way, :foreign_key => [:way_id, :version]
include ConsistencyValidations
- set_table_name 'current_relations'
+ self.table_name = "current_relations"
belongs_to :changeset
# and manually set to false before the actual delete.
relation.visible = true
+ # Start with no tags
+ relation.tags = Hash.new
+
+ # Add in any tags from the XML
pt.find('tag').each do |tag|
raise OSM::APIBadXMLError.new("relation", pt, "tag is missing key") if tag['k'].nil?
raise OSM::APIBadXMLError.new("relation", pt, "tag is missing value") if tag['v'].nil?
class RelationMember < ActiveRecord::Base
- set_table_name 'current_relation_members'
- set_primary_keys :relation_id, :sequence_id
+ self.table_name = "current_relation_members"
+ self.primary_keys = "relation_id", "sequence_id"
belongs_to :relation
belongs_to :member, :polymorphic => true
-
- after_find :set_class_from_type
- after_initialize :set_class_from_type
- before_save :set_type_from_class
-
- def member_type=(type)
- self[:member_type] = type
- self[:member_class] = type.capitalize
- end
-
-private
-
- def set_class_from_type
- self[:member_class] = self.member_type.classify unless self.member_type.nil?
- end
-
- def set_type_from_class
- self.member_type = self[:member_class].classify
- end
end
class RelationTag < ActiveRecord::Base
- set_table_name 'current_relation_tags'
- set_primary_keys :relation_id, :k
+ self.table_name = "current_relation_tags"
+ self.primary_keys = "relation_id", "k"
belongs_to :relation
params[p] = read_attribute(p)
}
- access_token = AccessToken.create(params)
+ access_token = AccessToken.create(params, :without_protection => true)
invalidate!
access_token
end
class Trace < ActiveRecord::Base
- set_table_name 'gpx_files'
+ self.table_name = "gpx_files"
belongs_to :user
has_many :tags, :class_name => 'Tracetag', :foreign_key => 'gpx_id', :dependent => :delete_all
class Tracepoint < ActiveRecord::Base
include GeoRecord
- set_table_name 'gps_points'
+ self.table_name = "gps_points"
validates_numericality_of :trackid, :only_integer => true
validates_numericality_of :latitude, :only_integer => true
class Tracetag < ActiveRecord::Base
- set_table_name 'gpx_file_tags'
+ self.table_name = "gpx_file_tags"
validates_format_of :tag, :with => /^[^\/;.,?]*$/
validates_length_of :tag, :within => 1..255
+ attr_accessible :tag
+
belongs_to :trace, :foreign_key => 'gpx_id'
end
validates_numericality_of :home_zoom, :only_integer => true, :allow_nil => true
validates_inclusion_of :preferred_editor, :in => Editors::ALL_EDITORS, :allow_nil => true
+ attr_accessible :display_name, :email, :email_confirmation, :openid_url,
+ :pass_crypt, :pass_crypt_confirmation, :consider_pd
+
after_initialize :set_creation_time
before_save :encrypt_password
- file_column :image, :magick => { :geometry => "100x100>" }
+ has_attached_file :image,
+ :default_url => "/assets/:class/:attachment/:style.png",
+ :styles => { :large => "100x100>", :small => "50x50>" }
def self.authenticate(options)
if options[:username] and options[:password]
diary_entry_score = self.diary_entries.inject(0) { |s,e| s += OSM.spam_score(e.body) }
diary_comment_score = self.diary_comments.inject(0) { |s,e| s += OSM.spam_score(e.body) }
- score = OSM.spam_score(self.description) * 2
+ score = OSM.spam_score(self.description)
score += diary_entry_score / self.diary_entries.length if self.diary_entries.length > 0
score += diary_comment_score / self.diary_comments.length if self.diary_comments.length > 0
score -= changeset_score
# revokes the block, allowing the user to use the API again. the argument
# is the user object who is revoking the ban.
def revoke!(revoker)
- update_attributes({ :ends_at => Time.now.getutc(),
- :revoker_id => revoker.id,
- :needs_view => false })
+ update_attributes({
+ :ends_at => Time.now.getutc(),
+ :revoker_id => revoker.id,
+ :needs_view => false
+ }, :without_protection => true)
end
private
class UserPreference < ActiveRecord::Base
- set_primary_keys :user_id, :k
+ self.primary_keys = "user_id", "k"
+
belongs_to :user
validates_length_of :k, :within => 1..255
(new_record.nil? or
old_record.visible? != new_record.visible? or
old_record.display_name != new_record.display_name or
- old_record.image != new_record.image)
+ old_record.image.fingerprint != new_record.image.fingerprint)
old_record.diary_entries.each do |entry|
expire_action(:controller => 'diary_entry', :action => 'view', :display_name => old_record.display_name, :id => entry.id)
expire_action(:controller => 'diary_entry', :action => 'list', :language => entry.language_code, :display_name => nil)
- expire_action(:controller => 'diary_entry', :action => 'rss', :language => entry.language_code, :display_name => nil)
+ expire_action(:controller => 'diary_entry', :action => 'rss', :format => :rss, :language => entry.language_code, :display_name => nil)
end
old_record.diary_comments.each do |comment|
expire_action(:controller => 'diary_entry', :action => 'list', :language => nil, :display_name => nil)
expire_action(:controller => 'diary_entry', :action => 'list', :language => nil, :display_name => old_record.display_name)
- expire_action(:controller => 'diary_entry', :action => 'rss', :language => nil, :display_name => nil)
- expire_action(:controller => 'diary_entry', :action => 'rss', :language => nil, :display_name => old_record.display_name)
+ expire_action(:controller => 'diary_entry', :action => 'rss', :format => :rss, :language => nil, :display_name => nil)
+ expire_action(:controller => 'diary_entry', :action => 'rss', :format => :rss, :language => nil, :display_name => old_record.display_name)
old_record.traces.each do |trace|
expire_action(:controller => 'trace', :action => 'view', :id => trace.id)
class UserToken < ActiveRecord::Base
belongs_to :user
+ attr_accessible :referer
+
after_initialize :set_defaults
private
include ConsistencyValidations
- set_table_name 'current_ways'
+ self.table_name = "current_ways"
belongs_to :changeset
# and manually set to false before the actual delete.
way.visible = true
+ # Start with no tags
+ way.tags = Hash.new
+
+ # Add in any tags from the XML
pt.find('tag').each do |tag|
raise OSM::APIBadXMLError.new("way", pt, "tag is missing key") if tag['k'].nil?
raise OSM::APIBadXMLError.new("way", pt, "tag is missing value") if tag['v'].nil?
class WayNode < ActiveRecord::Base
- set_table_name 'current_way_nodes'
- set_primary_keys :way_id, :sequence_id
+ self.table_name = "current_way_nodes"
+ self.primary_keys = "way_id", "sequence_id"
belongs_to :way
belongs_to :node
class WayTag < ActiveRecord::Base
- set_table_name 'current_way_tags'
- set_primary_keys :way_id, :k
+ self.table_name = "current_way_tags"
+ self.primary_keys = "way_id", "k"
belongs_to :way
</tr>
<tr>
<td><%=bbox.min_lon -%></td>
- <td>(<a href='/?minlon=<%= bbox.min_lon %>&minlat=<%= bbox.min_lat %>&maxlon=<%= bbox.max_lon %>&maxlat=<%= bbox.max_lat %>
- &box=yes' title='<%= t 'browse.changeset_details.show_area_box' %>'><%= t 'browse.changeset_details.box' %></a>)</td>
+ <td>(<%= link_to t('browse.changeset_details.box'), root_path(:minlon => bbox.min_lon, :minlat => bbox.min_lat, :maxlon => bbox.max_lon, :maxlat => bbox.max_lat, :box => 'yes'), :title => t('browse.changeset_details.show_area_box') %>)</td>
<td><%=bbox.max_lon -%></td>
</tr>
<tr>
<%= stylesheet_link_tag 'browse' %>
<% end %>
<%= render :partial => "navigation" %>
-<h2><%= t'browse.node.node_title', :node_name => h(@name) %></h2>
+<h2><%= t'browse.node.node_title', :node_name => @name %></h2>
<%= render :partial => "map", :object => @node %>
<%= render :partial => "node_details", :object => @node %>
<hr />
<%= stylesheet_link_tag 'browse' %>
<% end %>
<%= render :partial => "navigation" %>
-<h2><%= t'browse.relation.relation_title', :relation_name => h(@name) %></h2>
+<h2><%= t'browse.relation.relation_title', :relation_name => @name %></h2>
<%= render :partial => "map", :object => @relation %>
<%= render :partial => "relation_details", :object => @relation %>
<hr />
<%= stylesheet_link_tag 'browse' %>
<% end %>
<%= render :partial => "navigation" %>
-<h2><%= t'browse.way.way_title', :way_name => h(@name) %></h2>
+<h2><%= t'browse.way.way_title', :way_name => @name %></h2>
<%= render :partial => "map", :object => @way %>
<%= render :partial => "way_details", :object => @way %>
<hr />
<%= render :partial => 'changeset_paging_nav' %>
+<% unless params[:friends] or params[:nearby] -%>
<%= atom_link_to params.merge({ :page => nil, :action => :feed }) %>
-<% content_for :head do %>
+<% content_for :head do -%>
<%= auto_discovery_link_tag :atom, params.merge({ :page => nil, :action => :feed }) %>
-<% end %>
+<% end -%>
+<% end -%>
--- /dev/null
+<h1><%= t('diary_entry.comments.has_commented_on', :display_name => @this_user.display_name) %></h1>
+
+<table width="100%">
+ <tr>
+ <th><%= t 'diary_entry.comments.post' %></th>
+ <th><%= t 'diary_entry.comments.when' %></th>
+ <th><%= t 'diary_entry.comments.comment' %></th>
+ </tr>
+ <% @comments.each do |comment| -%>
+ <% cl = cycle('table0', 'table1') %>
+ <tr class="<%= cl %>">
+ <td><%= link_to comment.diary_entry.title, :action => :view, :display_name => comment.diary_entry.user.display_name, :id => comment.diary_entry.id %></td>
+ <td><span title="<%= l comment.created_at, :format => :friendly %>"><%= t 'diary_entry.comments.ago', :ago => time_ago_in_words(comment.created_at) %></span></td>
+ <td><%= htmlize(comment.body) %></td>
+ </tr>
+ <% end -%>
+</table>
+
+<%= link_to t('diary_entry.comments.older_comments') , { :page => @comment_pages.current.next} if @comment_pages.current.next %>
+<% if @comment_pages.current.next and @comment_pages.current.previous %>
+|
+<% end %>
+<%= link_to t('diary_entry.comments.newer_comments'), { :page => @comment_pages.current.previous } if @comment_pages.current.previous %>
<br />
<% end %>
+<% unless params[:friends] or params[:nearby] -%>
<%= rss_link_to :action => 'rss', :language => params[:language] %>
-<% content_for :head do %>
+<% content_for :head do -%>
<%= auto_discovery_link_tag :atom, :action => 'rss', :language => params[:language] %>
-<% end %>
+<% end -%>
+<% end -%>
<p>
<%= radio_button_tag("format", "osm") %> <%= t'export.start.osm_xml_data' %>
<br/>
- <%= radio_button_tag("format", "mapnik") %> <%= t'export.start.mapnik_image' %>
- <br/>
- <%= radio_button_tag("format", "osmarender") %> <%= t'export.start.osmarender_image' %>
+ <%= radio_button_tag("format", "mapnik") %> <%= t'export.start.map_image' %>
<br/>
<%= radio_button_tag("format", "html") %> <%= t'export.start.embeddable_html' %>
</p>
</div>
</div>
- <div id="export_osmarender">
- <p class="export_heading"><%= t'export.start.options' %></p>
-
- <div class="export_details">
- <p><%= t'export.start.format' %> <%= select_tag("osmarender_format", options_for_select([["PNG", "png"], ["JPEG", "jpeg"]], "png")) %></p>
- <p><%= t'export.start.zoom' %> <%= select_tag("osmarender_zoom", options_for_select([4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17])) %></p>
- </div>
- </div>
-
<div id="export_html">
<p class="export_heading"><%= t'export.start.options' %></p>
$("#format_osm").click(formatChanged);
$("#format_mapnik").click(formatChanged);
- $("#format_osmarender").click(formatChanged);
$("#format_html").click(formatChanged);
$("#mapnik_scale").change(mapnikSizeChanged);
if (map.baseLayer.name == "Mapnik") {
$("#format_mapnik").prop("checked", true);
- } else if (map.baseLayer.name == "Osmarender") {
- $("#format_osmarender").prop("checked", true);
}
formatChanged();
}
$("#mapnik_max_scale").html(roundScale(max_scale));
-
- var max_zoom = maxOsmarenderZoom();
-
- $("#osmarender_zoom option").each(function () {
- if ($(this).val() > max_zoom) {
- $(this).prop("disabled", true);
- } else {
- $(this).prop("disabled", false);
- }
- });
-
- if ($("#osmarender_zoom option").is(":disabled:selected")) {
- $("#osmarender_zoom option").filter(":enabled").last().prop("selected", true);
- }
}
function htmlUrlChanged() {
$("#export_mapnik").hide();
}
- if ($("#format_osmarender").prop("checked")) {
- var zoom = Math.min(map.getZoom(), maxOsmarenderZoom());
-
- $("#osmarender_zoom option[value=" + zoom + "]").prop("selected", true);
- $("#export_osmarender").show();
- } else {
- $("#export_osmarender").hide();
- }
-
if ($("#format_html").prop("checked")) {
$("#export_html").show();
$("#export_commit").hide();
Math.round(bounds.getHeight() / scale / 0.00028));
}
-function maxOsmarenderZoom() {
- var bounds = new OpenLayers.Bounds($("#minlon").val(), $("#minlat").val(), $("#maxlon").val(), $("#maxlat").val());
- var xzoom = Math.LOG2E * Math.log(2000 * 1.40625 / bounds.getWidth());
- var ymin = bounds.bottom * Math.PI / 180;
- var ymax = bounds.top * Math.PI / 180;
- var yzoom = Math.LOG2E * (Math.log(2000 * 2 * Math.PI) - Math.log(Math.log((Math.tan(ymax) + 1 / Math.cos(ymax)) / (Math.tan(ymin) + 1 / Math.cos(ymin)))))
-
- return Math.min(Math.floor(Math.min(xzoom, yzoom)), 17);
-}
-
function roundScale(scale) {
var precision = 5 * Math.pow(10, Math.floor(Math.LOG10E * Math.log(scale)) - 2);
<%= stylesheet_link_tag "print-#{t 'html.dir'}", :media => "print" %>
<!--[if IE]><%= stylesheet_link_tag "large-#{t 'html.dir'}", :media => "screen" %><![endif]--> <!-- IE is totally broken with CSS media queries -->
<%= favicon_link_tag "favicon.ico" %>
+ <%= favicon_link_tag "osm_logo.png", :rel => "apple-touch-icon", :type => "image/png" %>
<%= tag("link", { :rel => "publisher", :href => "https://plus.google.com/111953119785824514010" }) %>
<%= tag("link", { :rel => "search", :type => "application/opensearchdescription+xml", :title => "OpenStreetMap Search", :href => asset_path("osm.xml") }) %>
<%= tag("meta", { :name => "description", :content => "OpenStreetMap is the free wiki world map." }) %>
<%= style_rules %>
<%= yield :head %>
<%= csrf_meta_tag %>
- <title><%= t 'layouts.project_name.title' %><%= ' | '+ h(@title) if @title %></title>
+ <title><%= t 'layouts.project_name.title' %><%= ' | '+ @title if @title %></title>
</head>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="<%= I18n.locale %>" lang="<%= I18n.locale %>" dir="<%= t'html.dir' %>">
<%= render :partial => "layouts/head" %>
- <body>
+ <body class="<%= params[:controller] %>">
<div id="small-title">
<%= link_to(image_tag("osm_logo.png", :size => "16x16", :border => 0, :alt => t('layouts.logo.alt_text')), :controller => 'site', :action => 'index') %>
<h1><%= t 'layouts.project_name.h1' %></h1>
<%= yield %>
</div>
- <span id="greeting">
- <% if @user and @user.id %>
- <span id="full-greeting"><%= raw(t 'layouts.welcome_user', :user_link => (link_to h(@user.display_name), {:controller => 'user', :action => 'view', :display_name => @user.display_name}, :title => t('layouts.welcome_user_link_tooltip'))) %></span>
- <span id="small-greeting"><%= link_to t('layouts.welcome_user_link_tooltip'), {:controller => 'user', :action => 'view', :display_name => @user.display_name} %></span> |
- <%= yield :greeting %>
- <%= render :partial => "layouts/inbox" %> |
- <%= link_to t('layouts.logout'), {:controller => 'user', :action => 'logout', :session => request.session_options[:id], :referer => request.fullpath}, {:id => 'logoutanchor', :title => t('layouts.logout_tooltip')}%>
- <% else %>
- <%= link_to t('layouts.log_in'), {:controller => 'user', :action => 'login', :referer => request.fullpath}, {:id => 'loginanchor', :title => t('layouts.log_in_tooltip')} %> |
- <%= link_to t('layouts.sign_up'), {:controller => 'user', :action => 'new'}, {:id => 'registeranchor', :title => t('layouts.sign_up_tooltip')} %>
- <% end %>
- </span>
-
- <div>
+ <div id='top-bar'>
+ <span id="greeting">
+ <% if @user and @user.id %>
+ <span id="full-greeting"><%= raw(t 'layouts.welcome_user', :user_link => (link_to h(@user.display_name), {:controller => 'user', :action => 'view', :display_name => @user.display_name}, :title => t('layouts.welcome_user_link_tooltip'))) %></span>
+ <span id="small-greeting"><%= link_to t('layouts.welcome_user_link_tooltip'), {:controller => 'user', :action => 'view', :display_name => @user.display_name} %></span> |
+ <%= yield :greeting %>
+ <%= render :partial => "layouts/inbox" %> |
+ <%= link_to t('layouts.logout'), {:controller => 'user', :action => 'logout', :session => request.session_options[:id], :referer => request.fullpath}, {:id => 'logoutanchor', :title => t('layouts.logout_tooltip')}%>
+ <% else %>
+ <%= link_to t('layouts.log_in'), {:controller => 'user', :action => 'login', :referer => request.fullpath}, {:id => 'loginanchor', :title => t('layouts.log_in_tooltip')} %> |
+ <%= link_to t('layouts.sign_up'), {:controller => 'user', :action => 'new'}, {:id => 'registeranchor', :title => t('layouts.sign_up_tooltip')} %>
+ <% end %>
+ </span>
<ul id="tabnav">
<%
viewclass = 'geolink llz layers'
<div id="left">
<div id="logo">
- <center>
- <h1><%= t 'layouts.project_name.h1' %></h1>
- <%= link_to(image_tag("osm_logo.png", :size => "120x120", :border => 0, :alt => t('layouts.logo.alt_text')), :controller => 'site', :action => 'index') %><br/>
- <h2 class="nowrap"><%= t('layouts.tag_line') %></h2>
- </center>
+ <%= link_to(image_tag("osm_logo.png", :size => "120x120", :border => 0, :alt => t('layouts.logo.alt_text')), :controller => 'site', :action => 'index') %><br/>
+ <h1><%= t 'layouts.project_name.h1' %></h1>
+ <h2 class="nowrap"><%= t('layouts.tag_line') %></h2>
</div>
<%= yield :optionals %>
-<p id="inbox-count"><%= t'message.inbox.you_have', :new_count => @user.new_messages.size, :old_count => (@user.messages.size - @user.new_messages.size) %></p>
+<p id="inbox-count">
+<%= t "message.inbox.messages",
+ :new_messages => t("message.inbox.new_messages",
+ :count => @user.new_messages.size),
+ :old_messages => t("message.inbox.old_messages",
+ :count => @user.messages.size - @user.new_messages.size)
+%>
+</p>
<h2><%= raw(t'message.outbox.my_inbox', :inbox_link => link_to(t('message.outbox.inbox'), url_for(:controller => "user", :action => "inbox", :id => @user.display_name))) %>/<%= t'message.outbox.outbox' %></h2>
-<p><%= t'message.outbox.you_have_sent_messages', :count => @user.sent_messages.size %>
+<p><%= t'message.outbox.messages', :count => @user.sent_messages.size %>
<% if @user.sent_messages.size > 0 %>
<div id="messages">
}
function resizeMap() {
+ var content_width = $("#content").width();
+ var content_height = $("#content").height();
var sidebar_width = 0 + $("#sidebar:visible").outerWidth(true);
var left_border = parseFloat($("#map").css("border-left-width"));
var right_border = parseFloat($("#map").css("border-right-width"));
<% else -%>
$("#map").css("right", (sidebar_width) + "px");
<% end -%>
- $("#map").width($("#content").width() - sidebar_width - left_border - right_border);
- $("#map").height($("#content").height() - top_border - bottom_border);
+ $("#map").width(content_width - sidebar_width - left_border - right_border);
+ $("#map").height(content_height - top_border - bottom_border);
<% if params[:controller] == "site" and params[:action] == "index" -%>
map.updateSize();
{ :rel => "license" }) %>
</p>
-<% if I18n.locale == 'en' or params[:copyright_locale] == 'en' %>
+<% if @locale == 'en' %>
<!-- Maybe ease foreigners back to their native page -->
- <% if t('license_page.legal_babble') != t('license_page.legal_babble', :locale => :en) %>
+ <% if t('license_page.legal_babble', :locale => I18n.locale) != t('license_page.legal_babble', :locale => :en) %>
<h2><%= t 'license_page.native.title' %></h2>
<p>
<%= raw t 'license_page.native.text',
</p>
<hr />
<% end %>
-
- <%= raw t('license_page.legal_babble', :locale => :en) %>
<% else %>
<!-- Maybe note that this page has been translated -->
- <% if t('license_page.legal_babble') != t('license_page.legal_babble', :locale => :en) %>
+ <% if t('license_page.legal_babble', :locale => @locale) != t('license_page.legal_babble', :locale => :en) %>
<h2><%= t 'license_page.foreign.title' %></h2>
<p>
<%= raw t 'license_page.foreign.text',
</p>
<hr />
<% end %>
-
- <%= raw t('license_page.legal_babble') %>
<% end %>
+
+<%= raw t('license_page.legal_babble', :locale => @locale) %>
<div id="map">
<div id="permalink">
- <a href="/" id="permalinkanchor" class="geolink llz layers object"><%= t 'site.index.permalink' %></a><br/>
+ <a href="/" id="permalinkanchor" class="geolink llz layers object"><%= t 'site.index.permalink' %></a>
<a href="/" id="shortlinkanchor"><%= t 'site.index.shortlink' %></a>
<a href="#" id="createnoteanchor">Report a problem</a>
</div>
<%= t 'user.account.image' %>
</td>
<td valign="top">
- <% if @user.image.nil? %>
- <%= hidden_field_tag "image_action", "new" %>
- <%= t 'user.account.new image' %><br /><%= file_column_field "user", "image" %><br /><span class="minorNote"><%= t 'user.account.image size hint' %></span>
- <% else %>
+ <% if @user.image.file? %>
<table id="accountImage">
<tr>
- <td rowspan="3" valign="top"><%= image_tag url_for_file_column(@user, "image"), :class => "user_image" %></td>
+ <td rowspan="3" valign="top"><%= user_image @user %></td>
<td><%= radio_button_tag "image_action", "keep", true %></td>
<td><%= t 'user.account.keep image' %></td>
</tr>
</tr>
<tr>
<td><%= radio_button_tag "image_action", "new" %></td>
- <td><%= t 'user.account.replace image' %><br /><%= file_column_field "user", "image", :onchange => "$('image_action_new').checked = true" %><br /><span class="minorNote"><%= t 'user.account.image size hint' %></span></td>
+ <td><%= t 'user.account.replace image' %><br /><%= f.file_field :image, :onchange => "$('image_action_new').prop('checked', true)" %><br /><span class="minorNote"><%= t 'user.account.image size hint' %></span></td>
</tr>
</table>
+ <% else %>
+ <%= hidden_field_tag "image_action", "new" %>
+ <%= t 'user.account.new image' %><br /><%= f.file_field :image %><br /><span class="minorNote"><%= t 'user.account.image size hint' %></span>
<% end %>
</td>
</tr>
:lon => @user.home_lon,
:zoom => @user.home_zoom
end
- if @user.image
- xml.tag! "img", :href => (url_for_file_column(@user, "image", :absolute => true))
+ if @user.image.file?
+ xml.tag! "img", :href => "http://#{SERVER_URL}#{@user.image.url}"
end
if @user.languages
xml.tag! "languages" do
--- /dev/null
+<h1><%= t 'user.new.heading' %></h1>
+
+<p><%= t 'user.new.no_auto_account_create' %></p>
+
+<p><%= raw t 'user.new.contact_webmaster' %></p>
:count => @user_pages.current_page.last_item - @user_pages.current_page.first_item + 1
%>
<% if @user_pages.page_count > 1 %>
- | <%= pagination_links_each(@user_pages, {}) { |n| link_to n, params.merge(:page => n) } %>
+ | <%= raw pagination_links_each(@user_pages, {}) { |n| link_to n, params.merge(:page => n) } %>
<% end %>
</td>
<td>
<%= form_tag({ :action => "login" }, { :id => "login_form" }) do %>
<%= hidden_field_tag('referer', h(params[:referer])) %>
- <p><%= t 'user.login.with username' %></p>
+ <p><%= t 'user.login.no account' %> <%= link_to t('user.login.register now'), :action => :new, :referer => params[:referer] %></p>
<table id="loginForm">
<tr><td class="fieldName"><%= t 'user.login.email or username' %></td><td><%= text_field_tag "username", params[:username], :size => 28, :maxlength => 255, :tabindex => 1 %></td></tr>
<tr><td class="fieldName"><%= t 'user.login.password' %></td><td><%= password_field_tag "password", "", :size => 28, :maxlength => 255, :tabindex => 2 %> <span class="minorNote">(<%= link_to t('user.login.lost password link'), :controller => 'user', :action => 'lost_password' %>)</span></td></tr>
- <tr><td class="fieldName"><label for="remember_me"><%= t 'user.login.remember' %></label></td><td><%= check_box_tag "remember_me", "yes", false, :tabindex => 3 %></td></tr>
+ <tr>
+ <td></td>
+ <td><%= check_box_tag "remember_me", "yes", false, :tabindex => 3 %>
+ <label for="remember_me">
+ <%= t 'user.login.remember' %></label>
+ </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>
+ <%= submit_tag t('user.login.login_button'), :tabindex => 4 %>
+ </td>
+ </tr>
</table>
- <%= submit_tag t('user.login.login_button'), :tabindex => 3 %>
<br clear="all" />
<br clear="all" />
</div>
-
- <div id="login_signup">
- <h2><%= t 'user.login.new to osm' %></h2>
- <p><%= t 'user.login.to make changes' %></p>
- <p><%= t 'user.login.create account minute' %></p>
- <p><%= button_to t('user.login.register now'), :action => :new, :referer => params[:referer] %></p>
-
- <br clear="both">
- </div>
-
</div>
<script type="text/javascript">
<h1><%= t 'user.new.heading' %></h1>
-<% if Acl.address(request.remote_ip).where(:k => "no_account_creation").exists? %>
-
-<p><%= t 'user.new.no_auto_account_create' %></p>
-
-<p><%= t 'user.new.contact_webmaster' %></p>
-
-<% else %>
-
<p><%= t 'user.new.fill_form' %></p>
<%= error_messages_for 'user' %>
disableOpenID();
<% end -%>
</script>
-
-<% end %>
|
<%= link_to t('user.view.new diary entry'), :controller => 'diary_entry', :action => 'new', :display_name => @user.display_name %>
|
+ <%= link_to t('user.view.my comments' ), :controller => 'diary_entry', :action => 'comments', :display_name => @this_user.display_name %>
+ |
<%= link_to t('user.view.my edits'), :controller => 'changeset', :action => 'list', :display_name => @user.display_name %>
|
<%= link_to t('user.view.my traces'), :controller => 'trace', :action=> 'mine' %>
|
<%= link_to t('user.view.diary'), :controller => 'diary_entry', :action => 'list', :display_name => @this_user.display_name %>
|
+ <%= link_to t('user.view.comments'), :controller => 'diary_entry', :action => 'comments', :display_name => @this_user.display_name %>
+ |
<%= link_to t('user.view.edits'), :controller => 'changeset', :action => 'list', :display_name => @this_user.display_name %>
|
<%= link_to t('user.view.traces'), :controller => 'trace', :action => 'list', :display_name => @this_user.display_name %>
<% if friends.empty? %>
<%= t 'user.view.no friends' %>
<% else %>
- <%= link_to t('user.view.friends_changesets'), {:controller => 'browse', :action => 'friends'} %><br/><br/>
+ <%= link_to t('user.view.friends_changesets'), {:controller => 'browse', :action => 'friends'} %><br/>
+ <%= link_to t('user.view.friends_diaries'), {:controller => 'diary', :action => 'friends'} %><br/><br/>
<table id="friends">
<%= render :partial => "contact", :collection => friends %>
</table>
<% if nearby.empty? %>
<%= t 'user.view.no nearby users' %>
<% else %>
+ <%= link_to t('user.view.nearby_changesets'), {:controller => 'browse', :action => 'nearby'} %><br/>
+ <%= link_to t('user.view.nearby_diaries'), {:controller => 'diary', :action => 'nearby'} %><br/><br/>
<table id="nearbyusers">
<%= render :partial => "contact", :collection => nearby %>
</table>
if defined?(Bundler)
# If you precompile assets before deploying to production, use this line
- Bundler.require *Rails.groups(:assets => %w(development test))
+ Bundler.require(*Rails.groups(:assets => %w(development test)))
# If you want your assets lazily compiled in production, use this line
# Bundler.require(:default, :assets, Rails.env)
end
# Configure sensitive parameters which will be filtered from the log file.
config.filter_parameters += [:password, :pass_crypt, :pass_crypt_confirmation]
+ # Use SQL instead of Active Record's schema dumper when creating the database.
+ # This is necessary if your schema can't be completely dumped by the schema dumper,
+ # like if you have constraints or database-specific column types
+ unless STATUS == :database_offline
+ config.active_record.schema_format = :sql
+ end
+
+ # Enforce whitelist mode for mass assignment.
+ # This will create an empty whitelist of attributes available for mass-assignment for all models
+ # in your app. As such, your models will need to explicitly whitelist or blacklist accessible
+ # parameters by using an attr_accessible or attr_protected declaration.
+ config.active_record.whitelist_attributes = true
+
# Enable the asset pipeline
config.assets.enabled = true
# Version of your assets, change this if you want to expire all your assets
config.assets.version = '1.0'
- # Use SQL instead of Active Record's schema dumper when creating the test database.
- # This is necessary if your schema can't be completely dumped by the schema dumper,
- # like if you have constraints or database-specific column types
- unless STATUS == :database_offline
- config.active_record.schema_format = :sql
+ # Don't eager load models when the database is offline
+ if STATUS == :database_offline
+ config.paths["app/models"].skip_eager_load!
end
end
end
# Settings specified here will take precedence over those in config/application.rb
# In the development environment your application's code is reloaded on
- # every request. This slows down response time but is perfect for development
+ # every request. This slows down response time but is perfect for development
# since you don't have to restart the web server when you make code changes.
config.cache_classes = false
# Show full error reports and disable caching
config.consider_all_requests_local = true
-# config.action_view.debug_rjs = true
config.action_controller.perform_caching = false
# Don't care if the mailer can't send
# Only use best-standards-support built into browsers
config.action_dispatch.best_standards_support = :builtin
+ # Raise exception on mass assignment protection for Active Record models
+ config.active_record.mass_assignment_sanitizer = :strict
+
+ # Log the query plan for queries taking more than this (works
+ # with SQLite, MySQL, and PostgreSQL)
+ config.active_record.auto_explain_threshold_in_seconds = 0.5
+
# Do not compress assets
config.assets.compress = false
# See everything in the log (default is :info)
# config.log_level = :debug
+ # Prepend all log lines with the following tags
+ # config.log_tags = [ :subdomain, :uuid ]
+
# Use a different log path in production
if defined?(LOG_PATH)
config.paths["log"] = LOG_PATH
end
# Use a different logger for distributed setups
- # config.logger = SyslogLogger.new
+ # config.logger = ActiveSupport::TaggedLogging.new(SyslogLogger.new)
# Use a different cache store in production
if defined?(MEMCACHE_SERVERS)
- MEMCACHE = Memcached::Rails.new(MEMCACHE_SERVERS, :binary_protocol => true)
- config.cache_store = :mem_cache_store, MEMCACHE
+ config.cache_store = :mem_cache_store, MemCache.new(:namespace => "rails:cache", :no_block => true, :buffer_requests => true, :noreply => true)
end
# Enable serving of images, stylesheets, and JavaScripts from an asset server
# Send deprecation notices to registered listeners
config.active_support.deprecation = :notify
+
+ # Log the query plan for queries taking more than this (works
+ # with SQLite, MySQL, and PostgreSQL)
+ # config.active_record.auto_explain_threshold_in_seconds = 0.5
end
# Settings specified here will take precedence over those in config/application.rb
# The test environment is used exclusively to run your application's
- # test suite. You never need to work with it otherwise. Remember that
+ # test suite. You never need to work with it otherwise. Remember that
# your test database is "scratch space" for the test suite and is wiped
- # and recreated between test runs. Don't rely on the data there!
+ # and recreated between test runs. Don't rely on the data there!
config.cache_classes = true
# Configure static asset server for tests with Cache-Control for performance
# ActionMailer::Base.deliveries array.
config.action_mailer.delivery_method = :test
+ # Raise exception on mass assignment protection for Active Record models
+ config.active_record.mass_assignment_sanitizer = :strict
+
# Print deprecation notices to the stderr
config.active_support.deprecation = :stderr
-
- # Allow pass debug_assets=true as a query parameter to load pages with unpackaged assets
- config.assets.allow_debugging = true
end
# Location of GPX traces and images
gpx_trace_dir: "/home/osm/traces"
gpx_image_dir: "/home/osm/images"
- # Location of data for file columns
- #file_column_root: ""
+ # Location of data for attachments
+ attachments_dir: ":rails_root/public/attachments"
# Log file to use
#log_path: ""
# List of memcache servers to use for caching
--- /dev/null
+module ActionController
+ module Caching
+ module Actions
+ class ActionCachePath
+ def initialize(controller, options = {}, infer_extension = true)
+ if infer_extension
+ @extension = controller.params[:format]
+ options.reverse_merge!(:format => @extension) if options.is_a?(Hash)
+ else
+ @extension = options[:format]
+ end
+
+ path = controller.url_for(options).split(%r{://}).last
+ @path = normalize!(path)
+ end
+ end
+ end
+ end
+end
# Monkey patch to allow sending of messages in specific locales
module ActionMailer
class Base
- adv_attr_accessor :locale
-
def mail_with_locale(*args)
- old_locale= I18n.locale
+ old_locale = I18n.locale
begin
I18n.locale = @locale
return if @level > severity
message = (message || (block && block.call) || progname).to_s
time = Time.now
- message = "[%s.%06d #%d] %s\n" % [time.strftime("%Y-%m-%d %H:%M:%S"), time.usec, $$, message.sub(/^\n+/, "")]
+ message = "[%s.%06d #%d] %s" % [time.strftime("%Y-%m-%d %H:%M:%S"), time.usec, $$, message.sub(/^\n+/, "")]
old_add(severity, message)
end
end
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#++
-require 'pagination'
-require 'pagination_helper'
+require 'classic_pagination/pagination'
+require 'classic_pagination/pagination_helper'
ActionController::Base.class_eval do
include ActionController::Pagination
+++ /dev/null
-module ActiveRecord
- module Associations
- class AssociationScope
- def add_constraints(scope)
- tables = construct_tables
-
- chain.each_with_index do |reflection, i|
- table, foreign_table = tables.shift, tables.first
-
- if reflection.source_macro == :has_and_belongs_to_many
- join_table = tables.shift
-
- # CPK
- # scope = scope.joins(join(
- # join_table,
- # table[reflection.active_record_primary_key].
- # eq(join_table[reflection.association_foreign_key])
- #))
- predicate = cpk_join_predicate(table, reflection.association_primary_key,
- join_table, reflection.association_foreign_key)
- scope = scope.joins(join(join_table, predicate))
-
- table, foreign_table = join_table, tables.first
- end
-
- if reflection.source_macro == :belongs_to
- if reflection.options[:polymorphic]
- key = reflection.association_primary_key(klass)
- else
- key = reflection.association_primary_key
- end
-
- foreign_key = reflection.foreign_key
- else
- key = reflection.foreign_key
- foreign_key = reflection.active_record_primary_key
- end
-
- conditions = self.conditions[i]
-
- if reflection == chain.last
- # CPK
- # scope = scope.where(table[key].eq(owner[foreign_key]))
- predicate = cpk_join_predicate(table, key, owner, foreign_key)
- scope = scope.where(predicate)
-
- if reflection.type
- scope = scope.where(table[reflection.type].eq(owner.class.base_class.name))
- end
-
- conditions.each do |condition|
- if options[:through] && condition.is_a?(Hash)
- condition = { table.name => condition }
- end
-
- scope = scope.where(interpolate(condition))
- end
- else
- # CPK
- # constraint = table[key].eq(foreign_table[foreign_key])
- constraint = cpk_join_predicate(table, key, foreign_table, foreign_key)
-
- if reflection.type
- type = chain[i + 1].klass.base_class.name
- constraint = constraint.and(table[reflection.type].eq(type))
- end
-
- scope = scope.joins(join(foreign_table, constraint))
-
- unless conditions.empty?
- scope = scope.where(sanitize(conditions, table))
- end
- end
- end
-
- scope
- end
- end
- end
-end
+++ /dev/null
-if defined?(FILE_COLUMN_ROOT)
- FileColumn::ClassMethods::DEFAULT_OPTIONS[:root_path] = FILE_COLUMN_ROOT
-end
--- /dev/null
+#
+# Monkey patch HttpAcceptLanguage pending integration of
+# https://github.com/iain/http_accept_language/pull/6
+#
+module HttpAcceptLanguage
+ def compatible_language_from(available_languages)
+ user_preferred_languages.find do |x|
+ available_languages.find { |y| y.to_s == x.to_s } ||
+ available_languages.find { |y| y.to_s =~ /^#{Regexp.escape(x.to_s)}-/ }
+ end
+ end
+end
module I18n
module Backend
+ class Simple
+ def init_translations_with_mn_cleanup
+ init_translations_without_mn_cleanup
+
+ translations[:mn][:errors][:template].delete(:body)
+ translations[:mn][:activemodel][:errors][:template].delete(:body)
+ translations[:mn][:activerecord][:errors][:template].delete(:body)
+ end
+
+ alias_method_chain :init_translations, :mn_cleanup
+ end
+
module Fallbacks
def find_first_string_or_lambda_default(defaults)
defaults.each_with_index { |default, ix| return ix if default && !default.is_a?(Symbol) }
end
end
-I18n::Backend::Simple.include(I18n::Backend::Pluralization)
I18n::Backend::Simple.include(I18n::Backend::PluralizationFallback)
-I18n.load_path << "#{Rails.root}/config/pluralizers.rb"
-
I18n::Backend::Simple.include(I18n::Backend::Fallbacks)
I18n.fallbacks.map("no" => "nb")
-
-Rails.configuration.after_initialize do
- I18n.reload!
-end
# inflect.irregular 'person', 'people'
# inflect.uncountable %w( fish sheep )
# end
+#
+# These inflection rules are supported but not enabled by default:
+# ActiveSupport::Inflector.inflections do |inflect|
+# inflect.acronym 'RESTful'
+# end
--- /dev/null
+module Mail
+ class Ruby18
+ def Ruby18.b_value_decode(str)
+ match = str.match(/\=\?(.+)?\?[Bb]\?(.+)?\?\=/m)
+ if match
+ encoding = match[1]
+ str = Ruby18.decode_base64(match[2])
+ require 'iconv'
+ str = Iconv.conv("UTF-8//TRANSLIT//IGNORE", encoding, str)
+ end
+ str
+ end
+
+ def Ruby18.q_value_decode(str)
+ match = str.match(/\=\?(.+)?\?[Qq]\?(.+)?\?\=/m)
+ if match
+ encoding = match[1]
+ str = Encodings::QuotedPrintable.decode(match[2].gsub(/_/, '=20'))
+ require 'iconv'
+ str = Iconv.conv("UTF-8//TRANSLIT//IGNORE", encoding, str)
+ end
+ str
+ end
+ end
+end
+++ /dev/null
-if defined?(PhusionPassenger) and defined?(MEMCACHE_SERVERS)
- PhusionPassenger.on_event(:starting_worker_process) do |forked|
- if forked
- MEMCACHE = MEMCACHE.clone
- RAILS_CACHE = ActiveSupport::Cache::CompressedMemCacheStore.new(MEMCACHE)
- ActionController::Base.cache_store = RAILS_CACHE
- end
- end
-end
--- /dev/null
+require 'output_compression/output_compression'
--- /dev/null
+module Paperclip
+ class AssetUrlGenerator < UrlGenerator
+ include Sprockets::Helpers::IsolatedHelper
+ include Sprockets::Helpers::RailsHelper
+
+ def for(style_name, options)
+ url = super(style_name, options)
+
+ if url =~ /^\/assets\/(.*)$/
+ asset_path($1)
+ else
+ url
+ end
+ end
+ end
+end
+
+Paperclip::Attachment.default_options[:url] = "/attachments/:class/:attachment/:id_partition/:style/:fingerprint.:extension"
+Paperclip::Attachment.default_options[:path] = "#{ATTACHMENTS_DIR}/:class/:attachment/:id_partition/:style/:fingerprint.:extension"
+Paperclip::Attachment.default_options[:url_generator] = Paperclip::AssetUrlGenerator
# Be sure to restart your server when you modify this file.
-if STATUS == :database_offline or STATUS == :database_readonly
- OpenStreetMap::Application.config.session_store :cookie_store, :key => '_osm_session'
+if defined?(MEMCACHE_SERVERS)
+ unless STATUS == :database_offline or STATUS == :database_readonly
+ module Rack
+ module Session
+ class Memcache
+ def get_session(env, sid)
+ with_lock(env, [nil, {}]) do
+ unless sid and session = @pool.get(sid)
+ if sid and s = ActiveRecord::SessionStore::SqlBypass.find_by_session_id(sid)
+ session = s.data
+ s.destroy
+ else
+ sid, session = generate_sid, {}
+ end
+
+ unless /^STORED/ =~ @pool.add(sid, session)
+ raise "Session collision on '#{sid.inspect}'"
+ end
+ end
+ [sid, session]
+ end
+ end
+ end
+ end
+ end
+ end
+
+ cache = MemCache.new(:namespace => "rails:session", :string_return_types => true)
+
+ OpenStreetMap::Application.config.session_store :mem_cache_store, :cache => cache, :key => "_osm_session"
else
- ActiveRecord::SessionStore.session_class = ActiveRecord::SessionStore::SqlBypass
- OpenStreetMap::Application.config.session_store :active_record_store, :key => '_osm_session'
+ OpenStreetMap::Application.config.session_store :cache_store, :key => '_osm_session'
end
people_mapping_nearby: nabygeleë karteerders
subject: Onderwerp
title: Inboks
- you_have: U het %{new_count} nuwe boodskappe en %{old_count} ou boodskappe
mark:
as_read: Boodskap gemerk as gelees
as_unread: Boodskap gemerk as ongelees
subject: Onderwerp
title: Gestuur
to: Aan
- you_have_sent_messages: U het %{count} gestuurde boodskappe
read:
back_to_inbox: Terug na inboks
back_to_outbox: Terug na uitboks
password: "Wagwoord:"
remember: "Onthou my:"
title: Teken in
- webmaster: webmeester
logout:
heading: Teken van OpenStreetMap af
logout_button: Teken uit
licence: Licensa
longitude: "Lon:"
manually_select: Manualisht zgedhe ni zon te ndryshme
- mapnik_image: Mapin fotografi
max: maks
options: Opcionet
osm_xml_data: OpenStreetMap XML të dhana
- osmarender_image: Osmarender fotografi
output: Outputi
paste_html: Fute HTML për me ngjit në web sajt
scale: Shkallë
people_mapping_nearby: njerëzit pranë hartës
subject: Tema
title: Inbox
- you_have: I ki %{new_count} mesazhe të reja dhe %{old_count} mesazhe të vjetra
mark:
as_read: Mesazhi u bo si i lexum
as_unread: Mesazhi u bo si i palexum
subject: Titulli
title: Dalje
to: Te
- you_have_sent_messages: I ki %{count} mesazhe të dërgume
read:
back_to_inbox: Kthehu në postë
back_to_outbox: Kthehu në Dalje
title: Perdoruesit
login:
account not active: Na vjen keq, akonti juej nuk asht hala aktiv<br /> Ju lutemi klikoni në linkun e dërguem në email për me aktivizu akountin tuej.
- account suspended: Me na fal, por llogaria juaj u suspendu për shkak të aktivitetit të dyshimt.<br />Ju lutem kontaktoni %{webmaster} nëse doni ta diskutoni këtë
auth failure: Na vjen keq, smunem me ju kyc me ato detaje.
email or username: "Email Adresa ose Username:"
heading: Kycu
password: "Fjalekalimi:"
remember: "Kujtom mu:"
title: Kyçu
- webmaster: webmaster
logout:
heading: Dil nga OpenStreetMap
logout_button: Dil
licence: الرخصة
longitude: "خط الطول:"
manually_select: اختر يدويًا منطقة أخرى
- mapnik_image: Mapnik صورة
max: الأقصى
options: خيارات
osm_xml_data: معطيات خريطة الطريق المفتوح بنسق إكس أم أل
- osmarender_image: Osmarender صورة
output: الخرج
paste_html: ألصق HTML لتضمينه في موقع ما
scale: القياس
people_mapping_nearby: مخططون في جواري
subject: الموضوع
title: الوارد
- you_have: لديك %{new_count} رسالة جديدة و %{old_count} رسالة قديمة
mark:
as_read: عُلّمت الرسالة مقروءة
as_unread: عُلّمت الرسالة كغير مقروءة
subject: الموضوع
title: صندوق الصادر
to: إلى
- you_have_sent_messages: لديك %{count} رسالة مرسلة
read:
back_to_inbox: العودة إلى صندوق الوارد
back_to_outbox: العودة إلى صندوق الصادر
heading: المستخدمون
title: المستخدمون
login:
- account suspended: عذرًا، لقد عُلّق حسابك بسبب نشاط مشبوه.<br />يرجى الاتصال بالمسؤول عن الموقع (%{webmaster}) إذا كنت ترغب في مناقشة هذا الأمر.
auth failure: آسف، لا يمكن الدخول بتلك التفاصيل.
create account minute: أنشئ حساباّ. تحتاج فقط إلى دقيقة.
email or username: "عنوان البريد الإلكتروني أو اسم المستخدم:"
register now: تسجل الآن
remember: "تذكرني:"
title: ولوج
- webmaster: المسؤول عن الموقع
logout:
heading: الخروج من خريطة الشارع المفتوحة
logout_button: اخرج
licence: الرخصة
longitude: "خط الطول:"
manually_select: اختر يدويًا منطقه أخرى
- mapnik_image: Mapnik صورة
max: الأقصى
options: خيارات
osm_xml_data: معطيات خريطه الطريق المفتوح بنسق إكس أم أل
- osmarender_image: Osmarender صورة
output: الخرج
paste_html: ألصق HTML لتضمينه فى موقع ما
scale: القياس
people_mapping_nearby: مخططون فى جواري
subject: الموضوع
title: الوارد
- you_have: لديك %{new_count} رساله جديده و %{old_count} رساله قديمة
mark:
as_read: عُلّمت الرساله مقروءة
as_unread: عُلّمت الرساله كغير مقروءة
subject: الموضوع
title: صندوق الصادر
to: إلى
- you_have_sent_messages: لديك %{count} رساله مرسلة
read:
back_to_inbox: العوده إلى صندوق الوارد
back_to_outbox: العوده إلى صندوق الصادر
display_name: Nome a amosar
email: Corréu
languages: Llingües
- pass_crypt: Contraseña
+ pass_crypt: Conseña
models:
acl: Llista de Control d'Accesu
- changeset: Conxuntu de cambeos
+ changeset: Conxuntu de cambios
changeset_tag: Etiqueta del conxuntu de cambeos
country: País
diary_comment: Comentariu del diariu
title: Conxuntu de cambeos %{id}
title_comment: Conxuntu de cambeos %{id} - %{comment}
osmchangexml: osmChange XML
- title: Conxuntu de cambeos
+ title: Conxuntu de cambios
changeset_details:
belongs_to: "Pertenez a:"
bounding_box: "Cuadru de llende:"
node: Ver nodiu nún mapa más grande
relation: Ver rellación nun mapa más grande
way: Ver la vía nun mapa más grande
- loading: Cargando…
+ loading: Cargando...
navigation:
all:
next_changeset_tooltip: Conxuntu de cambeos siguiente
not_found:
sorry: Perdón, el/la %{type} con id %{id} nun se pudo alcontrar.
type:
- changeset: conxuntu de cambeos
+ changeset: conxuntu de cambios
node: nodiu
relation: rellación
way: vía
history_for_feature: Historial de [[feature]]
load_data: Cargar datos
loaded_an_area_with_num_features: "Cargasti un área que contién [[num_features]] carauterístiques. Polo xeneral, los restoladores nun pueden amosar bien esta cantidá de datos. Normalmente los restoladores funcionen meyor amosando menos de 100 carauterístiques al tiempu: d'otra miente se tornen lentos/dexen de responder. Si tas seguru d'amosar los datos, pues facelo calcando nel botón d'abaxo."
- loading: Cargando…
+ loading: Cargando...
manually_select: Seleiciona manualmente un área distinta
object_list:
api: Recuperar esti área de l'API
timeout:
sorry: Perdón, los datos pa %{type} con id %{id}, tardaron demasiao en descargase.
type:
- changeset: conxuntu de cambeos
+ changeset: conxuntu de cambios
node: nodiu
relation: rellación
way: vía
saved_at: Guardao el
user: Usuariu
list:
- description: Cambeos recientes
+ description: Cambios recientes
description_bbox: Conxuntos de cambeos en %{bbox}
+ description_friend: Conxuntos de cambios de los tos collacios
+ description_nearby: Conxuntos de cambios d'usuarios cercanos
description_user: Conxuntos de cambeos de %{user}
description_user_bbox: Conxuntos de cambeos de %{user} en %{bbox}
- heading: Conxuntos de cambeos
- heading_bbox: Conxuntos de cambeos
- heading_user: Conxuntos de cambeos
- heading_user_bbox: Conxuntos de cambeos
- title: Conxuntos de cambeos
+ heading: Conxuntos de cambios
+ heading_bbox: Conxuntos de cambios
+ heading_friend: Conxuntos de cambios
+ heading_nearby: Conxuntos de cambios
+ heading_user: Conxuntos de cambios
+ heading_user_bbox: Conxuntos de cambios
+ title: Conxuntos de cambios
title_bbox: Conxuntos de cambeos en %{bbox}
+ title_friend: Conxuntos de cambios de los tos collacios
+ title_nearby: Conxuntos de cambios d'usuarios cercanos
title_user: Conxuntos de cambeos de %{user}
title_user_bbox: Conxuntos de cambeos de %{user} en %{bbox}
timeout:
sorry: Llevó demasiao tiempu baxar la llista de conxuntos de cambeos que pidisti.
diary_entry:
+ comments:
+ ago: hai %{ago}
+ comment: Comentariu
+ has_commented_on: "%{display_name} comentó nes siguientes entraes del diariu"
+ newer_comments: Comentarios nuevos
+ older_comments: Comentarios anteriores
+ post: Publicar
+ when: Cuándo
diary_comment:
comment_from: Comentariu de %{link_user} el %{comment_created_at}
confirm: Confirmar
older_entries: Entraes anteriores
recent_entries: "Entraes recientes del diariu:"
title: Diarios d'usuarios
+ title_friends: Diarios de collacios
+ title_nearby: Diarios d'usuarios cercanos
user_title: Diariu de %{user}
location:
edit: Editar
licence: Llicencia
longitude: "Llon:"
manually_select: Seleiciona manualmente un área distinta
- mapnik_image: Imaxe de Mapnik
+ map_image: Imaxe del mapa (amuesa la capa estándar)
max: máx
options: Opciones
osm_xml_data: Datos XML d'OpenStreetMap
- osmarender_image: Imaxe d'Osmarender
output: Salida
paste_html: Pegar el HTML pa empotrar nun sitiu web
scale: Escala
base:
cycle_map: Mapa ciclista
mapquest: MapQuest Open
+ standard: Estándar
transport_map: Mapa de tresportes
site:
edit_disabled_tooltip: Aumenta pa editar el mapa
english_link: l'orixinal n'inglés
text: En casu d'haber un conflictu ente esta páxina traducida y %{english_original_link}, la páxina n'inglés tendrá prioridá
title: Tocante a esta traducción
- legal_babble: "<h2>Drechos d'autor y llicencia</h2>\n<p>\n OpenStreetMap son <i>datos abiertos (Open Data)</i>, con llicencia <a\n href=\"http://creativecommons.org/licenses/by-sa/2.0/deed.es\">Creative Commons Reconocimientu - Compartir igual 2.0</a> (CC-BY-SA).\n</p>\n<p>\n Puedes copiar, distribuir, tresmitir y adautar los nuesos mapes ya información de mou llibre mentanto yos reconuezas a OpenStreetMap y a los sos collaboradores. Si camudes o creas conteníu sobre los nuesos mapes ya información, podrás distribuir estos cambios baxo la mesma llicencia. El <a href=\"http://creativecommons.org/licenses/by-sa/2.0/legalcode\">códigu llegal completu</a> te desplica los tos drechos y obligaciones.\n</p>\n\n<h3>Cómo dar reconocimientu a OpenStreetMap</h3>\n<p>\n Si uses imaxes de mapes d'OpenStreetMap, te pidimos que'l testu de reconocimientu ponga polo menos “© Collaboradores d'OpenStreetMap, CC-BY-SA”. Si sólo vas usar datos del mapa, lo que pidimos ye “Datos del mapa © Collaboradores d'OpenstreetMap, CC-BY-SA”.\n</p>\n<p>\n Onde se pueda, OpenStreetMap tendría d'enllazase a <a\n href=\"http://www.openstreetmap.org/\">http://www.openstreetmap.org/</a>\n y CC-BY-SA a <a\n href=\"http://creativecommons.org/licenses/by-sa/2.0/\">http://creativecommons.org/licenses/by-sa/2.0/</a>. Si tas usando un medio que nun permita los enllaces (por casu, en trabayos imprentaos), t'encamentamos dirixir a los llectores a www.openstreetmap.org (por exemplu, ampliando ‘OpenStreetMap’ a la so direición completa) y a www.creativecommons.org.\n</p>\n\n<h3>Pa saber más...</h3>\n<p>\n Llee más tocante a cómo utilizar los nuesos datos en <a\n href=\"http://wiki.openstreetmap.org/wiki/Legal_FAQ\">Entrugues y rempuestes llegales</a> (n'inglés).\n</p>\n<p>\n Recordamos a los collaboradores d'OSM qu'enxamás amiesten datos que vengan d'una fonte con drechos d'autor acutaos (p. ex. de Google Maps o mapes impresos) ensin el permisu esplícitu de los dueños de los drechos d'autor.\n</p>\n<p>\n Anque OpenStreetMap son datos abiertos, nun podemos ufrir una API de mapes de baldre pa desendolcadores d'aplicaciones pa terceros.\n\n Por favor, llee la nuesa <a href=\"http://wiki.openstreetmap.org/wiki/API_usage_policy\">Política d'usu de la API</a> (n'inglés),\n <a href=\"http://wiki.openstreetmap.org/wiki/Tile_usage_policy\">Política d'usu d'imaxes</a> (n'inglés)\n y <a href=\"http://wiki.openstreetmap.org/wiki/Nominatim#Usage_Policy\">Política d'usu de Nominatim</a> (n'inglés tamién).\n</p>\n\n<h3>Los nuesos collaboradores</h3>\n<p>\n La nuesa llicencia CC-BY-SA requier “reconocer al autor orixinal, de manera razonable pal mediu o los medios que teas utilizando”. Los collaboradores individuales d'OSM nun piden más créditu que “Collaboradores d'OpenStreetMap”, pero cuando s'incluye n'OpenStreetMap información d'un organismu nacional de cartografía o d'otra fuente importante, ye razonable reproducir el so créditu direutamente o enllazar al mesmu nesta páxina.\n</p>\n\n<!--\nInformación pa los editores de la páxina\n\nLa llista darréu incluye sólo les organizaciones que requieren atribución como condición para que los sos datos puedan utilizase n'OpenStreetMap. Nun ye un catálogu xeneral d'importaciones y nun se tien d'utilizar más que cuando se requiera atribución pa cumplir coles condiciones de la llicencia de los datos importaos.\n\n\nCualesquier amiestu a esta llista tien de discutise primero colos alministradores del sistema d'OSM.\n-->\n\n<ul id=\"contributors\">\n <li><strong>Australia</strong>: Contien datos de barrios basaos en datos de Australian Bureau of\n Statistics.</li>\n <li><strong>Austria</strong>: Contien datos de\n <a href=\"http://data.wien.gv.at/\">Stadt Wien</a> baxo\n <a href=\"http://creativecommons.org/licenses/by/3.0/at/deed.de\">CC-BY</a>.</li>\n <li><strong>Canadá</strong>: Contien datos de GeoBase®, GeoGratis (© Department of Natural\n Resources Canada), CanVec (© Department of Natural\n Resources Canada), and StatCan (Geography Division,\n Statistics Canada).</li>\n <li><strong>Francia</strong>: Contien datos sacaos de Direction Générale des Impôts.</li>\n <li><strong>Nueva Zelanda</strong>: Contien datos sacaos de Land Information New Zealand. Crown Copyright reserved.</li>\n <li><strong>Polonia</strong>: Contien datos de <a\n href=\"http://ump.waw.pl/\">mapes UMP-pcPL</a>. Copyright collaboradores de\n UMP-pcPL.</li>\n<li><strong>Reinu Xuníu</strong>: Contien datos de Ordnance Survey © Crown copyright and database right\n 2010.</li>\n</ul>\n\n<p>\n La inclusión de datos n'OpenStreetMap nun significa que'l fornidor de los datos orixinales sofite OpenStreetMap, ufra garantía dala o aceute dalguna responsabilidá.\n</p>"
+ legal_babble: "<h2>Drechos d'autor y llicencia</h2>\n<p>\n OpenStreetMap son <i>datos abiertos (Open Data)</i>, con llicencia <a\n href=\"http://creativecommons.org/licenses/by-sa/2.0/deed.es\">Creative Commons Reconocimientu - Compartir igual 2.0</a> (CC-BY-SA).\n</p>\n<p>\n Puedes copiar, distribuir, tresmitir y adautar los nuesos mapes y datos de mou llibre, mentanto yos reconozas a OpenStreetMap y a los sos collaboradores. Si camudes o creas conteníu sobre los nuesos mapes o datos, podrás distribuir el resultáu baxo la mesma llicencia. El <a href=\"http://creativecommons.org/licenses/by-sa/2.0/legalcode\">códigu llegal completu</a> t'esplica los tos drechos y obligaciones.\n</p>\n\n<h3>Cómo dar reconocimientu a OpenStreetMap</h3>\n<p>\n Si uses les imaxes de mapes d'OpenStreetMap, te pidimos que'l testu de reconocimientu ponga polo menos “© Collaboradores d'OpenStreetMap, CC-BY-SA”. Si sólo vas usar datos del mapa, lo que pidimos ye “Datos del mapa © Collaboradores d'OpenstreetMap, CC-BY-SA”.\n</p>\n<p>\n Onde se pueda, OpenStreetMap tendría d'enllazase a <a\n href=\"http://www.openstreetmap.org/\">http://www.openstreetmap.org/</a>\n y CC-BY-SA a <a\n href=\"http://creativecommons.org/licenses/by-sa/2.0/\">http://creativecommons.org/licenses/by-sa/2.0/</a>. Si tas usando un mediu que nun permita los enllaces (por casu, en trabayos imprentaos), t'encamentamos dirixir a los llectores a www.openstreetmap.org (por exemplu, ampliando ‘OpenStreetMap’ a esta direición completa) y a www.creativecommons.org.\n</p>\n\n<h3>Pa saber más</h3>\n<p>\n Llei más tocante a cómo utilizar los nuesos datos en <a\n href=\"http://wiki.openstreetmap.org/wiki/Legal_FAQ\">Entrugues y rempuestes llegales</a> (n'inglés).\n</p>\n<p>\n Recordamos a los collaboradores d'OSM qu'enxamás amiesten datos que vengan d'una fonte con drechos d'autor acutaos (p. ex. de Google Maps o mapes impresos) ensin el permisu esplícitu de los dueños de los drechos d'autor.\n</p>\n<p>\n Anque OpenStreetMap son datos abiertos, nun podemos ufrir una API de mapes de baldre pa desendolcadores d'aplicaciones pa terceros.\n\n Llee la nuesa <a href=\"http://wiki.openstreetmap.org/wiki/API_usage_policy\">Política d'usu de la API</a> (n'inglés),\n <a href=\"http://wiki.openstreetmap.org/wiki/Tile_usage_policy\">Política d'usu d'imaxes</a> (n'inglés)\n y <a href=\"http://wiki.openstreetmap.org/wiki/Nominatim#Usage_Policy\">Política d'usu de Nominatim</a> (n'inglés tamién).\n</p>\n\n<h3>Los nuesos collaboradores</h3>\n<p>\n La nuesa llicencia CC-BY-SA requier “reconocer al autor orixinal, de manera razonable pal mediu o los medios que teas utilizando”. Los mapeadores individuales d'OSM nun piden más créditu que “Collaboradores d'OpenStreetMap”, pero cuando s'incluye n'OpenStreetMap información d'un organismu nacional de cartografía o d'otra fuente importante, ye razonable reproducir el so créditu direutamente o enllazar al mesmu nesta páxina.\n</p>\n\n<!--\nInformación pa los editores de la páxina\n\nLa llista darréu incluye sólo les organizaciones que requieren atribución como condición para que los sos datos puedan utilizase n'OpenStreetMap. Nun ye un catálogu xeneral d'importaciones y nun se tien d'utilizar más que cuando se requiera atribución pa cumplir coles condiciones de la llicencia de los datos importaos.\n\n\nCualesquier amiestu a esta llista tien de discutise primero colos alministradores del sistema d'OSM.\n-->\n\n<ul id=\"contributors\">\n <li><strong>Australia</strong>: Contien datos de barrios basaos en datos de Australian Bureau of\n Statistics.</li>\n <li><strong>Austria</strong>: Contien datos de\n <a href=\"http://data.wien.gv.at/\">Stadt Wien</a> baxo\n <a href=\"http://creativecommons.org/licenses/by/3.0/at/deed.de\">CC-BY</a>.</li>\n <li><strong>Canadá</strong>: Contien datos de GeoBase®, GeoGratis (© Department of Natural\n Resources Canada), CanVec (© Department of Natural\n Resources Canada), y StatCan (Geography Division,\n Statistics Canada).</li>\n <li><strong>Francia</strong>: Contien datos sacaos de Direction Générale des Impôts.</li>\n <li><strong>Nueva Zelanda</strong>: Contien datos sacaos de Land Information New Zealand. Crown Copyright reserved.</li>\n <li><strong>Polonia</strong>: Contien datos de <a\n href=\"http://ump.waw.pl/\">mapes UMP-pcPL</a>. Copyright collaboradores de\n UMP-pcPL.</li>\n <a href=\"http://wiki.openstreetmap.org/wiki/UMP2OSM_Importing\">\n Más tocante al usu n'OSM de datos UMP</a></li>\n <li><strong>South Africa</strong>: Contién datos sacaod de\n <a href=\"http://www.ngi.gov.za/\">Chief Directorate:\n National Geo-Spatial Information</a>, State copyright reserved.</li>\n<li><strong>Reinu Xuníu</strong>: Contien datos de Ordnance Survey © Crown copyright and database right 2010.</li>\n</ul>\n\n<p>\n La inclusión de datos n'OpenStreetMap nun significa que'l fornidor de los datos orixinales sofite OpenStreetMap, ufra garantía dala o aceute dalguna responsabilidá.\n</p>"
native:
mapping_link: principiar col mapéu
native_link: versión n'asturianu
inbox:
date: Data
from: De
+ messages: Tienes %{new_messages} y %{old_messages}
my_inbox: El mio buzón
+ new_messages:
+ one: "%{count} mensaxe nuevu"
+ other: "%{count} mensaxes nuevos"
no_messages_yet: Entá nun tienes mensaxes. ¿Y si te pones en contautu con %{people_mapping_nearby_link}?
+ old_messages:
+ one: "%{count} mensaxe vieyu"
+ other: "%{count} mensaxes vieyos"
outbox: buzón de salida
people_mapping_nearby: xente que ta mapeando cerca
subject: Asuntu
title: Buzón
- you_have: Tienes %{new_count} mensaxes nuevos y %{old_count} mensaxes antiguos
mark:
as_read: Mensaxe marcáu como lleíu
as_unread: Mensaxe marcáu como non lleíu
outbox:
date: Data
inbox: buzón
+ messages:
+ one: Tienes %{count} mensaxe unviáu
+ other: Tienes %{count} mensaxes unviaos
my_inbox: El mio %{inbox_link}
no_sent_messages: Entá nun unviasti mensaxes. ¿Y si te pones en contautu con %{people_mapping_nearby_link}?
outbox: buzón de salida
subject: Asuntu
title: Buzón de salida
to: Pa
- you_have_sent_messages: Tienes %{count} mensaxes unviaos
read:
back_to_inbox: Tornar al buzón d'entrada
back_to_outbox: Tornar al buzón de salida
with_description: cola descripción
your_gpx_file: Paez el to ficheru GPX
lost_password:
- subject: "[OpenStreetMap] Pidíu de reaniciu de contraseña"
+ subject: "[OpenStreetMap] Pidíu de reaniciu de conseña"
lost_password_html:
- click_the_link: Si yes tú, calca nel enllaz d'abaxo pa reaniciar la to contraseña.
+ click_the_link: Si yes tu, calca nel enllaz d'abaxo pa reaniciar la to conseña.
greeting: Bones,
- hopefully_you: Dalguién (esperamos que tu) pidió que se-y reanicie la contraseña na cuenta d'openstreetmap.org con estes señes de corréu.
+ hopefully_you: Dalguién (esperamos que tu) pidió que se-y reanicie la conseña na cuenta con estes señes de corréu d'openstreetmap.org.
lost_password_plain:
- click_the_link: Si yes tú, calca nel enllaz d'abaxo pa reaniciar la to contraseña.
+ click_the_link: Si yes tu, calca nel enllaz d'abaxo pa reaniciar la to conseña.
greeting: Bones,
- hopefully_you_1: Dalguién (esperamos que tu) pidió que se-y reanicie la contraseña na
- hopefully_you_2: cuenta d'openstreetmap.org con estes señes de corréu.
+ hopefully_you_1: Dalguién (esperamos que tu) pidió que se-y reanicie la conseña na
+ hopefully_you_2: cuenta con estes señes de corréu d'openstreetmap.org.
message_notification:
footer1: Tamién pues lleer el mensax en %{readurl}
footer2: y pues contestar en %{replyurl}
text: Anguaño, les tos ediciones son anónimes y la xente nun te pue unviar mensaxes o ver la to llocalización. P'amosar lo qu'editasti y permitir que la xente se ponga en contautu contigo pela páxina web, calca nel botón qu'apaez abaxo. <b>Dende'l cambiu al API 0.6, sólo los usuarios públicos pueden editar los datos del mapa</b> (<a href="http://wiki.openstreetmap.org/wiki/Anonymous_edits">por estes razones</a>).<ul><li>Les direiciones de corréu electrónicu nun se fairán públiques.</li><li>Nun ye posible volver atrás d'esta aición, y agora tolos usuarios nuevos son públicos de mou predetermináu.</li></ul>
replace image: Sustituir la imaxe actual
return to profile: Volver al perfil
- save changes button: Guardar cambeos
+ save changes button: Guardar los cambios
title: Editar la cuenta
update home location on click: ¿Anovar el llugar d'orixe calcando nel mapa?
confirm:
summary_no_ip: "%{name} creáu el %{date}"
title: Usuarios
login:
+ account is suspended: Sentímoslo, la to cuenta ta torgada a causa d'actividaes sospechoses.<br />Ponte en contautu col <a href="%{webmaster}">webmaster</a> si quies discutilo.
account not active: Sentímoslo, la to cuenta inda nun ta activada.<br />Usa l'enllaz del corréu de confirmación de la cuenta p'activala o <a href="%{reconfirm}">pidi otru corréu de confirmación</a>.
- account suspended: Sentímoslo, la to cuenta ta torgada a causa d'actividaes sospechoses.<br />Ponte en contautu col %{webmaster} si quies discutilo.
auth failure: Sentímoslo, nun se pudo coneutar al sistema con esos datos.
create account minute: Crea una cuenta. Lleva namái un minutu.
email or username: "Direición de corréu o nome d'usuariu:"
heading: Entrar
login_button: Entrar
- lost password link: ¿Perdisti la contraseña?
+ lost password link: ¿Perdisti la conseña?
new to osm: ¿Yes nuevu con OpenStreetMap?
+ no account: ¿Nun tienes una cuenta?
notice: <a href="http://www.osmfoundation.org/wiki/License/We_Are_Changing_The_License">Saber más tocante al próximu cambiu de llicencia d'OpenStreetMap</a> (<a href="http://wiki.openstreetmap.org/wiki/ODbL/We_Are_Changing_The_License">traducciones</a>) (<a href="http://wiki.openstreetmap.org/wiki/Talk:ODbL/Upcoming">alderique</a>)
+ notice_terms: OpenStreetMap va movese a una llicencia nueva dende'l 1 d'abril de 2012. Ye igual d'abierta que l'actual, pero les partes llegales s'acomoden meyor a la nuesa base de datos del mapa. Gustaría-nos caltener les tos collaboraciones n'OpenStreetMap, pero namái podemos facelo si aceutes que les distribuyamos baxo la nueva llicencia. D'otra miente, tendremos que desaniciales de la base de datos.<br /><br />Por favor, entra na to cuenta y toma dellos segundos pa revisar y aceutar los nuevos términos. ¡Gracies!
openid: "%{logo} OpenID:"
openid invalid: Sentímoslo, la to OpenID paez que ta mal formada
openid missing provider: Sentímoslo, nun pudimos ponenos en contautu col to sirvidor d'OpenID
yahoo:
alt: Coneutar con una OpenID de Yahoo
title: Coneutar con Yahoo
- password: "Contraseña:"
+ password: "Conseña:"
register now: Rexistrate agora
remember: "Recordame:"
title: Entrar
to make changes: Pa camudar los datos d'OpenStreetMap, has de tener una cuenta.
- webmaster: webmaster
with openid: "D'otra miente, usa la to OpenID pa coneutar:"
- with username: "¿Yá tienes cuenta en OpenStreetMap? Por favor, coneuta col to nome d'usuariu y contraseña:"
+ with username: "¿Yá tienes cuenta n'OpenStreetMap? Por favor, entra col to nome d'usuariu y conseña:"
logout:
heading: Colar d'OpenStreetMap
logout_button: Colar
title: Colar
lost_password:
- email address: "Direición de corréu:"
- heading: ¿Escaecisti la contraseña?
- help_text: Escribi les señes de corréu qu'usasti pa date d'alta, t'unviaremos un enllaz que pues usar pa reaniciar la contraseña.
- new password button: Reaniciar contraseña
+ email address: "Direición de corréu electrónicu:"
+ heading: ¿Escaecisti la conseña?
+ help_text: Escribi les señes de corréu qu'usasti pa date d'alta, t'unviaremos un enllaz que pues usar pa reaniciar la conseña.
+ new password button: Reaniciar conseña
notice email cannot find: Nun s'alcontró esa direición de corréu.
notice email on way: Sentimos que la perdieres :-( pero hai un corréu en camín pa que puedas reaniciala ceo.
- title: Contraseña perdida
+ title: Conseña perdida
make_friend:
already_a_friend: Yá yes collaciu de %{name}.
failed: Lo sentimos, hebo un fallu al amestar a %{name} como collaciu.
success: "%{name} agora ye amigu tuyu."
new:
confirm email address: "Confirmar direición de corréu:"
- confirm password: "Confirma la contraseña:"
+ confirm password: "Confirma la conseña:"
contact_webmaster: Ponte en contautu col <a href="mailto:webmaster@openstreetmap.org">webmaster</a> p'arreglar la creación d'una cuenta - procuraremos xestionar la solicitú lo más aína que podamos.
continue: Siguir
display name: "Nome a amosar:"
display name description: El nome d'usuariu que s'amuesa en público. Pue camudalo más sero nes preferencies.
- email address: "Direición de corréu:"
+ email address: "Direición de corréu electrónicu:"
fill_form: Rellena'l formulariu y t'unviaremos un mensaxe de corréu rápidamente p'activar la to cuenta.
flash create success message: Gracies por rexistrate. Venimos d'unvia un corréu de confirmación a %{email} y darréu que confirmes la to cuenta tarás preparáu pa mapear. <br /><br />Si uses un sistema escontra'l corréu puxarra qu'unvia solicitúes de confirmación, asegúrate d'amestar webmaster@openstreetmap.org na llista blanca de remitentes seguros, porque nós nun podemos responder solicitúes de confirmación.
heading: Crear una cuenta d'usuariu
no_auto_account_create: Por desgracia anguaño nun podemos crear una cuenta por ti automáticamente.
not displayed publicly: Nun s'amuesa en público (ver la <a href="http://wiki.openstreetmap.org/wiki/Privacy_Policy" title="política de protección de datos na wiki, qu'incluye una seición sobro direiciones de corréu">política de protección de datos</a>)
openid: "%{logo} OpenID:"
- openid association: "<p>La to OpenID nun ta asociada con una cuenta d'OpenStreetMap entá.</p>\n<ul>\n <li>Si yes nuevu n'OpenStreetMap, por favor crea una cuenta nueva usando'l formulariu darréu.</li>\n <li>\n Si yá tienes una cuenta, puedes entrar nella usando'l to nome\n d'usuariu y contraseña, y entós asociar la cuenta cola OpenID\n na configuración de les preferencies d'usuariu.\n </li>\n</ul>"
- openid no password: Con OpenID nun fai falta contraseña, pero delles ferramientes estra o sirvidores entá pueden necesitala.
- password: "Contraseña:"
+ openid association: "<p>La to OpenID nun ta asociada con una cuenta d'OpenStreetMap entá.</p>\n<ul>\n <li>Si yes nuevu n'OpenStreetMap, por favor crea una cuenta nueva col formulariu darréu.</li>\n <li>\n Si yá tienes una cuenta, pues entrar nella col to nome\n d'usuariu y conseña, y entós asociar la cuenta cola OpenID\n nes preferencies d'usuariu.\n </li>\n</ul>"
+ openid no password: Con OpenID nun fai falta una conseña, pero delles ferramientes estra o sirvidores entá puen necesitala.
+ password: "Conseña:"
terms accepted: ¡Gracies por aceutar les condiciones de collaboración!
terms declined: Sentimos que decidieres nun aceutar les Condiciones de Collaboración. Pa más información llei <a href="%{url}">esta páxina wiki</a>.
title: Crear una cuenta
not_a_friend: "%{name} nun ye un de los tos amigos."
success: "%{name} se desanició de los tos amigos."
reset_password:
- confirm password: "Confirma la contraseña:"
- flash changed: Se camudó la to contraseña
+ confirm password: "Confirma la conseña:"
+ flash changed: Se camudó la to conseña
flash token bad: Nun s'alcontró esi token, ¿tendríes de comprobar la URL, seique?
- heading: Reaniciar la contraseña de %{user}
- password: "Contraseña:"
- reset: Reaniciar contraseña
- title: Reaniciar contraseña
+ heading: Reaniciar la conseña de %{user}
+ password: "Conseña:"
+ reset: Reaniciar conseña
+ title: Reaniciar conseña
set_home:
flash success: Llocalización d'aniciu guardada correutamente
suspended:
block_history: ver los bloqueos recibíos
blocks by me: bloqueos puestos
blocks on me: bloqueos recibíos
+ comments: comentarios
confirm: Confirmar
confirm_user: confirmar esti usuariu
create_block: bloquiar esti usuariu
created from: "Creáu dende:"
+ ct accepted: Aceutada hai %{ago}
+ ct declined: Refugada
+ ct status: "Términos de collaboración:"
+ ct undecided: Indecisu
deactivate_user: desactivar esti usuariu
delete_user: desaniciar esti usuariu
description: Descripción
diary: diariu
edits: ediciones
- email address: "Direición de corréu:"
+ email address: "Direición de corréu electrónicu:"
+ friends_changesets: Esplorar tolos conxuntos de cambios de los collacios
+ friends_diaries: Ver toles entraes de diariu de los collacios
hide_user: anubrir esti usuariu
if set location: Si defines el to allugamientu, equí apaecerá un guapu mapa. Pues conseñar un llugar d'orixe na to páxina de %{settings_link}.
km away: a %{count}km de distancia
m away: a %{count}m de distancia
mapper since: "Mapeador dende:"
moderator_history: ver los bloqueos puestos
+ my comments: los mios comentarios
my diary: el mio diariu
my edits: les mios ediciones
my settings: les mios preferencies
my traces: les mios traces
nearby users: Otros usuarios próximos
+ nearby_changesets: Ver tolos conxuntos de cambios d'usuarios cercanos
+ nearby_diaries: Ver toles entraes de diariu d'usuarios cercanos
new diary entry: nueva entrada del diariu
no friends: Entá nun amestasti dengún amigu.
no nearby users: Entá nun hai otros usuarios que tean mapeando cerca de ti.
cookies_needed: Здаецца, што ў Ва забароненыя закладкі (cookies). Калі ласка, дазвольце іх ў Вашым браўзэры перад тым, як працягваць.
setup_user_auth:
blocked: Ваш доступ да API заблякаваны. Калі ласка, увайдзіце праз ўэб-інтэрфэйс, каб даведацца болей.
- need_to_see_terms: Ð\92аÑ\88 доÑ\81Ñ\82Ñ\83п да API Ñ\87аÑ\81ова пÑ\80Ñ\8bпÑ\8bненÑ\8b. Ð\9aалÑ\96 лаÑ\81ка, Ñ\83вайдзÑ\96Ñ\86е Ñ\9e Ñ\9eÑ\8dб-Ñ\96нÑ\82Ñ\8dÑ\80Ñ\84Ñ\8dйÑ\81, каб каб паглÑ\8fдзеÑ\86Ñ\8c Ñ\83мовÑ\8b Ñ\9eдзелÑ\83. Вам не абавязкова пагаджацца зь імі, але неабходна зь імі азнаёміцца.
+ need_to_see_terms: Ð\92аÑ\88 доÑ\81Ñ\82Ñ\83п да API Ñ\87аÑ\81ова пÑ\80Ñ\8bпÑ\8bненÑ\8b. Ð\9aалÑ\96 лаÑ\81ка, Ñ\83вайдзÑ\96Ñ\86е Ñ\9e Ñ\9eÑ\8dб-Ñ\96нÑ\82Ñ\8dÑ\80Ñ\84Ñ\8dйÑ\81, каб каб паглÑ\8fдзеÑ\86Ñ\8c Ñ\83мовÑ\8b Ñ\81Ñ\83пÑ\80аÑ\86оÑ\9eнÑ\96Ñ\86Ñ\82ва. Вам не абавязкова пагаджацца зь імі, але неабходна зь імі азнаёміцца.
browse:
changeset:
changeset: "Набор зьменаў: %{id}"
list:
description: Апошнія зьмены
description_bbox: Набор зьменаў у %{bbox}
+ description_friend: Наборы зьменаў Вашых сяброў
+ description_nearby: Наборы зьменаў для суседніх удзельнікаў
description_user: Наборы зьменаў %{user}
description_user_bbox: Набор зьменаў %{user} у %{bbox}
heading: Наборы зьменаў
heading_bbox: Наборы зьменаў
+ heading_friend: Наборы зьменаў
+ heading_nearby: Наборы зьменаў
heading_user: Наборы зьменаў
heading_user_bbox: Наборы зьменаў
title: Наборы зьменаў
title_bbox: Набор зьменаў у %{bbox}
+ title_friend: Наборы зьменаў Вашых сяброў
+ title_nearby: Наборы зьменаў для суседніх удзельнікаў
title_user: Набор зьменаў %{user}
title_user_bbox: Набор зьменаў %{user} у %{bbox}
timeout:
older_entries: Старэйшыя запісы
recent_entries: "Апошнія запісы ў дзёньніку:"
title: Дзёньнікі карыстальнікаў
+ title_friends: Дзёньнікі сяброў
+ title_nearby: Дзёньнікі суседніх удзельнікаў
user_title: Дзёньнік %{user}
location:
edit: Рэдагаваць
licence: Ліцэнзія
longitude: "Даўгата:"
manually_select: Выбраць іншы абшар
- mapnik_image: Выява Mapnik
max: максымум
options: Устаноўкі
osm_xml_data: Зьвесткі OpenStreetMap у фармаце XML
- osmarender_image: Выява Osmarender
output: Вывад
paste_html: HTML-код для ўстаўкі ў вэб-сайт
scale: Маштаб
water_point: Пункт водазабесьпячэньня
waterfall: Вадаспад
weir: Плаціна
+ javascripts:
+ map:
+ base:
+ cycle_map: Роварная мапа
+ transport_map: Транспартная мапа
+ site:
+ edit_disabled_tooltip: Павялічыць маштаб мапы для рэдагаваньня
+ edit_tooltip: Рэдагаваць мапу
+ edit_zoom_alert: Неабходна павялічыць маштаб мапы для яе рэдагаваньня
+ history_disabled_tooltip: Павялічыць маштаб для прагляду рэдагаваньняў у гэтым абшары
+ history_tooltip: Прагляд рэдагаваньняў у гэтым абшары
+ history_zoom_alert: Неабходна павялічыць маштаб мапы, каб праглядзець рэдагаваньні ў гэтым абшары
layouts:
community_blogs: Блёгі супольнасьці
community_blogs_title: Блёгі чальцоў супольнасьці OpenStreetMap
inbox:
date: Дата
from: Ад
+ messages: Вы маеце %{new_messages} і %{old_messages}
my_inbox: Мае ўваходзячыя
no_messages_yet: Вы яшчэ ня маеце паведамленьняў. Чаму б не зьвязацца з %{people_mapping_nearby_link}?
outbox: зыходзячыя
people_mapping_nearby: людзьмі, якія жывуць каля Вас
subject: Тэма
title: Уваходзячыя
- you_have: Вы маеце %{new_count} новых паведамленьняў і %{old_count} старых паведамленьняў
mark:
as_read: Паведамленьне пазначанае як прачытанае
as_unread: Паведамленьне пазначанае як непрачытанае
subject: Тэма
title: Зыходзячыя
to: Да
- you_have_sent_messages: Вы маеце %{count} адпраўленых паведамленьняў
read:
back_to_inbox: Вярнуцца да ўваходных
back_to_outbox: Вярнуцца да выходных
revoke:
flash: Вы адклікалі ключ для дастасаваньня %{application}
oauth_clients:
+ create:
+ flash: Інфармацыя пасьпяхова зарэгістраваная
+ destroy:
+ flash: Зьнішчаная рэгістрацыя кліенцкага дастасаваньня
edit:
submit: Рэдагаваць
title: Рэдагаваць Вашае дастасаваньне
+ form:
+ allow_read_gpx: чытаць іх прыватныя GPS-трэкі.
+ allow_read_prefs: чытаць іх налады ўдзельніка.
+ allow_write_api: зьмяняць мапу.
+ allow_write_diary: ствараць запісы ў дзёньніку, камэнтары і знаёміцца.
+ allow_write_gpx: загружаць GPS-трэкі.
+ allow_write_prefs: зьмяняць іх налады ўдзельніка.
+ callback_url: URL-адрас зваротнага выкліку
+ name: Назва
+ requests: "Запытаць наступныя дазволы ад удзельніка:"
+ required: Абавязковае
+ support_url: URL-адрас падтрымкі
+ url: Галоўны URL-адрас дастасаваньня
index:
+ application: Назва дастасаваньня
+ issued_at: Выданы ў
+ list_tokens: "Наступныя ключы былі створаныя для дастасаваньняў на Вашае імя:"
+ my_apps: Мае кліенцкія дастасаваньні
my_tokens: Мае аўтарызаваныя дастасаваньні
+ no_apps: Вы маеце дастасаваньне, якое жадаеце зарэгістраваць для ўзаемадзеяньня з намі праз стандарт %{oauth}? Вам неабходна зарэгістраваць Вашае ўэб-дастасаваньне перад тым, як яно зможа зрабіць OAuth-запыты на гэты сэрвэр.
+ register_new: Зарэгістраваць Вашае дастасаваньне
+ registered_apps: "Вы маеце зарэгістраванымі наступныя кліенцкія дастасаваньні:"
+ revoke: Адклікаць!
title: Мае падрабязнасьці OAuth
new:
submit: Рэгістрацыя
title: Зарэгістраваць новае дастасаваньне
+ not_found:
+ sorry: Прабачце, немагчыма знайсьці гэты %{type}.
show:
access_url: "URL-адрас ключа доступу:"
allow_read_gpx: чытаць іх прыватныя GPS-трэкі.
support_notice: Мы падтрымліваем HMAC-SHA1 (рэкамэндуецца) і звычайны тэкст у SSL-рэжыме.
title: Падрабязнасьці OAuth для %{app_name}
url: "URL-адрас ключа запыту:"
+ update:
+ flash: Кліенцкая інфармацыя была абноўленая пасьпяхова
site:
edit:
anon_edits_link_text: Даведацца ў чым справа.
new email address: "Новы адрас электроннай пошты:"
new image: Дадаць выяву
no home location: Вы не падалі Вашае месцазнаходжаньне.
+ openid:
+ link: http://wiki.openstreetmap.org/wiki/BE:OpenID
+ link text: што гэта?
+ openid: "OpenID:"
preferred editor: "Пажаданы рэдактар:"
preferred languages: "Абраныя мовы:"
profile description: "Апісаньне профілю:"
summary_no_ip: "%{name} створаны %{date}"
title: Удзельнікі
login:
+ account is suspended: Прабачце, але Ваш рахунак быў заблякаваны з-за падазронай актыўнасьці.<br />Калі ласка, зьвяжыцеся з <a href="%{webmaster}">ўэбмайстрам</a> калі Вы жадаеце гэта аспрэчыць.
account not active: Прабачце, Ваш рахунак пакуль што не актывізаваны.<br />Калі ласка, каб яго актывізаваць, карыстайцеся спасылкай у дасланым Ваш электронным лісьце, ці <a href="%{reconfirm}">падайце запыт на новы электронны ліст з пацьверджаньнем</a>.
- account suspended: Прабачце, але Ваш рахунак быў заблякаваны з-за падазронай актыўнасьці.<br />Калі ласка, зьвяжыцеся з %{webmaster} калі Вы жадаеце гэта аспрэчыць.
auth failure: Прабачце, немагчыма ўвайсьці з такім адрасам і паролем.
create account minute: Стварыць рахунак. Гэта зойме ня болей хвіліны.
email or username: "Адрас электроннай пошты ці імя карыстальніка:"
lost password link: Забылі пароль?
new to osm: Упершыню на OpenStreetMap?
notice: <a href="http://www.osmfoundation.org/wiki/License/We_Are_Changing_The_License">Даведайцеся болей пра плянуемыя зьмены ліцэнзіі OpenStreetMap</a> (<a href="http://wiki.openstreetmap.org/wiki/ODbL/We_Are_Changing_The_License">пераклады</a>) (<a href="http://wiki.openstreetmap.org/wiki/Talk:ODbL/Upcoming">абмеркаваньні</a>)
+ notice_terms: OpenStreetMap перайшоў на новую ліцэнзію з 1 красавіка 2012 году. Яна такая ж адкрытая як папярэдняя, але больш пасуе для нашай базы зьвестак мапы. Мы жадаем, каб Вы засталіся працаваць з OpenStreetMap, але гэта можа адбыцца толькі пасьля таго, калі Вы пагадзіцеся працаваць на ўмовах новай ліцэнзіі. У адваротным выпадку мы выдалім Ваш унёсак з базы зьвестак.<br /><br />Калі ласка, увайдзіце ў сыстэму, потым прачытайце і прыміце новыя ўмовы. Дзякуй!
+ openid: "%{logo} OpenID:"
+ openid invalid: Прабачце, здаецца Ваш OpenID уведзены няслушна
+ openid missing provider: Прабачце, немагчыма зьвязацца з Вашым правайдэрам OpenID
+ openid_logo_alt: Увайсьці ў сыстэму з дапамогай OpenID
+ openid_providers:
+ aol:
+ alt: Увайсьці ў сыстэму з дапамогай AOL OpenID
+ title: Увайсьці ў сыстэму з дапамогай AOL
+ google:
+ alt: Увайсьці ў сыстэму з дапамогай Google OpenID
+ title: Увайсьці ў сыстэму з дапамогай Google
+ myopenid:
+ alt: Увайсьці ў сыстэму з дапамогай myOpenID OpenID
+ title: Увайсьці ў сыстэму з дапамогай myOpenID
+ openid:
+ alt: Увайсьці ў сыстэму з дапамогай URL-адрасу OpenID
+ title: Увайсьці ў сыстэму з дапамогай OpenID
+ wordpress:
+ alt: Увайсьці ў сыстэму з дапамогай Wordpress OpenID
+ title: Увайсьці ў сыстэму з дапамогай Wordpress
+ yahoo:
+ alt: Увайсьці ў сыстэму з дапамогай Yahoo OpenID
+ title: Увайсьці ў сыстэму з дапамогай Yahoo
password: "Пароль:"
register now: Зарэгістравацца зараз
remember: "Запамятаць мяне:"
title: Увайсьці
to make changes: Каб рабіць зьмены ў зьвестках OpenStreetMap, Вам неабходна мець рахунак.
- webmaster: ўэб-майстар
+ with openid: "Для ўваходу можаце выкарыстаць Ваш OpenID:"
+ with username: "Ужо маеце рахунак OpenStreetMap? Калі ласка, увайдзіце ў сыстэму з Вашым іменем удзельніка і паролем:"
logout:
heading: Выйсьці з OpenStreetMap
logout_button: Выйсьці
license_agreement: Калі Вы пацьвердзіце Ваш рахунак, Вам трэба будзе пагадзіцца з <a href="http://www.osmfoundation.org/wiki/License/Contributor_Terms">умовамі супрацоўніцтва</a>.
no_auto_account_create: На жаль, мы зараз ня можам стварыць для Вас рахунак аўтаматычна.
not displayed publicly: Не паказваецца публічна (глядзіце <a href="http://wiki.openstreetmap.org/wiki/Privacy_Policy" title="правілы адносна прыватнасьці вікі, у тым ліку сэкцыя пра адрасы электроннай пошты">правілы адносна прыватнасьці</a>)
+ openid: "%{logo} OpenID:"
+ openid association: "<p>Ваш OpenID пакуль ня зьвязаны з рахункам OpenStreetMap.</p>\n<ul>\n <li>Калі Вы ўпершыню на OpenStreetMap, калі ласка, стварыце новы рахунак з дапамогай формы пададзенай ніжэй.</li>\n <li>\n Калі Вы ўжо маеце рахунак, Вы можаце ўвайсьці ў сыстэму\n з Вашым іменем удзельніка і паролем, а потым зьвязаць яго з Вашым рахункам\n OpenID на старонцы наладаў Вашага профілю.\n </li>\n</ul>"
+ openid no password: Падчас выкарыстаньня OpenID пароль не патрэбны, але некаторыя дадатковыя інструмэнты ці сэрвэр могуць яго спытаць.
password: "Пароль:"
terms accepted: Дзякуй за тое, што прынялі новыя ўмовы супрацоўніцтва!
+ terms declined: Нам шкада, што Вы вырашылі не прыняць новыя ўмовы супрацоўніцтва. Для атрыманьня дадатковай інфармацыі, калі ласка, глядзіце <a href="%{url}">гэтую вікі-старонку</a>.
title: Стварыць рахунак
+ use openid: Дадаткова выкарыстоўвайце %{logo} OpenID для ўваходу ў сыстэму
no_such_user:
body: Прабачце, няма ўдзельніка з іменем %{user}. Калі ласка, праверце дакладнасьць напісаньня, ці, магчыма, спасылка па якой Вы перайшлі, няслушная.
heading: Удзельнік %{user} не існуе
consider_pd: У дадатак да прыведзенага пагадненьня, я пацьвярджаю, што мой унёсак знаходзіцца ў грамадзкім набытку
consider_pd_why: што гэта?
decline: Адхіліць
+ guidance: "Інфармацыя, якая дапаможа зразумець гэтыя ўмовы: <a href=\"%{summary}\">кароткае апісаньне</a> і некалькі <a href=\"%{translations}\">неафіцыйных перакладаў</a>"
heading: Умовы супрацоўніцтва
legale_names:
france: Францыя
legale_select: "Калі ласка, выберыце сваю краіну пражываньня:"
read and accept: Калі ласка, пачытайце пагадненьне ніжэй і націсьніце кнопку «Згодны», каб пацьвердзіць што Вы пагаджаецеся з умовамі гэтага пагадненьня адносна Вашага існуючага і будучых ўнёскаў.
title: Умовы супрацоўніцтва
+ you need to accept or decline: Калі ласка, прачытайце, а потым згадзіцеся ці адхіліце новыя ўмовы супрацоўніцтва для працягу.
view:
activate_user: актывізаваць гэтага удзельніка
add as friend: дадаць у сябры
confirm_user: пацьвердзіць гэтага карыстальніка
create_block: заблякаваць гэтага ўдзельніка
created from: "Створана з:"
+ ct accepted: Прынятыя %{ago} таму
+ ct declined: Адхіленыя
+ ct status: "Умовы супрацоўніцтва:"
+ ct undecided: Нявырашана
deactivate_user: дэактывізаваць гэтага удзельніка
delete_user: выдаліць гэтага ўдзельніка
description: Апісаньне
diary: дзёньнік
edits: рэдагаваньні
email address: "Адрас электроннай пошты:"
+ friends_changesets: Праглядзець усе наборы зьменаў сяброў
+ friends_diaries: Праглядзець усе запісы дзёньнікаў сяброў
hide_user: схаваць гэтага ўдзельніка
if set location: Калі Вы пазначыце Вашае месцазнаходжаньне, тут зьявіцца прыгожая мапа і дадатковыя інструмэнты. Вы можаце пазначыць Вашае месцазнаходжаньне на Вашай старонцы %{settings_link}.
km away: "%{count}км ад Вас"
my settings: мае налады
my traces: мае трэкі
nearby users: Іншыя бліжэйшыя карыстальнікі
+ nearby_changesets: Праглядзець усе наборы зьменаў суседніх удзельнікаў
+ nearby_diaries: Праглядзець усе запісы дзёньнікаў суседніх удзельнікаў
new diary entry: новы запіс у дзёньніку
no friends: Пакуль што Вы не дадалі нікога ў сябры.
no nearby users: Няма іншых карыстальнікаў, якія прызнаюць, што займаюцца складаньнем мапы каля Вас.
administrator: Скасаваць правы адміністратара
moderator: Скасаваць доступ мадэратара
send message: даслаць паведамленьне
- settings_link_text: устаноўкі
+ settings_link_text: налады
spam score: "Адзнака спаму:"
status: "Статус:"
traces: трэкі
unhide_user: паказаць гэтага ўдзельніка
user location: Меcцазнаходжаньне ўдзельніка
your friends: Вашыя сябры
+ user_block:
+ blocks_by:
+ empty: "%{name} яшчэ не стварыў блякаваньняў."
+ heading: Сьпіс блякаваньняў, якія стварыў %{name}
+ title: Блякаваньні створаныя %{name}
+ blocks_on:
+ empty: "%{name} ня быў яшчэ заблякаваны."
+ heading: Сьпіс блякаваньняў %{name}
+ title: Блякаваньні для %{name}
+ create:
+ flash: Заблякаваць удзельніка %{name}.
+ try_contacting: Калі ласка, перад блякаваньнем удзельніка зьвяжыцеся зь ім і дайце яму дастаткова часу для адказу.
+ try_waiting: Калі ласка, дайце ўдзельніку дастаткова часу для адказу, перад яго блякаваньнем.
+ edit:
+ back: Паказаць усе блякаваньні
+ heading: Рэдагаваньне блякаваньня для %{name}
+ needs_view: Ці трэба ўдзельніку ўвайсьці ў сыстэму, перад тым як блякаваньне будзе зьнятае?
+ period: Як доўга, пачынаючы з гэтага моманту, карыстальнік будзе заблякаваны ад API.
+ reason: Падайце прычыну, па якой %{name} блякуецца. Калі ласка, будзьце цярплівы і дзейнічайце разумна, прадстаўляючы ўдзельніку падрабязную інфармацыю пра прычыны блякаваньня. Помніце, што ня ўсе ўдзельнікі разумеюць жаргон супольнасьці, таму выкарыстоўвайце зразумелыя паняцьці.
+ show: Паказаць гэтае блякаваньне
+ submit: Абнавіць блякаваньне
+ title: Рэдагаваньне блякаваньня для %{name}
+ filter:
+ block_expired: Блякаваньне ўжо скончылася і ня можа рэдагавацца.
+ block_period: Час блякаваньня павінен быць выбраны са значэньняў з разгортваемага сьпісу.
+ not_a_moderator: Вам трэба быць мадэратарам каб выканаць гэтае дзеяньне.
+ helper:
+ time_future: Канчаецца ў %{time}.
+ time_past: Скончылася %{time} таму.
+ until_login: Актыўнае да моманту ўваходу ўдзельніка ў сыстэму.
+ index:
+ empty: Блякаваньняў яшчэ не было.
+ heading: Сьпіс блякаваньняў удзельніка
+ title: Блякаваньні ўдзельніка
+ model:
+ non_moderator_revoke: Трэба быць мадэратарам, каб адклікаць блякяваньне.
+ non_moderator_update: Трэба быць мадэратарам, каб стварыць ці адбавіць блякаваньне.
+ new:
+ back: Паказаць усе блякаваньні
+ heading: Стварэньне блякаваньня для %{name}
+ needs_view: Удзельніку трэба ўвайсьці ў сыстэму, перад тым як блякаваньне будзе зьнятае
+ period: Як доўга, пачынаючы з гэтага моманту, карыстальнік будзе заблякаваны ад API.
+ reason: Падайце прычыну па якой %{name} блякуецца. Калі ласка, будзьце цярплівы і дзейнічайце разумна, прадстаўляючы ўдзельніку падрабязную інфармацыю пра прычыны блякаваньня, помніце, што паведамленьне будзе бачнае для ўсіх. Помніце, што ня ўсе ўдзельнікі разумеюць жаргон супольнасьці, таму выкарыстоўвайце зразумелыя паняцьці.
+ submit: Стварыць блякаваньне
+ title: Стварэньне блякаваньня для %{name}
+ tried_contacting: Я зьвярнуўся да удзельніка і папрасіў яго спыніцца.
+ tried_waiting: Я даў дастаткова часу ўдзельніку, каб адказаць на тыя паведамленьні.
+ not_found:
+ back: Вярнуцца да сьпісу
+ sorry: Прабачце, немагчыма знойсьці блякаваньне ўдзельніка з ідэнтыфікатарам %{id}.
+ partial:
+ confirm: Вы ўпэўнены?
+ creator_name: Стваральнік
+ display_name: Заблякаваны ўдзельнік
+ edit: Рэдагаваць
+ not_revoked: (не адкліканае)
+ reason: Прычына блякаваньня
+ revoke: Адклікаць!
+ revoker_name: Адкліканае
+ show: Паказаць
+ status: Статус
+ revoke:
+ confirm: Вы ўпэўнены, што жадаеце адклікаць гэтае блякаваньне?
+ flash: Гэтае блякаваньне было адкліканае.
+ heading: Зьняць блякаваньне з %{block_on}, створанае %{block_by}
+ past: Гэтае блякаваньне скончылася %{time} таму і ня можа быць цяпер адкліканае.
+ revoke: Адклікаць!
+ time_future: Гэтае блякаваньне скончыцца ў %{time}.
+ title: Зьняць блякаваньне з %{block_on}
+ show:
+ back: Паказаць усе блякаваньні
+ confirm: Вы ўпэўнены?
+ edit: Рэдагаваць
+ heading: "%{block_on} заблякаваны %{block_by}"
+ needs_view: Удзельніку трэба ўвайсьці ў сыстэму, перад тым як гэтае блякаваньне будзе зьнятае.
+ reason: "Прычына блякаваньня:"
+ revoke: Адклікаць!
+ revoker: "Адклікаўшы:"
+ show: Паказаць
+ status: Статус
+ time_future: Канчаецца ў %{time}
+ time_past: Скончылася %{time} таму
+ title: "%{block_on} заблякаваны %{block_by}"
+ update:
+ only_creator_can_edit: Толькі мадэратар, які стварыў блякаваньне, можа яго рэдагаваць.
+ success: Блякаваньне абноўленае.
user_role:
filter:
already_has_role: Карыстальнік ужо мае ролю %{role}.
list:
description: Kemmoù graet nevez zo
description_bbox: Strolladoù kemmoù e-barzh %{bbox}
+ description_friend: Hollad ar c'hemmoù degaset gant ho mignoned
+ description_nearby: Hollad kemmoù deuet gant an implijerien a-dost
description_user: Strolladoù kemmoù gant %{user}
description_user_bbox: Strolladoù kemmoù gant %{user} e-barzh %{bbox}
- heading: Strolladoù kemmoù
- heading_bbox: strolladoù kemmoù
- heading_user: Strolladoù kemmoù
- heading_user_bbox: Strolladoù kemmoù
- title: Strolladoù kemmoù
+ heading: Hollad kemmoù
+ heading_bbox: Hollad kemmoù
+ heading_friend: Hollad ar c'hemmoù
+ heading_nearby: Hollad kemmoù
+ heading_user: Hollad kemmoù
+ heading_user_bbox: Hollad kemmoù
+ title: Hollad kemmoù
title_bbox: Strolladoù kemmoù e-barzh %{bbox}
+ title_friend: Hollad ar c'hemmoù degaset gant ho mignoned
+ title_nearby: Hollad kemmoù deuet gant an implijerien a-dost
title_user: Strolladoù kemmoù gant %{user}
title_user_bbox: Strolladoù kemmoù gant %{user} e-barzh %{bbox}
timeout:
older_entries: Enmonedoù koshañ
recent_entries: "Enmonedoù nevez en deizlevr :"
title: Deizlevrioù an implijerien
+ title_friends: Marilhoù ar vignoned
+ title_nearby: Marilhoù mignoned a-dost
user_title: Deizlevr %{user}
location:
edit: Kemmañ
licence: Aotre implijout
longitude: "Hed. :"
manually_select: Diuzañ un takad disheñvel gant an dorn
- mapnik_image: Skeudenn Mapnik
max: d'ar muiañ
options: Dibarzhioù
osm_xml_data: Roadennoù XML OpenStreetMap
- osmarender_image: Skeudenn Osmarender
output: Er-maez
paste_html: Pegañ HTML evit bezañ enkorfet en ul lec'hienn web
scale: Skeuliad
inbox:
date: Deiziad
from: A-berzh
+ messages: "%{new_messages} ha %{old_messages} zo evidoc'h"
my_inbox: Ma boest resev
+ new_messages:
+ one: "%{count} gemennadenn nevez"
+ other: "%{count} kemennadenn nevez"
no_messages_yet: N'hoc'h eus kemennadenn ebet c'hoazh. Ha ma'z afec'h e darempred gant darn eus an %{people_mapping_nearby_link}?
+ old_messages:
+ one: "%{count} gemennadenn gozh"
+ other: "%{count} kemennadenn gozh"
outbox: boest kas
people_mapping_nearby: tud o kartennañ en ardremez
subject: Danvez
title: Boest resev
- you_have: Bez' hoc'h eus %{new_count} kemennadenn nevez ha %{old_count} kemennadenn gozh
mark:
as_read: Kemennadenn merket evel lennet
as_unread: Merkañ evel anlennet
outbox:
date: Deiziad
inbox: boest resev
+ messages:
+ one: Kaset hoc'h eus %{count} gemennadenn
+ other: Kaset hoc'h eus %{count} kemennadenn
my_inbox: Ma %{inbox_link}
no_sent_messages: N'hoc'h eus kaset kemennadenn ebet c'hoazh. Ha ma'z afec'h a darempred gant darn eus an %{people_mapping_nearby_link}?
outbox: boest kas
subject: Danvez
title: Boest kas
to: Da
- you_have_sent_messages: Kaset hoc'h eus %{count} kemennadenn
read:
back_to_inbox: Distreiñ d'ar voest resev
back_to_outbox: Distreiñ d'ar voest kas
license_name: Creative Commons Deroadenn Kenrannañ heñvel 2.0
notice: Dindan aotre-implijout %{license_name} gant an %{project_name} hag e genobererien.
project_name: raktres OpenStreetMap
- permalink: Permalink
+ permalink: Peurliamm
remote_failed: C'hwitet eo ar c'hemm - gwiriit hag-eñ eo karget JOSM or Merkaartor ha gweredekaet an dibarzh kontroll a-bell
shortlink: Liamm berr
key:
summary_no_ip: "%{name} krouet d'an %{date}"
title: Implijerien
login:
+ account is suspended: Digarezit, arsavet eo bet ho kont abalamour d'un obererezh arvarus.<br />Kit e darempred gant ar <a href="%{webmaster}">webmaster</a> m'hoc'h eus c'hoant da gaozeal diwar-benn an dra-se.
account not active: Ho tigarez, n'eo ket oberiant ho kont c'hoazh. <br/>Klikit war al liamm er postel kadarnaat, mar plij, evit gweredekaat ho kont, pe <a href="%{reconfirm}">goulennit ur postel kadarnaat all</a> .
- account suspended: Digarezit, arsavet eo bet ho kont abalamour d'un obererezh arvarus.<br />Kit e darempred gant ar %{webmaster}, mar plij, m'hoc'h eus c'hoant da gaozeal diwar-benn an dra-se.
auth failure: Ho tigarez, met n'eus ket bet gallet hoc'h anavezout gant an titouroù pourchaset.
create account minute: Krouiñ ur gont. Ne bad nemet ur vunutenn.
email or username: "Chomlec'h postel pe anv implijer :"
lost password link: Ankouaet ho ker-tremen ganeoc'h ?
new to osm: Nevez war OpenStreetMap ?
notice: <a href="http://www.osmfoundation.org/wiki/License/We_Are_Changing_The_License">Gouzout hiroc'h diwar-benn ar cheñchamant aotre-implijout da zont gant OpenStreetMap</a> (<a href="http://wiki.openstreetmap.org/wiki/ODbL/We_Are_Changing_The_License">troidigezhioù</a>) (<a href="http://wiki.openstreetmap.org/wiki/Talk:ODbL/Upcoming">kendiviz</a>)
+ notice_terms: Embannet e vo OpenStreetMap dindan un aotre-implijout nevez adalek ar 1añ a viz Ebrel 2012. Ken frank a wirioù e vo hag an hini zo bremañ nemet e tegouezho gwelloc'h an termenoù gwir ouzh hon diaz roadennoù kartennaouel. Plijet e vefemp o virout ho tegasadennoù da OpenStreetMap, met n'hallimp en ober nemet mard embannit bezañ a-du d'hor lezel o skignañ diouzh termenoù an aotre nevez. A-hend-all e rankimp lemel anezho kuit eus an diaz.<br /><br />Kevreit evit gwelet an termenoù nevez hag asantiñ dezho. Ne dap nemet un un nebeud eilennoù. Ho trugarekaat !
openid: "%{logo} OpenID :"
openid invalid: Ho tigarez, Evit doare eo stummet fall hoc'h OpenID
openid missing provider: Ho tigarez, n'eus ket bet gallet mont e darempred gant ho pourvezer OpenID
remember: "Derc'hel soñj ac'hanon :"
title: Kevreañ
to make changes: Evit kemmañ roadennoù OpenStreetMap e rankit kaout ur gont.
- webmaster: webmaster
with openid: "Gallout a rit ivez ober gant hoc'h OpenID evit kevreañ :"
with username: "Ur gont OpenStreetMap hoc'h eus dija ? Digorit un dalc'h en ur verkañ hoc'h anv implijer hag ho ker-tremen :"
logout:
confirm_user: kadarnaat an implijer-mañ
create_block: stankañ an implijer-mañ
created from: "Krouet diwar :"
+ ct accepted: Degemeret %{ago} zo
+ ct declined: Nac'het
+ ct status: "Diferadennoù ar c'henlabourer :"
+ ct undecided: En entremar
deactivate_user: diweredekaat an implijer-mañ
delete_user: dilemel an implijer-mañ
description: Deskrivadur
diary: deizlevr
edits: kemmoù
email address: "Chomlec'h postel :"
+ friends_changesets: Furchal dre an holl gemmoù degaset gant ho mignoned
+ friends_diaries: Furchal holl enmontoù ar marilh personel gant e vignoned
hide_user: kuzhat an implijer-mañ
if set location: Ma lakait ho lec'hiadur e teuio ur gartenn vrav war wel dindani. Gallout a rit lakaat ho lec'hiadur war ho pajenn %{settings_link}.
km away: war-hed %{count} km
my settings: ma arventennoù
my traces: ma roudoù
nearby users: "Implijerien all tost deoc'h :"
+ nearby_changesets: Furchal an holl holladoù kemmoù gant an implijerien a-dost
+ nearby_diaries: Furchal holl enmontoù ar marilh personel gant implijerien a-dost
new diary entry: enmoned nevez en deizlevr
no friends: N'hoc'h eus ouzhpennet mignon ebet c'hoazh.
no nearby users: N'eus implijer ebet all en ardremez c'hoazh.
# Author: McDutchie
# Author: PerroVerd
# Author: SMP
+# Author: Sim6
+# Author: Solde
# Author: Ssola
# Author: Toniher
ca:
need_to_see_terms: L'accés a l'API és temporalment suspeses. Si us plau, log-in a la interfície de web per veure els termes de col. laborador. Vostè no necessita estar d'acord, però cal veure-les.
browse:
changeset:
- changeset: Conjunt de canvis %{id}
+ changeset: "Conjunt de canvis: %{id}"
changesetxml: XML del conjunt de canvis
download: Baixa %{changeset_xml_link} o %{osmchange_xml_link}
feed:
box: caixa
closed_at: "Tancat el:"
created_at: "Creat el:"
- has_nodes: "Té els següents %{count} nodes:"
- has_relations: "Té les següents %{count} relacions:"
+ has_nodes:
+ one: "Té el següent %{count} node:"
+ other: "Té els següents %{count} nodes:"
+ has_relations:
+ one: "Té la següent %{count} relació:"
+ other: "Té les següents %{count} relacions:"
has_ways:
one: "Té la següent via:"
other: "Té les següents %{count} vies:"
prev_relation_tooltip: Relació anterior
prev_way_tooltip: Via anterior
user:
- name_changeset_tooltip: Visualitza les edicions feter per %{user}
- next_changeset_tooltip: Propera edició per %{user}
- prev_changeset_tooltip: Edició anterior per l'usuari %{user}
+ name_changeset_tooltip: Visualitza les edicions de %{user}
+ next_changeset_tooltip: Propera edició de %{user}
+ prev_changeset_tooltip: Edició anterior de %{user}
node:
download: "%{download_xml_link} o %{view_history_link}"
download_xml: Baixa l'XML
of: de
showing_page: S'està mostrant pàgina
relation:
- download: "%{download_xml_link} oo %{view_history_link}"
+ download: "%{download_xml_link} o %{view_history_link}"
download_xml: Baixa l'XML
relation: Relació
relation_title: "Relació: %{relation_name}"
part_of: "Part de:"
relation_history:
download: "%{download_xml_link} o %{view_details_link}"
- download_xml: Descarrega XML
+ download_xml: Baixa l'XML
relation_history: Historial de la relació
relation_history_title: "Historial de la relació: %{relation_name}"
- view_details: visualitza els detalls
+ view_details: mostra els detalls
relation_member:
entry_role: "%{type} %{name} com %{role}"
type:
hide_areas: Oculta les zones
history_for_feature: Historial per a [[feature]]
load_data: Carrega dades
- loaded_an_area_with_num_features: "Heu carregat una àrea que conté trets de [[num_features]]. En general, alguns navegadors poden no fer front també mostrar aquesta quantitat de dades. En general, els navegadors funcionen millor de es mostren trets de menys de 100 a la vegada: fer qualsevol altra cosa pot fer que el seu navegador lent/insensible. Si esteu segurs que voleu visualitzar aquestes dades, pot fer-ho fent clic al botó de sota."
+ loaded_an_area_with_num_features: "Heu carregat una àrea que conté [[num_features]] característiques. En general, alguns navegadors no poden fer front a mostrar aquesta quantitat de dades. En general, els navegadors funcionen millor mostrant menys de 100 característiques a la vegada: fer una altre cosa pot fer que el seu navegador esdevingui lent o que no respongui. Si esteu segurs que voleu visualitzar aquestes dades, pot fer-ho fent clic al botó de sota."
loading: S'està carregant...
manually_select: Selecciona manualment una àrea diferent
object_list:
private_user: usuari privat
show_areas: Mostra les zones
show_history: Mostra l'historial
- unable_to_load_size: "No es pot carregar: Bounding mida de caixa de [[bbox_size]] és massa gran (ha de ser més petita que % {max_bbox_size})"
+ unable_to_load_size: "No es pot carregar: Bounding mida de caixa de [[bbox_size]] és massa gran (ha de ser més petita que %{max_bbox_size})"
wait: Espereu...
zoom_or_select: Amplia o selecciona una àrea del mapa per mostrar
tag_details:
tag: La pàgina de descripció del wiki per l'etiqueta %{key}=%{value}
wikipedia_link: L'article %{page} a la Viquipèdia
timeout:
- sorry: Hem trigat massa en obtenir les dades pel tipus %{type} amb identificador %{id}.
+ sorry: Ho sentim, hem trigat massa en obtenir les dades pel tipus %{type} amb identificador %{id}.
type:
changeset: conjunt de canvis
node: node
list:
description: Canvis recents
description_bbox: Conjunt de canvis dins de %{bbox}
+ description_friend: Conjunts de canvis dels vostres amics
+ description_nearby: Conjunts de canvis d'usuaris propers
description_user: Conjunt de canvis fets per %{user}
description_user_bbox: Conjunt de canvis de %{user} dins de %{bbox}
heading: Conjunt de canvis
heading_bbox: Conjunt de canvis
+ heading_friend: Conjunts de canvis
+ heading_nearby: Conjunts de canvis
heading_user: Conjunt de canvis
heading_user_bbox: Conjunt de canvis
title: Conjunt de canvis
title_bbox: Conjunt de canvis dins de %{bbox}
+ title_friend: Conjunts de canvis dels vostres amics
+ title_nearby: Conjunts de canvis d'usuaris propers
title_user: Conjunt de canvis de %{user}
title_user_bbox: Conjunt de canvis de %{user} dins de %{bbox}
timeout:
diary_entry:
diary_comment:
comment_from: Comentari de %{link_user} el %{comment_created_at}
- confirm: Confirmar
+ confirm: Confirma
hide_link: Amaga aquest comentari
diary_entry:
comment_count:
location: "Ubicació:"
longitude: "Longitud:"
marker_text: Localització de l'Entrada del Diari
- save_button: Guardar
+ save_button: Desa
subject: "Assumpte:"
title: Edita entrada del diari
use_map_link: usa el mapa
older_entries: Entrades més Antigues
recent_entries: "Entrades Recents al diari:"
title: Diaris d'usuari/a
+ title_friends: Diaris dels amics
+ title_nearby: Diaris d'amics propers
user_title: Diari de %{user}
location:
edit: Modifica
new:
title: Nova Entrada de Diari
no_such_entry:
- body: Ho sentim, que no hi ha cap entrada del diari o comentari amb l'id % {id}. Si us plau, comproveu l'ortografia, o potser l'enllaç que es fa clic està malament.
+ body: Ho sentim, que no hi ha cap entrada del diari o comentari amb l'id %{id}. Si us plau, comproveu l'ortografia, o potser l'enllaç que es fa clic està malament.
heading: No hi ha cap entrada amb la id %{id}
title: No hi ha entrada al diari com
no_such_user:
- body: Ho sentim, no hi ha cap usuari amb el nom % (usuari). Si us plau, comproveu l'ortografia, o potser l'enllaç que es fa clic està malament.
+ body: Ho sentim, no hi ha cap usuari amb el nom %{user}. Si us plau, comproveu l'ortografia, o potser l'enllaç que es fa clic està malament.
heading: L'usuari/a %{user} no existeix
title: Aquest usuari/a no existeix
view:
licence: Llicència
longitude: "Lon:"
manually_select: Selecciona manualment una àrea diferent
- mapnik_image: Imatge de Mapnik
max: màx
options: Opcions
osm_xml_data: OpenStreetMap XML Data
- osmarender_image: Imatge de Osmarender
output: Sortida
paste_html: Enganxa HTML per incloure'l al lloc web
scale: Escala
description:
title:
geonames: Localització des de <a href="http://www.geonames.org/">GeoNames</a>
- osm_namefinder: "% {tipus} de <a href=\"http://gazetteer.openstreetmap.org/namefinder/\">OpenStreetMap Namefinder</a>"
+ osm_namefinder: "%{types} de <a href=\"http://gazetteer.openstreetmap.org/namefinder/\">OpenStreetMap Namefinder</a>"
osm_nominatim: Localització des de <a href="http://nominatim.openstreetmap.org/">OpenStreetMap Nominatim</a>
types:
cities: Ciutats
bank: Banc
bar: Bar
bench: Banc
- bicycle_parking: Aparcament de Bicicletes
+ bicycle_parking: Aparcament de bicicletes
bicycle_rental: Lloguer de bicicletes
brothel: Prostíbul
bureau_de_change: Oficina de canvi
bus_station: Estació d'autobusos
cafe: Cafè
car_rental: Lloguer de cotxes
- car_sharing: Per Compartir Cotxe
+ car_sharing: Compartició de cotxes
car_wash: Rentat de cotxes
casino: Casino
cinema: Cinema
fire_hydrant: Boca d'incendi
fire_station: Parc de bombers
fountain: Font
- fuel: Gasolinera
+ fuel: Benzinera
grave_yard: Cementiri
gym: Gimnàs
hall: Ajuntament
veterinary: Veterinari
village_hall: Casa de la Vila
waste_basket: Cistella de Residus
- wifi: Accés a internet WiFi
+ wifi: Punt d'accés WiFi
youth_centre: Centre juvenil
boundary:
administrative: Administració de Fronteres
base:
cycle_map: Cycle Map
mapquest: MapQuest Open
+ standard: Estàndard
transport_map: Mapa de transports
site:
edit_disabled_tooltip: Augmenteu el zoom per modificar el mapa
copyright: Drets d'autor i llicència
documentation: Documentació
documentation_title: Documentació del projecte
- donate: Suport OpenStreetMap % {enllaç} el fons de rampa de maquinari.
+ donate: Suport OpenStreetMap %{link} el fons de rampa de maquinari.
donate_link_text: donatius
edit: Modificació
- edit_with: Modifica amb % {editor}
+ edit_with: Modifica amb %{editor}
export: Exporta
export_tooltip: Exporta les dades del mapa
foundation: Fundació
history: Historial
home: Inici
home_tooltip: Vés a la posició inicial
- inbox: safata d'entrada (% {count})
+ inbox: safata d'entrada (%{count})
inbox_tooltip:
other: one no llegits = el seu inbox conté 1 message
zero: el seu inbox conté cap messages
intro_1: L'OpenStreetMap és un mapa editable i lliure de tot el món. Està fet per gent com vós.
intro_2: OpenStreetMap us permet veure, editar i utilitzar informació geogràfica comunitària de qualsevol lloc del planeta
- intro_3: OpenStreetMap hosting és amable amb el suport de % {ucl}, % {ic} i % {bytemark}. Altres partidaris del projecte s'enumeren en el % {socis}.
+ intro_3: OpenStreetMap hosting és amable amb el suport de %{ucl}, %{ic} i %{bytemark}. Altres partidaris del projecte s'enumeren en el %{partners}.
intro_3_ic: Imperial College de Londres
intro_3_partners: wiki
license:
license_page:
foreign:
english_link: l'original en anglès
- text: En cas de conflicte entre aquesta pàgina traduïda i % {english_original_link}, la pàgina en anglès tindrà prioritat
+ text: En cas de conflicte entre aquesta pàgina traduïda i %{english_original_link}, la pàgina en anglès tindrà prioritat
title: Quant a la traducció
legal_babble: "<h2>Drets d'autor i llicència</h2>\n<p>\n OpenStreetMap és <i>obrir dades</i>, concedeix una llicència sota el <a\n href=\"http://creativecommons.org/licenses/by-sa/2.0/\">Creative\n Llicència Commons Attribution-ShareAlike 2.0 (CC-BY-SA).\n<p>\n<p>\n Vostè és lliure de copiar, distribuir, transmetre i adaptar-se a nostres mapes\n i les dades, sempre que li doni crèdit OpenStreetMap i la seva\n col. laboradors. Si alterar o construir sobre els nostres mapes o dades, vostè\n distribuir el resultat només sota la mateixa llicència. La\n Full <a\n href=\"http://creativecommons.org/licenses/by-sa/2.0/legalcode\">legal\n codi explica els seus drets i responsabilitats.\n<p>\n\n<h3>Com a crèdit OpenStreetMap</h3>\n<p>\n Si està utilitzant imatges de mapa de OpenStreetMap, us preguem que\n el seu crèdit llegeix com a mínim \"© OpenStreetMap\n col. laboradors, CC-BY-SA\". Si està utilitzant les dades de mapa només\n demanem \"mapa dades © OpenStreetMap col·laboradors\n CC-BY-SA\".\n</p>\n<p>\n Sempre que sigui possible, OpenStreetMap ha de ser un hipervincle a <a\n href=\"http://www.openstreetmap.org/\">http://www.openstreetmap.org/\n i CC-BY-SA a <a\n href=\"http://creativecommons.org/licenses/by-sa/2.0/\">http://creativecommons.org/licenses/by-sa/2.0/. Si\n està utilitzant un mitjà on enllaços no són possibles (per exemple, un\n treball impresa), us suggerim que directa als seus lectors a\n www.OpenStreetMap.org (potser per l'ampliació\n 'OpenStreetMap' a aquesta adreça completa) i a\n www.creativecommons.org.\n<p>\n\n<h3>Saber-ne més</h3>\n<p>\n Llegiu més informació sobre com utilitzar les nostres dades a les <a\n href=\"http://wiki.openstreetmap.org/wiki/Legal_FAQ\">Legal\n PREGUNTES MÉS FREQÜENTS.\n<p>\n<p>\n Col. laboradors OSM se li va recordar mai per afegir les dades des de qualsevol\n drets d'autor fonts (p. ex. Google Maps o mapes impreses) sense\n permís explícit dels titulars del copyright.\n</p>\n<p>\n Encara que OpenStreetMap és oberts les dades, no podem oferir un\n mapa de Free-of-charge API per a desenvolupadors de tercera festa.\n\n Consulti la nostra <a href=\"http://wiki.openstreetmap.org/wiki/API_usage_policy\">Política d'ús de l'API</a>\n <a href=\"http://wiki.openstreetmap.org/wiki/Tile_usage_policy\">Política d'ús de rajoles</a>\n i <a href=\"http://wiki.openstreetmap.org/wiki/Nominatim#Usage_Policy\">política d'ús de Nominatim</a>.\n</p>\n\n<h3>Nostres col. laboradors</h3>\n<p>\n La nostra llicència CC-BY-SA requereix que \"doni l'Original\n Autor de crèdit raonable per al suport i mitjà que ets\n utilització\". No tornis a sol·licitar individuals dibuixants de mapes de OSM un\n de crèdit més enllà de que a \"OpenStreetMap\n col. laboradors\", però on les dades des d'un mapatge Nacional\n Agència o l'altra font important ha estat inclòs en\n OpenStreetMap, pot ser raonable per crèdit per directament\n reproduir el seu crèdit o per vincular-hi d'aquesta pàgina.\n</p>\n\n<!--\nInformation for page editors\n\nThe following lists only those organisations who require attribution\nas a condition of their data being used in OpenStreetMap. It is not a\ngeneral catalogue of imports, and must not be used except when\nattribution is required to comply with the licence of the imported\ndata.\n\nAny additions here must be discussed with OSM sysadmins first.\n-->\n\n<ul id=\"contributors\">\n<li><strong>Austràlia</strong>: conté dades suburbi basats\n en les dades d'Austràlia Oficina d'estadístiques.</li>\n<li><strong>Àustria</strong>: conté dades de\n <a href=\"http://data.wien.gv.at/\">Stadt Wien</a> sota\n <a href=\"http://creativecommons.org/licenses/by/3.0/at/deed.de\">CC-BY</a>.</li>\n<li><strong>Canadà</strong>: conté dades de\n GeoBase ®, GeoGratis (© Departament de Natural\n Recursos Canadà), CanVec (© Departament de Natural\n Recursos Canadà) i StatCan (Divisió de Geografia,\n Canadà de Estadístiques).</li>\n<li><strong>França</strong>: conté dades d'origen de\n Direcció Générale des Impôts.</li>\n<li><strong>Nova Zelanda</strong>: conté dades d'origen de\n Informació Nova Zelanda de la terra. Corona de drets d'autor reservat.</li>\n<li><strong>Polònia</strong>: conté dades de mapes de <a\n href=\"http://ump.waw.pl/\">UMP-pcPL. Drets d'autor\n Col. laboradors de la UMP-pcPL.</a\n></li>\n<li><strong>Regne Unit</strong>: conté cartografia\n Enquesta dades © Crown copyright i base de dades correcte\n 2010.</li>\n</ul>\n\n<p>\n Inclusió de dades en OpenStreetMap no implica que l'original\n el proveïdor de dades recolza OpenStreetMap, proporciona cap garantia, o\n accepta qualsevol responsabilitat.\n</p></a\n></a\n></a\n></a\n></a\n>"
native:
mapping_link: Inici d'assignació
native_link: Versió THIS_LANGUAGE_NAME_HERE
- text: Estàs veient la versió anglesa de la pàgina de drets d'autor. Es pot tornar posterior al % {native_link} d'aquesta pàgina o vostè pot deixar de llegir sobre el copyright i % {mapping_link}.
+ text: Estàs veient la versió anglesa de la pàgina de drets d'autor. Es pot tornar posterior al %{native_link} d'aquesta pàgina o vostè pot deixar de llegir sobre el copyright i %{mapping_link}.
title: Sobre aquesta pàgina
message:
delete:
inbox:
date: Data
from: De
+ messages: Teniu %{new_messages} i %{old_messages}
my_inbox: La meva safata d'entrada
- no_messages_yet: No tens missatges encara. Per què no entrar en contacte amb alguns dels % {people_mapping_nearby_link}?
+ new_messages:
+ one: "%{count} missatge nou"
+ other: "%{count} missatges nous"
+ no_messages_yet: No tens missatges encara. Per què no entrar en contacte amb alguns dels %{people_mapping_nearby_link}?
+ old_messages:
+ one: "%{count} missatge antic"
+ other: "%{count} missatges antics"
outbox: sortida
people_mapping_nearby: Cartografia de prop la gent
subject: Assumpte
title: Safata d'entrada
- you_have: Teniu missatges nous % {new_count} i els missatges antics % {old_count}
mark:
- as_read: Missatge marcat com a llegits
+ as_read: Missatge marcat com a llegit
as_unread: Missatge marcat com a no llegit
message_summary:
delete_button: Suprimeix
reply_button: Respon
unread_button: Marca com a no llegit
new:
- back_to_inbox: Tornar a la safata d'entrada
+ back_to_inbox: Torna a la safata d'entrada
body: Cos
limit_exceeded: He enviat un munt de missatges recentment. Si us plau, espereu una estona abans d'intentar d'enviar qualsevol més.
message_sent: S'ha enviat el missatge
send_button: Envia
- send_message_to: Enviar un missatge nou a % {name}
+ send_message_to: Enviar un missatge nou per a %{name}
subject: Assumpte
- title: Enviar missatge
+ title: Envia el missatge
no_such_message:
body: Trist que no hi ha cap missatge amb que id.
heading: No existeix aquest missatge
outbox:
date: Data
inbox: Entrada
+ messages:
+ one: Teniu %{count} missatge enviat
+ other: Teniu %{count} missatges enviats
my_inbox: El meu %{inbox_link}
- no_sent_messages: Encara no has cap els missatges enviats. Per què no entrar en contacte amb alguns dels % {people_mapping_nearby_link}?
+ no_sent_messages: Encara no has enviat cap missatge. Per què no entrar en contacte amb alguns dels %{people_mapping_nearby_link}?
outbox: sortida
people_mapping_nearby: Cartografia de prop la gent
subject: Assumpte
title: Sortida
to: A
- you_have_sent_messages: Tens % {count} enviar missatges
read:
back_to_inbox: Torna a la safata d'entrada
back_to_outbox: Torna a la safata de sortida
date: Data
from: De
reading_your_messages: Llegir els missatges
- reading_your_sent_messages: Llegir els missatges enviats
+ reading_your_sent_messages: S'estan llegint els missatges enviats
reply_button: Respon
subject: Assumpte
title: Llegir missatge
to: Per a
unread_button: Marca com a no llegit
- wrong_user: Heu iniciat la sessió com "% {user}", però el missatge que han demanat a llegir a no va ser enviat per o a que l'usuari. Si us plau connecti's com l'usuari correcte per a llegir-lo.
+ wrong_user: Heu iniciat la sessió com "%{user}", però el missatge que han demanat a llegir a no va ser enviat o dirigit a aquest usuari. Si us plau connecti's com l'usuari correcte per a llegir-lo.
reply:
- wrong_user: Heu iniciat la sessió com "% {user}", però el missatge que han demanat que respongui a no s'ha enviat a que l'usuari. Si us plau connecti's com l'usuari correcte per a respondre.
+ wrong_user: Heu iniciat la sessió com "%{user}", però el missatge que han demanat de respondre a no s'ha enviat a aquest usuari. Si us plau connecti's com l'usuari correcte per a respondre.
sent_message_summary:
delete_button: Suprimeix
notifier:
diary_comment_notification:
- footer: També podeu llegir el comentari a les % {readurl} i es pot comentar als % {commenturl} o respondre a les % {replyurl}
- header: "% {from_user} ha comentat en el seu recent entrada del diari OpenStreetMap amb el tema % {tema}:"
+ footer: També podeu llegir el comentari a les %{readurl} i es pot comentar als %{commenturl} o respondre a les %{replyurl}
+ header: "%{from_user} ha comentat en el seu recent entrada del diari OpenStreetMap amb el tema %{subject}:"
hi: Hola %{to_user},
- subject: "[OpenStreetMap] % (usuari), va comentar sobre la seva entrada del diari"
+ subject: "[OpenStreetMap] %{user}, va comentar sobre la seva entrada del diari"
email_confirm:
subject: "[OpenStreetMap] Confirmeu l'adreça de correu"
email_confirm_html:
click_the_link: Si això és vostè, si us plau, feu clic a l'enllaç sota per confirmar el canvi.
greeting: Hola,
- hopefully_you: Algú (esperem que vostè) com canviar la seva adreça d'e-mail % {server_url} % {new_address}.
+ hopefully_you: Algú (esperem que vostè) vol canviar la seva adreça d'e-mail a %{server_url} per %{new_address}.
email_confirm_plain:
click_the_link: Si això és vostè, si us plau, feu clic a l'enllaç sota per confirmar el canvi.
greeting: Hola,
hopefully_you_1: Algú (esperem que vostè) li agradaria canviar la seva adreça d'e-mail a
- hopefully_you_2: "% {server_url} % {new_address}."
+ hopefully_you_2: "%{server_url} a %{new_address}."
friend_notification:
- befriend_them: També el pots afegir com a amic a % {befriendurl}.
- had_added_you: "% {user} t'ha afegit com a amic a OpenStreetMap."
- see_their_profile: Pots veure el seu perfil a %{userurl}.
+ befriend_them: També el pots afegir com a amic a %{befriendurl}.
+ had_added_you: "%{user} t'ha afegit com a amic a OpenStreetMap."
+ see_their_profile: Podeu veure el seu perfil a %{userurl}.
subject: "[OpenStreetMap] %{user} t'ha afegit a la llista d'amics"
gpx_notification:
and_no_tags: i cap etiqueta.
subject: "[OpenStreetMap] Error d'importació de GPX"
greeting: Hola,
success:
- loaded_successfully: carregat amb % {trace_points} fora d'un punts possibles % {possible_points}.
+ loaded_successfully: carregat amb %{trace_points} fora d'un punts possibles %{possible_points}.
subject: "[OpenStreetMap] L'èxit de GPX importació"
with_description: amb la descripció
- your_gpx_file: Sembla que el seu arxiu GPX
+ your_gpx_file: Sembla el vostre fitxer GPX
lost_password:
subject: "[OpenStreetMap] Sol. licitud de reinicialització de contrasenya"
lost_password_html:
message_notification:
footer1: També pots llegir el missatge a %{readurl}
footer2: i el pots replicar a %{replyurl}
- header: "% {from_user} ha enviat un missatge a través de OpenStreetMap amb el tema % {tema}:"
+ header: "%{from_user} ha enviat un missatge a través de OpenStreetMap amb el tema %{subject}:"
hi: Hola %{to_user},
signup_confirm:
subject: "[OpenStreetMap] Confirmeu la vostra adreça electrònica"
get_reading: Obtenir de lectura sobre OpenStreetMap <a href="http://wiki.openstreetmap.org/wiki/Beginners%27_Guide">al wiki</a>, posarà al dia amb les últimes notícies via <a href="http://blog.openstreetmap.org/">OpenStreetMap bloc</a> o <a href="http://twitter.com/openstreetmap">Twitter</a>o navegar a través de OpenStreetMap fundador Steve Costa <a href="http://www.opengeodata.org/">OpenGeoData blog</a> per a la breu història del projecte, que disposa de <a href="http://www.opengeodata.org/?cat=13">podcasts d'escoltar</a> !
greeting: Hola, què tal?
hopefully_you: Algú (esperem que vostè) would com crear un compte per a les
- introductory_video: Vostè pot veure un % {introductory_video_link}.
- more_videos: Hi ha % {more_videos_link}.
+ introductory_video: Podeu veure un %{introductory_video_link}.
+ more_videos: Hi ha %{more_videos_link}.
more_videos_here: més de vídeos aquí
user_wiki_page: "Es recomana que es crea una pàgina de wiki de l'usuari, que inclou Etiquetes de categoria assenyalant on estàs, com <a href=\"http://wiki.openstreetmap.org/wiki/Category:Users_in_London\">[[Categoria: Users_in_London]]</a>."
video_to_openstreetmap: vídeo d'introducció a OpenStreetMap
allow_write_diary: crear entrades de diari, comentaris i fer amics.
allow_write_gpx: carregar traces GPS.
allow_write_prefs: modificar les seves preferències d'usuari.
- request_access: L'aplicació % {app_name} sol·licita accés al seu compte, % (usuari). Si us plau marqui si vostè would com l'aplicació té les següents capacitats. Vostè pot triar tantes o tan poc com vulgui.
+ request_access: L'aplicació %{app_name} sol·licita accés al seu compte, %{user}. Si us plau marqui si vostè would com l'aplicació té les següents capacitats. Vostè pot triar tantes o tan poc com vulgui.
revoke:
- flash: He estat revocat el símbol % {aplicació}
+ flash: He estat revocat el testimoni per %{application}
oauth_clients:
create:
flash: Registrar la informació amb èxit
list_tokens: "Les fitxes següents s'han emès per aplicacions en el seu nom:"
my_apps: Meves aplicacions de Client
my_tokens: Meves aplicacions autoritzada
- no_apps: Té una aplicació que li agradaria inscriure's per al seu ús amb nosaltres utilitzant l'estàndard % {oauth}? Heu de registrar la seva aplicació web abans que pugui fer peticions OAuth a aquest servei.
+ no_apps: Té una aplicació que li agradaria inscriure's per al seu ús amb nosaltres utilitzant l'estàndard %{oauth}? Heu de registrar la seva aplicació web abans que pugui fer peticions OAuth a aquest servei.
register_new: Registrar-se l'aplicació
registered_apps: "Vostè té les següents aplicacions client registrats:"
revoke: Revocar!
submit: Registrar-se
title: Registrar-se una nova aplicació
not_found:
- sorry: Ho sento, que no s'ha pogut trobar el que % {tipus}.
+ sorry: Ho sento, no s'ha pogut trobar el %{type}.
show:
access_url: "Accés Fitxa URL:"
allow_read_gpx: llegir les seves traces GPS privats.
requests: "Sol·licitar els permisos següents des de l'usuari:"
secret: "Secret de consum:"
support_notice: Donem suport a HMAC-SHA1 (recomanat), així com text sense format en el mode de ssl.
- title: OAuth detalls % {app_name}
+ title: OAuth detalls per %{app_name}
url: "Sol. licitud Token URL:"
update:
flash: La informació de client ha actualitzat correctament
site:
edit:
- anon_edits_link_text: Esbrinar per què aquest és el cas.
+ anon_edits_link_text: Esbrina perquè aquest és el cas.
flash_player_required: Vostè necessita un intèrpret de flaix per utilitzar Potlatch, l'editor de OpenStreetMap Flash. Vostè pot <a href="http://www.adobe.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash">Descarregar Flash Player des de Adobe.com</a>. També hi ha <a href="http://wiki.openstreetmap.org/wiki/Editing">diverses altres opcions</a> per editar-lo OpenStreetMap.
no_iframe_support: El seu navegador no suporta iframes HTML, que són necessàries per a aquest tret.
not_public: No ha posat les modificacions per ser públic.
- not_public_description: Ja no es pot editar el mapa a menys que vostè fer-ho. Pot configurar les modificacions com a públic del seu % {user_page}.
+ not_public_description: Ja no es pot editar el mapa a menys que vostè fer-ho. Pot configurar les modificacions com a públic del seu %{user_page}.
potlatch2_not_configured: No s'ha configurat Potlatch 2 - si us plau, veure http://wiki.openstreetmap.org/wiki/The_Rails_Port#Potlatch_2 per a més informació
potlatch2_unsaved_changes: Vostè té canvis no desats. (D'estalviar en Potlatch 2, hauria de fer clic Salvar.)
potlatch_unsaved_changes: Vostè té canvis no desats. (Per salvar a Potlatch, vostè ha desseleccionar la manera actual o punt, si d'edició en mode en viu, o clic Salvar si vostè té un salvar botó.)
js_3: Pot voler provar el <a href="http://tah.openstreetmap.org/Browse/">navegador mosaic estàtica de Tiles@Home</a> si és incapaç d'activar JavaScript.
license:
license_name: Creative Commons Reconeixement-Compartir Igual 2.0
- notice: Llicenciat sota la llicència % {license_name} per % {project_name} i els seus contribuents.
+ notice: Llicenciat sota la llicència %{license_name} per %{project_name} i els seus contribuents.
project_name: projecte OpenStreetMap
permalink: Enllaç permanent
remote_failed: Edició ha fallat - assegureu-vos que JOSM o Merkaartor es carrega i l'opció de comandament a distància és habilitat
resident: Zona residencial
retail: Zona de venda al detall
runway:
- - Pista d'Aeroport
- - TAXIWAY
+ - Pista d'aeroport
+ - carril de taxi
school:
- Escola
- Universitat
visibility_help: Què vol dir això?
list:
public_traces: Traces GPS públiques
- public_traces_from: Públics traces GPS de % (usuari)
+ public_traces_from: Públics traces GPS de %{user}
tagged_with: " etiquetat amb %{tags}"
your_traces: Les teves traces GPS
make_public:
made_public: Water fet públic
no_such_user:
- body: Ho sentim, no hi ha cap usuari amb el nom % (usuari). Si us plau, comproveu l'ortografia, o potser l'enllaç que es fa clic està malament.
+ body: Ho sentim, no hi ha cap usuari amb el nom %{user}. Si us plau, comproveu l'ortografia, o potser l'enllaç que es fa clic està malament.
heading: No existeix l'usuari %{user}
title: No existeix l`usuari
offline:
pending: PENDENT
private: PRIVAT
public: PUBLIC
- trace_details: Veure detalls de la traça
+ trace_details: Mostra els detalls de la traça
trackable: RASTREABLE
view_map: Visualitza el mapa
trace_form:
trace_header:
see_all_traces: Mostra totes les traces
see_your_traces: Mostra totes les vostres traces
- traces_waiting: Vostè té % {count} traces d'espera per a carregar. Si us plau consideri espera per a aquests per acabar abans de pujar més, per tal de bloquejar la cua per a altres usuaris.
+ traces_waiting: Vostè té %{count} traces d'espera per a carregar. Si us plau consideri espera per a aquests per acabar abans de pujar més, per tal de bloquejar la cua per a altres usuaris.
upload_trace: Carregar una traça
trace_optionals:
tags: Etiquetes
trace_paging_nav:
next: Següent »
- previous: « Previ
+ previous: « Anterior
showing_page: Mostrant pàgina %{page}
view:
delete_track: Elimina aquesta traça
contributor terms:
agreed: Que han accedit a les noves condicions de col. laborador.
agreed_with_pd: També heu declarat que considereu que les vostres modificacions han d'estar en el domini públic.
- heading: "Col. laborador termes:"
+ heading: "Termes de col·laboració:"
link text: què és això?
not yet agreed: Que han no encara s'ha accedit a les noves condicions de col. laborador.
review link text: Si us plau, seguiu aquest enllaç a la seva conveniència de revisar i acceptar els termes de col. laborador nou.
current email address: "Adreça de correu electrònic actual:"
- delete image: Treure la imatge actual
+ delete image: Suprimeix la imatge actual
email never displayed publicly: (no es mostrarà mai en públic)
flash update success: Informació de l'usuari ha actualitzat correctament.
flash update success confirm needed: Informació de l'usuari ha actualitzat correctament. Comprovi el seu e-mail per a una nota per confirmar la seva adreça de correu electrònic nou.
public editing note:
heading: Modificació pública
text: Actualment les vostres modificacions estan anònims i la gent no pot enviar missatges o veure la vostra ubicació. Per mostrar el que editat i permetre que la gent en contacte amb vostè a través del web, feu clic al botó de sota. <b>Des de canvi de l'API 0.6, només els usuaris públics pot editar les dades de mapa</b>. (<a href="http://wiki.openstreetmap.org/wiki/Anonymous_edits">esbrinar per què</a>).<ul><li>Adreces de correu electrònic no serà revelada per convertir-se en públic.</li><li>Aquesta acció no es pot fer la inversió i els nous usuaris ara són públics per defecte.</li></ul>
- replace image: Substituir la imatge actual
+ replace image: Reemplaça la imatge actual
return to profile: Torna al perfil
save changes button: Desa els canvis
title: Edita el compte
press confirm button: Premeu el botó de confirmar sota per confirmar la seva adreça de correu electrònic nou.
success: S'ha confirmat l'adreça electrònica, gràcies per registrar-vos-hi!
confirm_resend:
- failure: L'usuari % {name} no s'ha trobat.
- success: Hem enviat un bitllet de confirmació nou per % {email} i tan aviat com vostè confirmar el seu compte es podrà aconseguir d'assignació.<br><br>Si utilitzeu un sistema que envia les sol·licituds de confirmació llavors si us plau fer segur whitelist webmaster@openstreetmap.org com som capaços de respondre a qualsevol sol·licituds de confirmació.
+ failure: L'usuari %{name} no s'ha trobat.
+ success: Hem enviat un bitllet de confirmació nou per %{email} i tan aviat com vostè confirmar el seu compte es podrà aconseguir d'assignació.<br><br>Si utilitzeu un sistema que envia les sol·licituds de confirmació llavors si us plau fer segur whitelist webmaster@openstreetmap.org com som capaços de respondre a qualsevol sol·licituds de confirmació.
filter:
not_an_administrator: Cal que sigueu administrador per dur a terme aquesta acció.
go_public:
heading: Usuaris
hide: Amaga els usuaris seleccionats
showing:
- one: "mostrant pàgina % {page} (% {first_item} de % {elements}) "
- other: Mostrant pàgina % {page} ( %{first_item}-% {last_item} de % {elements})
- summary: "% {name} creat a partir de % {direcciónIP} el % {data}"
- summary_no_ip: "% {name} creat el % {data}"
+ one: "mostrant pàgina %{page} (%{first_item} de %{items}) "
+ other: Mostrant pàgina %{page} (%{first_item}-%{last_item} de %{items})
+ summary: "%{name} creat a partir de %{ip_address} el %{date}"
+ summary_no_ip: "%{name} creat el %{date}"
title: Usuaris
login:
+ account is suspended: Ho sentim, s'ha suspès el vostre compte per presentar una activitat sospitosa.<br />Contacteu amb el <a href="%{webmaster}">webmestre</a> si voleu parlar-ne.
account not active: Ho sentim, el teu compte encara no està actiu.<br>Si us plau utilitzi l'enllaç a l'e-mail de confirmació de compte d'activar el seu compte, o <a href="%{reconfirm}">demanar un nou correu electrònic de confirmació</a>.
- account suspended: Ho sentim, el seu compte ha estat suspès a causa de l'activitat sospitosa.<br>Si us plau contacti's amb % {webmaster} si vostè desitja discutir això.
auth failure: Ho sentim, no pot registrar en amb els detalls.
create account minute: Crear un compte. Només es triga un minut.
email or username: "Adreça de correu o usuari:"
lost password link: Heu perdut la contrasenya?
new to osm: Nou a OpenStreetMap?
notice: <a href="http://www.osmfoundation.org/wiki/License/We_Are_Changing_The_License">Esbrinar més sobre el canvi de llicència futura de OpenStreetMap</a> (<a href="http://wiki.openstreetmap.org/wiki/ODbL/We_Are_Changing_The_License">traduccions</a>) (<a href="http://wiki.openstreetmap.org/wiki/Talk:ODbL/Upcoming">discussió</a>)
- openid: "% {logo} OpenID:"
+ notice_terms: "L'OpenStreetMap farà servir una altra llicència a partir de l'1 d'abril de 2012. És tan oberta com l'actual, però els seus detalls legals s'adeqüen millor a la nostra base de dades de mapes.\nEns agradaria conservar les vostres contribucions a l'OpenStreetMap, però només podem fer-ho si esteu d'acord en distribuir-les sota la llicència nova. Sinó, no podem fer altra cosa que suprimir-les de la base de dades.<br /><br />Inicieu una sessió i dediqueu uns pocs segons a revisar-ho i acceptar els nous termes. Moltes gràcies!"
+ openid: "%{logo} OpenID:"
openid invalid: Ho sentim, el seu OpenID sembla ser no vàlida
openid missing provider: Ho sento, podria no en contacte amb el seu proveïdor d'OpenID
openid_logo_alt: Connecti's amb un OpenID
remember: "Recorda'm:"
title: Accés
to make changes: Per fer canvis a les dades de OpenStreetMap, ha de tenir un compte.
- webmaster: webmestre
with openid: "Alternativament, si us plau utilitzi el seu OpenID per connectar-se:"
with username: "Ja teniu un compte de OpenStreetMap? Si us plau connecti's amb el seu nom d'usuari i contrasenya:"
logout:
notice email on way: Trist que perdia:-(però un correu electrònic està en camí així pot restaurar això aviat.
title: contrasenya perduda
make_friend:
- already_a_friend: Que ja són amics amb % {name}.
- failed: Ho sentim, no afegir % {name} com un amic.
+ already_a_friend: Que ja són amics amb %{name}.
+ failed: Ho sentim, no afegir %{name} com un amic.
success: "%{name} ara és el vostre amic."
new:
confirm email address: "Confirmar adreça de correu electrònic:"
display name description: El vostre usuari mostrat públicament. Això pot canviar més tard en les preferències.
email address: "Adreça de correu:"
fill_form: Ompli el formulari i us enviarem un correu electrònic ràpid per activar el seu compte.
- flash create success message: Gràcies per registrar-se. Hem enviat un bitllet de confirmació a % {email} i tan aviat com vostè confirmar el seu compte es podrà aconseguir d'assignació.<br><br>Si utilitzeu un sistema que envia les sol·licituds de confirmació llavors si us plau fer segur whitelist webmaster@openstreetmap.org com som capaços de respondre a qualsevol sol·licituds de confirmació.
+ flash create success message: Gràcies per registrar-se. Hem enviat un bitllet de confirmació a %{email} i tan aviat com vostè confirmar el seu compte es podrà aconseguir d'assignació.<br><br>Si utilitzeu un sistema que envia les sol·licituds de confirmació llavors si us plau fer segur whitelist webmaster@openstreetmap.org com som capaços de respondre a qualsevol sol·licituds de confirmació.
heading: Crea un compte d'usuari
license_agreement: Quan vostè confirmar el seu compte necessita estar d'acord amb els <a href="http://www.osmfoundation.org/wiki/License/Contributor_Terms">termes de col. laborador</a>.
no_auto_account_create: Per desgràcia no som actualment capaços de crear un compte per a vostè automàticament.
not displayed publicly: No mostraran públicament (vegeu la <a href="http://wiki.openstreetmap.org/wiki/Privacy_Policy" title="wiki privacy policy including section on email addresses">política de privacitat</a>)
- openid: "% {logo} OpenID:"
+ openid: "%{logo} OpenID:"
openid association: "<p>El seu OpenID encara no està associat a un compte de OpenStreetMap.</p>\n<ul>\n<li>Si sou nous a OpenStreetMap, si us plau, crear un compte nou utilitzant el formulari a continuació.</li>\n<li>\n Si ja teniu un compte, es pot connectar al seu compte\n utilitzant el seu nom d'usuari i contrasenya i llavors associat el compte\n amb el seu OpenID en les seves escenes d'usuari.\n</li>\n</ul>"
openid no password: Amb OpenID una contrasenya no és necessària, però algunes eines extres o servidor pot encara necessita un.
password: "Contrasenya:"
terms accepted: Gràcies per a l'acceptació de les condicions de col. laborador nou!
terms declined: Lamentem que vostè ha decidit no acceptar els nous termes de col. laborador. Per a més informació, si us plau vegi <a href="%{url}">aquesta pàgina de wiki</a>.
title: Crear compte
- use openid: Alternativament, utilitzi % {logo} OpenID per connectar-se
+ use openid: Alternativament, utilitzi %{logo} OpenID per connectar-se
no_such_user:
- body: Ho sentim, no hi ha cap usuari amb el nom % (usuari). Si us plau, comproveu l'ortografia, o potser l'enllaç que es fa clic està malament.
- heading: No existeix l'usuari % (usuari)
+ body: Ho sentim, no hi ha cap usuari amb el nom %{user}. Si us plau, comproveu l'ortografia, o potser l'enllaç que es fa clic està malament.
+ heading: No existeix l'usuari %{user}
title: No existeix aquest usuari
popup:
friend: Amic
nearby mapper: L'Assignador proper
your location: La vostra ubicació
remove_friend:
- not_a_friend: "% {name} no és un dels seus amics."
- success: "% {name} s'ha suprimit dels teus amics."
+ not_a_friend: "%{name} no és un dels seus amics."
+ success: "%{name} s'ha suprimit dels teus amics."
reset_password:
confirm password: "Confirmeu la contrasenya:"
flash changed: S'ha canviat la contrasenya.
set_home:
flash success: Localització de casa desat correctament
suspended:
- body: "<p>\n Ho sentim, el seu compte ha estat automàticament suspès a causa de\n l'activitat sospitosa.\n</p>\n<p>\n Aquesta decisió serà revisat per un administrador en breu, o\n es pot contactar amb el % {webmaster} si vostè desitja discutir això.\n</p>"
+ body: "<p>\n Ho sentim, el seu compte ha estat automàticament suspès a causa de\n l'activitat sospitosa.\n</p>\n<p>\n Aquesta decisió serà revisat per un administrador en breu, o\n es pot contactar amb el %{webmaster} si vostè desitja discutir això.\n</p>"
heading: Compte suspès
title: Compte suspès
webmaster: per a administradors web
you need to accept or decline: Si us plau, llegiu i llavors acceptar o disminució de les condicions de col. laborador nou per continuar.
view:
activate_user: activa aquest usuari
- add as friend: afegir com a amic
+ add as friend: afegeix com a amic
ago: (fa %{time_in_words_ago})
- block_history: veure blocs va rebre
+ block_history: mostra els blocs rebuts
blocks by me: blocs per mi
blocks on me: blocs en mi
+ comments: comentaris
confirm: Confirma
confirm_user: confirma aquest usuari
create_block: bloca aquest usuari
created from: "Creat a partir de:"
+ ct accepted: Acceptada fa %{ago}
+ ct declined: Declinats
+ ct status: "Termes del col·laborador:"
+ ct undecided: No decidit
deactivate_user: desactiva aquest usuari
delete_user: Suprimeix aquest usuari
description: Descripció
diary: diari
edits: modificacions
email address: "Adreça de correu:"
+ friends_changesets: Navega per tots els conjunts de canvis dels vostres amics
+ friends_diaries: Navega totes les entrades de diari dels amics
hide_user: amagar aquest usuari
- if set location: Si establiu la vostra ubicació, un mapa força i matèria es mostrarà aquí. Podeu configurar la vostra ubicació de casa a la seva pàgina % {settings_link}.
+ if set location: Si establiu la vostra ubicació, un mapa força i matèria es mostrarà aquí. Podeu configurar la vostra ubicació de casa a la seva pàgina %{settings_link}.
km away: "%{count}km de distància"
- latest edit: "Últimes editar % {fa}:"
+ latest edit: "Última edició %{ago}:"
m away: "%{count}m de distància"
mapper since: "Mapejant des de:"
- moderator_history: veure blocs donats
+ moderator_history: mostra els blocs donats
my diary: el meu diari
my edits: les meves edicions
my settings: les meves preferències
my traces: les meves traces
nearby users: Altres usuaris propers
+ nearby_changesets: Navega tots els conjunts de canvis dels usuaris propers
+ nearby_diaries: Navega totes les entrades de diari dels usuaris propers
new diary entry: Nova entrada del diari
no friends: No has afegit cap amics encara.
no nearby users: Hi ha altres usuaris que admetre a Cartografia prop encara.
oauth settings: configuració OAuth
- remove as friend: Elimina com a amic
+ remove as friend: elimina com a amic
role:
administrator: Aquest usuari és administrador
grant:
revoke:
administrator: Revocar l'accés d'administrador
moderator: Revocar l'accés de moderador
- send message: enviar missatge
+ send message: envia el missatge
settings_link_text: preferències
spam score: "Spam Puntuació:"
status: "Estat:"
your friends: Els vostres amics
user_block:
blocks_by:
- empty: "% {name} no ha fet cap blocs encara."
- heading: Llista de blocs % {name}
- title: Blocs % {name}
+ empty: "%{name} no ha fet cap blocs encara."
+ heading: Llista de blocs %{name}
+ title: Blocs %{name}
blocks_on:
- empty: "% {name} no ha estat bloquejat encara."
- heading: Llista de quadres a % {name}
- title: Blocs en % {name}
+ empty: "%{name} no ha estat bloquejat encara."
+ heading: Llista de quadres a %{name}
+ title: Blocs en %{name}
create:
- flash: Crear un bloc a l'usuari % {name}.
+ flash: Crear un bloc a l'usuari %{name}.
try_contacting: Si us plau, intentar contactar-se amb l'usuari abans de bloqueig d'ells i donar-los un termini raonable per respondre.
try_waiting: Si us plau tracti de donar l'usuari d'un termini raonable per respondre abans de bloqueig d'ells.
edit:
back: Mostra tots els blocs
- heading: Bloc d'edició en % {name}
- needs_view: L'usuari necessita connectar abans d'aquest bloc se suprimiran?
+ heading: Bloc d'edició en %{name}
+ needs_view: L'usuari necessita connectar-se abans que aquest bloqueig es suprimeixi?
period: Quant de temps, a partir d'ara, l'usuari es bloqueja des de l'API per a.
- reason: La raó per què està sent bloquejat % {name}. Si us plau, ser tan tranquil i tan raonable com sigui possible, donant amb tant detall com sigui possible sobre la situació. Tingueu en compte que no tots els usuaris de comprendre l'argot de la comunitat, així que si us plau, intenti utilitzar termes de l'home comú.
+ reason: La raó per què està sent bloquejat %{name}. Si us plau, ser tan tranquil i tan raonable com sigui possible, donant amb tant detall com sigui possible sobre la situació. Tingueu en compte que no tots els usuaris de comprendre l'argot de la comunitat, així que si us plau, intenti utilitzar termes de l'home comú.
show: Mostra el bloc
submit: Bloc d'Actualització
- title: Bloc d'edició en % {name}
+ title: Bloc d'edició en %{name}
filter:
block_expired: El bloc ja ha expirat i no es pot editar.
block_period: El període de blocatge ha de ser un dels valors seleccionables de la llista desplegable.
not_a_moderator: Vostè necessita ser un moderador per dur a terme aquesta acció.
helper:
- time_future: Finalitza en % {time}.
- time_past: Va acabar % {time} fa.
+ time_future: Finalitza en %{time}.
+ time_past: Va acabar fa %{time}.
until_login: Activa fins que l'usuari es connecta.
index:
empty: No hi ha blocs s'han fet encara.
non_moderator_update: Ha de ser un moderador per crear o un bloc d'actualització.
new:
back: Veure tots els blocs
- heading: Creació de bloc % {name}
- needs_view: L'usuari necessita connectar abans d'aquest bloc se suprimirà
- period: Quant de temps, a partir d'ara, l'usuari es bloqueja des de l'API per a.
- reason: La raó per què està sent bloquejat % {name}. Si us plau, ser tan tranquil i tan raonable com sigui possible, donant amb tant detall com sigui possible sobre la situació, recordant que el missatge serà visible públicament. Tingueu en compte que no tots els usuaris de comprendre l'argot de la comunitat, així que si us plau, intenti utilitzar termes de l'home comú.
+ heading: Creació de bloc %{name}
+ needs_view: L'usuari necessita connectar-se abans que aquest bloqueig es suprimeixi
+ period: Quant de temps, a partir d'ara, l'usuari es bloqueja des de l'API.
+ reason: La raó per què està sent bloquejat %{name}. Si us plau, estigui tan tranquil i tan raonable com sigui possible, donant tant detall com sigui possible sobre la situació, recordant que el missatge serà visible públicament. Tingueu en compte que no tots els usuaris comprenen l'argot de la comunitat, així que si us plau, intenti utilitzar termes de comuns.
submit: Crear bloc
- title: Creació de bloc % {name}
- tried_contacting: Vaig posar en contacte amb l'usuari i els va demanar d'aturar.
- tried_waiting: Li he donat una quantitat raonable de temps per a l'usuari per a respondre a aquestes comunicacions.
+ title: Creació de bloc %{name}
+ tried_contacting: Em vaig posar en contacte amb l'usuari i li vaig demanar que s'atures.
+ tried_waiting: Li he donat una quantitat raonable de temps a l'usuari per a respondre a aquestes comunicacions.
not_found:
back: Torna a l'índex
- sorry: Ho sentim, que el bloc de l'usuari amb ID % {id} no s'ha pogut trobar.
+ sorry: Ho sentim, que el bloc de l'usuari amb ID %{id} no s'ha pogut trobar.
partial:
confirm: N'esteu segur?
creator_name: Creador
revoke:
confirm: Esteu segur que voleu revocar aquest bloc?
flash: Aquest bloc ha estat revocat.
- heading: Revocació de bloc en % {block_on} % {block_by}
- past: Aquest bloc va acabar % {time} fa i no pot ser revocat ara.
- revoke: Revocar!
- time_future: Aquest bloc va a acabar en % {time}.
- title: Revocació de bloc en % {block_on}
+ heading: Revocació de bloc en %{block_on} %{block_by}
+ past: Aquest bloc va acabar fa %{time} i no pot ser revocat ara.
+ revoke: Revoca!
+ time_future: Aquest bloc va a acabar en %{time}.
+ title: Revocació de bloc en %{block_on}
show:
back: Mostra tots els blocs
confirm: N'esteu segur?
edit: Edició
- heading: "% {block_on} bloquejat per % {block_by}"
+ heading: "%{block_on} bloquejat per %{block_by}"
needs_view: L'usuari ha d'iniciar una sessió abans que es netegi el bloc.
- reason: "Raó de bloc:"
+ reason: "Motiu del blocatge:"
revoke: Revoca-ho!
revoker: "Revoker:"
show: Mostra
status: Estat
- time_future: Finalitza en % {time}
- time_past: Va acabar % {time} fa
- title: "% {block_on} bloquejat per % {block_by}"
+ time_future: Finalitza en %{time}
+ time_past: Va acabar %{time} fa
+ title: "%{block_on} bloquejat per %{block_by}"
update:
only_creator_can_edit: Només el moderador que ha creat aquest bloc pot editar-lo.
success: Bloc d'actualització.
not_a_role: La cadena `%{role}' no és un rol vàlid.
not_an_administrator: Només els administradors poden realitzar l'administració de rols de usuaris, i vosté no és un administrador.
grant:
- are_you_sure: Esteu segur que voleu concedir el paper "% {paper}" a l'usuari "% {name}"?
+ are_you_sure: Esteu segur que voleu concedir el paper "%{role}" a l'usuari "%{name}"?
confirm: Confirma
- fail: Podria concedeix paper "% {paper}" a l'usuari "% {name}". Si us plau, comproveu que l'usuari i el paper són vàlids.
+ fail: Podria concedeix paper "%{role}" a l'usuari "%{name}". Si us plau, comproveu que l'usuari i el paper són vàlids.
heading: Confirmi la concessió de rol
title: Confirmi la concessió de rol
revoke:
are_you_sure: Esteu segur que voleu revocar el rol `%{role}' de l'usuari `%{name}'?
confirm: Confirma
- fail: No s'ha pogut revocar el paper "% {paper}" des de l'usuari "% {name}". Si us plau, comproveu que l'usuari i el paper són vàlids.
+ fail: No s'ha pogut revocar el paper "%{role}" des de l'usuari "%{name}". Si us plau, comproveu que l'usuari i el paper són vàlids.
heading: Confirmar revocació de rol
title: Confirmar revocació de rol
list:
description: Poslední změny
description_bbox: Sady změn v %{bbox}
+ description_friend: Sady změn vašich přátel
+ description_nearby: Sady změn uživatelů poblíž
description_user: Sady změn uživatele %{user}
description_user_bbox: Sady změn uživatele %{user} v %{bbox}
heading: Sady změn
heading_bbox: Sady změn
+ heading_friend: Sady změn
+ heading_nearby: Sady změn
heading_user: Sady změn
heading_user_bbox: Sady změn
title: Sady změn
title_bbox: Sady změn v %{bbox}
+ title_friend: Sady změn vašich přátel
+ title_nearby: Sady změn uživatelů poblíž
title_user: Sady změn uživatele %{user}
title_user_bbox: Sady změn uživatele %{user} v %{bbox}
timeout:
older_entries: Starší záznamy
recent_entries: "Aktuální deníčkové záznamy:"
title: Deníčky uživatelů
+ title_friends: Deníčky přátel
+ title_nearby: Deníčky uživatelů poblíž
user_title: Deníček uživatele %{user}
location:
edit: Upravovat
licence: Licence
longitude: "Délka:"
manually_select: Ručně vybrat jinou oblast
- mapnik_image: Obrázek z Mapniku
max: max.
options: Nastavení
osm_xml_data: Data OpenStreetMap XML
- osmarender_image: Obrázek z Osmarenderu
output: Výstup
paste_html: Ke vložení na stránku použijte toto HTML
scale: Měřítko
search_osm_namefinder:
suffix_parent: "%{suffix} (%{parentdistance} na %{parentdirection} od %{parentname})"
suffix_place: ", %{distance} na %{direction} od %{placename}"
+ suffix_suburb: "%{parentname} - %{suffix}"
search_osm_nominatim:
prefix:
amenity:
veterinary: Veterinární ordinace
village_hall: Společenský sál
waste_basket: Odpadkový koš
- wifi: Přístupový bod WiFi
+ wifi: Přístup k WiFi
youth_centre: Centrum pro mládež
boundary:
administrative: Administrativní hranice
intro_1: OpenStreetMap je svobodná editovatelná mapa celého světa. Tvoří ji lidé jako vy.
intro_2: OpenStreetMap vám umožňuje společně si prohlížet, upravovat a používat geografická data z libovolného místa na Zemi.
intro_3: Hosting OpenStreetMap laskavě poskytují %{ucl}, %{ic} a %{bytemark}. Další partneři projektu jsou uvedeni na %{partners}.
- intro_3_bytemark: bytemark
+ intro_3_bytemark: Bytemark Hosting
intro_3_ic: Imperial College London
intro_3_partners: wiki
intro_3_ucl: středisko VR UCL
welcome_user_link_tooltip: Vaše uživatelská stránka
wiki: wiki
wiki_title: Wiki k tomuto projektu
+ wiki_url: http://wiki.openstreetmap.org/wiki/CS:Main_Page?uselang=cs
license_page:
foreign:
english_link: anglickým originálem
inbox:
date: Datum
from: Od
+ messages: Máte %{new_messages} a %{old_messages}
my_inbox: Má doručená pošta
+ new_messages:
+ few: "%{count} nové zprávy"
+ one: "%{count} novou zprávu"
+ other: "%{count} nových zpráv"
no_messages_yet: Zatím nemáte žádné zprávy. Co třeba kontaktovat nějaké %{people_mapping_nearby_link}?
+ old_messages:
+ few: "%{count} staré zprávy"
+ one: "%{count} starou zprávu"
+ other: "%{count} starých zpráv"
outbox: odeslaná pošta
people_mapping_nearby: uživatele poblíž
subject: Předmět
title: Doručená pošta
- you_have: Máte %{new_count} nových a %{old_count} starých zpráv
mark:
as_read: Zpráva označena jako přečtená
as_unread: Zpráva označena jako nepřečtená
outbox:
date: Datum
inbox: doručená pošta
+ messages:
+ few: Máte %{count} odeslané zprávy
+ one: Máte %{count} odeslanou zprávu
+ other: Máte %{count} odeslaných zpráv
my_inbox: Má %{inbox_link}
no_sent_messages: Nemáte žádné odeslané zprávy. Co třeba kontaktovat nějaké %{people_mapping_nearby_link}?
outbox: odeslaná pošta
subject: Předmět
title: Odeslaná pošta
to: Komu
- you_have_sent_messages: Máte %{count} odeslaných zpráv
read:
back_to_inbox: Zpět do přijatých zpráv
back_to_outbox: Zpět do odeslaných zpráv
more_videos: "Další videa najdete na:"
opengeodata: "OpenGeoData.org je blog zakladatele OpenStreetMap Steva Coasta, nabízí i podcasty:"
the_wiki: "Přečtěte si něco o OpenStreetMap na wiki:"
- the_wiki_url: http://wiki.openstreetmap.org/wiki/Cs:Beginners_Guide?uselang=cs
+ the_wiki_url: http://wiki.openstreetmap.org/wiki/CS:Beginners_Guide?uselang=cs
user_wiki_1: Doporučujeme, abyste si na wiki založili uživatelskou stránku, na které
user_wiki_2: kategoriemi označíte, odkud pocházíte, například [[Category:Users in Praha]].
wiki_signup: "Také se můžete chtít zaregistrovat na OpenStreetMap wiki:"
- wiki_signup_url: http://wiki.openstreetmap.org/index.php?title=Special:UserLogin&type=signup&returnto=Cs:Main_Page&uselang=cs
+ wiki_signup_url: http://wiki.openstreetmap.org/index.php?title=Special:UserLogin&type=signup&returnto=CS:Main_Page&uselang=cs
oauth:
oauthorize:
allow_read_gpx: číst vaše soukromé GPS stopy.
agreed: Odsouhlasili jste nové Podmínky pro přispěvatele.
agreed_with_pd: Také jste prohlásili, že své editace považujete za volné dílo.
heading: "Podmínky pro přispěvatele:"
+ link: http://wiki.openstreetmap.org/wiki/CS:Open_Database_License/Contributor_Terms?uselang=cs
link text: co to znamená?
not yet agreed: Dosud jste neodsouhlasili nové Podmínky pro přispěvatele.
review link text: Až se vám to bude hodit, pomocí tohoto odkazu si prosím přečtěte a odsouhlaste nové Podmínky pro přispěvatele.
new image: Přidat obrázek
no home location: Nezadali jste polohu svého bydliště.
openid:
- link: http://wiki.openstreetmap.org/wiki/Cs:OpenID
+ link: http://wiki.openstreetmap.org/wiki/CS:OpenID
link text: co to znamená?
openid: "OpenID:"
preferred editor: "Preferovaný editor:"
summary_no_ip: "%{name} vytvořen %{date}"
title: Uživatelé
login:
+ account is suspended: Je nám líto, ale váš účet byl pozastaven kvůli podezřelé aktivitě.<br />Pokud to chcete řešit, kontaktujte <a href="%{webmaster}">správce serveru</a>.
account not active: Je mi líto, ale váš uživatelský účet dosud nebyl aktivován.<br />Svůj účet si můžete aktivovat kliknutím na odkaz v potvrzovacím e-mailu, případně si <a href="%{reconfirm}">nechte poslat nový potvrzovací e-mail</a>.
- account suspended: Je nám líto, ale váš účet byl pozastaven kvůli podezřelé aktivitě.<br />Pokud to chcete řešit, kontaktujte %{webmaster}.
auth failure: Je mi líto, ale s uvedenými údaji se nemůžete přihlásit.
create account minute: Založte si účet. Zabere to jen chvilku.
email or username: "E-mailová adresa nebo uživatelské jméno:"
lost password link: Ztratili jste heslo?
new to osm: Jste na OpenStreetMap noví?
notice: <a href="http://www.osmfoundation.org/wiki/License/We_Are_Changing_The_License">Zjistěte více o nadcházející změně licence OpenStreetMap</a> (<a href="http://wiki.openstreetmap.org/wiki/ODbL/We_Are_Changing_The_License">překlady</a>) (<a href="http://wiki.openstreetmap.org/wiki/Talk:ODbL/Upcoming">diskuse</a>)
+ notice_terms: OpenStreetMap přechází 1. dubna 2012 na novou licenci. Je stejně otevřená jako ta stávající, ale právní řešení je pro naší mapovou databázi mnohem vhodnější. Velice rádi bychom v OpenStreetMap zachovali vaše příspěvky, to ale můžeme jen v případě, že svolíte k jejich šíření pod novou licencí. V opačném případě je budeme muset z databáze odstranit.<br /><br />Prosíme, přihlaste se a věnujte chvilku k přečtení a odsouhlasení nových podmínek. Děkujeme!
openid: "%{logo} OpenID:"
openid invalid: Je nám líto, ale vaše OpenID vypadá chybně
openid missing provider: Je nám líto, ale nepodařilo se kontaktovat vašeho poskytovatele OpenID
remember: "Zapamatuj si mě:"
title: Přihlásit se
to make changes: Pokud chcete upravovat OpenStreetMap, musíte mít uživatelský účet.
- webmaster: webmaster
with openid: "Nebo se můžete přihlásit svým OpenID:"
with username: "Máte už na OpenStreetMap účet? Přihlaste se svým jménem a heslem:"
logout:
password: "Heslo:"
terms accepted: Děkujeme za odsouhlasení nových podmínek pro přispěvatele!
terms declined: Je nám líto, že jste se rozhodli nepřijmout nové Podmínky pro přispěvatele. Podrobnější informace najdete na <a href="%{url}">této wikistránce</a>.
+ terms declined url: http://wiki.openstreetmap.org/wiki/CS:Contributor_Terms_Declined?uselang=cs
title: Vytvořit účet
use openid: Případně se můžete přihlásit pomocí %{logo} OpenID
no_such_user:
consider_pd: Navíc k výše uvedené dohodě považuji své příspěvky za volné dílo.
consider_pd_why: co to znamená?
decline: Nesouhlasím
+ declined: http://wiki.openstreetmap.org/wiki/CS:Contributor_Terms_Declined?uselang=cs
guidance: "Informace, které pomohou tyto podmínky pochopit: <a href=\"%{summary}\">lidsky čitelné shrnutí</a> a nějaké <a href=\"%{translations}\">neoficiální překlady</a>"
heading: Podmínky pro přispěvatele
legale_names:
confirm_user: potvrdit tohoto uživatele
create_block: blokovat tohoto uživatele
created from: "Vytvořeno od:"
+ ct accepted: Přijaty před %{ago}
+ ct declined: Odmítnuty
+ ct status: "Podmínky pro přispěvatele:"
+ ct undecided: Nerozhodnuto
deactivate_user: deaktivovat tohoto uživatele
delete_user: odstranit tohoto uživatele
description: Popis
diary: deníček
edits: editace
email address: "E-mailová adresa:"
+ friends_changesets: Procházet všechny sady změn mých přátel
+ friends_diaries: Procházet všechny záznamy v deníčcích přátel
hide_user: skrýt tohoto uživatele
if set location: Když si nastavíte svou polohu, objeví se níže hezká mapka atp. Polohu domova si můžete nastavit na stránce %{settings_link}.
km away: "%{count} km"
my settings: moje nastavení
my traces: moje stopy
nearby users: Další uživatelé poblíž
+ nearby_changesets: Procházet všechny sady změn uživatelů poblíž
+ nearby_diaries: Procházet všechny záznamy v deníčcích uživatelů poblíž
new diary entry: nový záznam do deníčku
no friends: Zatím jste nepřidali žádné přátele.
no nearby users: Nejsou známi žádní uživatelé, kteří by uvedli domov blízko vás.
# Author: Christian List
# Author: Ebbe
# Author: Freek
+# Author: Gnonthgol
+# Author: Gorbi
# Author: Hylle
# Author: OleLaursen
# Author: The real emj
message: Meddelelse
node: Punk
node_tag: Punktegenskab
+ notifier: Underret
old_node: Tidligere punkt
old_node_tag: Tidligere punktegenskab
old_relation: Tidligere relation
cookies_needed: Du har tilsyneladende deaktiveret cookies i din browser. Aktivér cookies før du fortsætter.
setup_user_auth:
blocked: Din adgang til API'et er blokeret. Log ind på webinterfacet for a finde ud mere.
+ need_to_see_terms: Din adgang til API-et er midlertidig stoppet. Log ind på netsiden for at læse bidragsydervilkårene. Du behøver ikke at godkende vilkårene, men du skal læse dem.
browse:
changeset:
changeset: "Ændringssæt: %{id}"
list:
description: Seneste ændringer
description_bbox: Ændringer inden for %{bbox}
+ description_friend: Changesets af dine venner
description_user: Ændringssæt af %{user}
description_user_bbox: Ændringssæt af %{user} inden for %{bbox}
heading: Ændringssæt
heading_bbox: Ændringssæt
+ heading_friend: Changesets
heading_user: Ændringssæt
heading_user_bbox: Ændringssæt
title: Ændringssæt
title_bbox: Ændringssæt inden for %{bbox}
+ title_friend: Changesets af dine venner
title_user: Ændringssæt af %{user}
title_user_bbox: Ændringssæt af %{user} inden for %{bbox}
timeout:
licence: Licens
longitude: "Længde:"
manually_select: Vælg et andet område manuelt
- mapnik_image: Mapnik billede
max: maks
options: Indstillinger
osm_xml_data: OpenStreetMap XML-data
- osmarender_image: Osmarender billede
output: Output
paste_html: Indsæt HTML som skal ind i siden
scale: Skala
map:
base:
cycle_map: Cykelkort
+ transport_map: Transportkort
site:
edit_disabled_tooltip: Zoom ind for at rette kortet
edit_tooltip: Ret kortet
people_mapping_nearby: folk som kortlægger i nærheden
subject: Emne
title: Indbakke
- you_have: Du har %{new_count} ny beskeder og %{old_count} gamle beskeder
mark:
as_read: Besked markeret som læst
as_unread: Besked markeret som ulæst
subject: Emne
title: Udbakke
to: Til
- you_have_sent_messages: Du har sendt %{count} beskeder
read:
back_to_inbox: Tilbage til indbakke
back_to_outbox: Tilbage til udbakke
submit: Redigér
title: Rediger din applikation
form:
+ allow_write_api: ændre kortet.
name: Navn
required: Påkrævet
new:
submit: Registrér
title: Registrer en ny applikation
show:
+ allow_read_prefs: læs deres brugerindstillinger.
allow_write_api: tilpas kortet.
+ allow_write_gpx: upload GPS-spor.
+ allow_write_prefs: ændre deres brugerindstillinger.
+ authorize_url: "Godkend URL:"
+ edit: Redigér detaljer
site:
edit:
anon_edits_link_text: Find ud af hvorfor.
js_2: OpenStreetMap bruger JavaScript til det interaktive kort.
js_3: Du kan prøve <a href="http://tah.openstreetmap.org/Browse/">de statiske Tiles@Home kortsider</a> hvis du ikke kan aktivere Javascript.
license:
+ license_name: Creative Commons Attribution-Share Alike 2.0
notice: Licenseret under %{license_name}-licensen af %{project_name} og dets bidragydere.
project_name: OpenStreetMap-projektet
permalink: Permalink
tags: "Mærker:"
tags_help: kommasepareret
upload_button: Upload
- upload_gpx: Upload GPX-fil
+ upload_gpx: "Upload GPX-fil:"
visibility: "Synlighed:"
visibility_help: hvad betyder det her?
trace_header:
new email address: "Ny e-mail-adresse:"
new image: Tilføj et billede
no home location: Du har ikke angivet din hjemmeposition.
+ openid:
+ link: http://wiki.openstreetmap.org/wiki/OpenID
+ link text: hvad er dette?
+ openid: "OpenID:"
preferred editor: "Foretrukket redigeringsprogram:"
preferred languages: "Foretrukne sprog:"
profile description: "Profilbeskrivelse:"
title: Brugere
login:
account not active: Din konto er ikke aktiveret endnu.<br />Klik på linket i bekræftelsesemailen for at aktivere din konto eller <a href="%{reconfirm}">få sendt en ny bekræftelsesemail</a>.
- account suspended: Beklager, din konto er blevet suspenderet på grund af mistænkelig aktivitet.<br />Kontakt %{webmaster} hvis du vil diskutere dette.
auth failure: Kunne ikke logge på med disse oplysninger.
create account minute: Opret en konto. Det tager kun et minut.
email or username: "E-mail-adresse eller brugernavn:"
lost password link: Glemt adgangskode?
new to osm: Ny på OpenStreetMap?
notice: <a href="http://www.osmfoundation.org/wiki/License/We_Are_Changing_The_License">Læs mere om OpenStreetMaps kommende licensændring</a> (<a href="http://wiki.openstreetmap.org/wiki/ODbL/We_Are_Changing_The_License">oversættelser</a>) (<a href="http://wiki.openstreetmap.org/wiki/Talk:ODbL/Upcoming">diskussion</a>)
+ openid: "%{logo} OpenID:"
+ openid_logo_alt: Log i med et OpenID
+ openid_providers:
+ aol:
+ alt: Log ind med et AOL OpenID
+ title: Log ind med AOL
+ google:
+ alt: Log ind med et Google OpenID
+ title: Log ind med Google
+ myopenid:
+ alt: Log ind med et myOpenID OpenID
+ title: Log ind med OpenID
+ openid:
+ alt: Log ind med et OpenID
+ title: Log ind med OpenID
+ wordpress:
+ alt: Log ind med et Wordpress OpenID
+ title: Log ind med Wordpress
+ yahoo:
+ alt: Log ind med et Yahoo OpenID
+ title: Log ind med Yahoo
password: "Adgangskode:"
register now: Opret nu
remember: "Husk mig:"
title: Log på
to make changes: For at ændre i OpenStreetMaps data skal du have en konto.
- webmaster: webmaster
+ with openid: "Alternativt kan du bruge din OpenID til at logge ind:"
+ with username: "Har du allerede en OpenStreetMap konto? Log på med dit brugernavn og din adgangskode:"
logout:
heading: Log af fra OpenStreetMap
logout_button: Log af
license_agreement: Når du bekræfter din konto, skal du acceptere <a href="http://www.osmfoundation.org/wiki/License/Contributor_Terms">bidragyder-betingelserne</a>.
no_auto_account_create: Vi kan desværre ikke oprette en konto automatisk for dig pt.
not displayed publicly: Vises ikke offentligt (se <a href="http://wiki.openstreetmap.org/wiki/Privacy_Policy" title="Privatlivspolitik for wikien inklusiv sektion om emailadresser">privatlivspolitik</a>)
+ openid: "%{logo} OpenID:"
+ openid no password: Med OpenID kræves ikke en adgangskode, men nogle ekstraværktøjer eller en server kan der stadig være brug for.
password: "Adgangskode:"
terms accepted: Tak for at du accepterer de nye bidragyder-betingelser!
title: Opret konto
+ use openid: Alternativt kan du bruge %{logo} OpenID til at logge ind
no_such_user:
body: Der findes desværre ingen bruger ved navn %{user}. Tjek venligst stavningen, ellers kan linket du trykkede på være forkert.
heading: Brugeren %{user} findes ikke
confirm_user: bekræft denne bruger
create_block: bloker denne bruger
created from: "Oprettet fra:"
+ ct accepted: Accepteret for %{ago} siden
+ ct declined: Afslået
+ ct status: Vilkår for bidragydere
+ ct undecided: Uafklaret
deactivate_user: deaktiver denne bruger
delete_user: slet denne bruger
description: Beskrivelse
diary: blog
edits: ændringer
email address: "E-mail-adresse:"
+ friends_changesets: Gennemse alle changesets af venner
hide_user: skjul denne bruger
if set location: Hvis du indstiller din position, viser der sig et pænt kort her. Du kan indstille din hjemmeposition på din %{settings_link}-side.
km away: "%{count}km væk"
edit:
back: Vis alle blokke
show: Vis denne blok
+ submit: Opdater blokering
+ filter:
+ not_a_moderator: Du skal være en moderator for at udføre den handling.
helper:
+ time_future: Slutter om %{time}.
time_past: Sluttede %{time} siden.
+ index:
+ empty: Ingen blokeringer er blevet udført endnu.
+ heading: Liste over brugerblokeringer
+ title: Brugerblokeringer
new:
back: Vis alle blokke
+ heading: Opretter blokering af %{name}
submit: Opret blok
+ title: Opretter blokering af %{name}
not_found:
back: Tilbage til indeks
+ partial:
+ confirm: Er du sikker?
+ creator_name: Oprettet af
+ display_name: Blokkeret bruger
+ edit: Redigér
+ reason: Årsag til blokering
+ revoke: Tilbagekald!
+ show: Vis
+ status: Status
show:
+ back: Vis alle blokeringer
confirm: Er du sikker?
+ edit: Redigér
+ reason: "Årsag til blokering:"
+ revoke: Tilbagekald!
+ show: Vis
+ status: Status
+ time_future: Slutter om %{time}
time_past: Sluttede %{time} siden
+ update:
+ only_creator_can_edit: Kun moderatoren som oprettede denne blokering kan ændre den.
+ success: Blokering opdateret.
user_role:
filter:
already_has_role: Brugeren har allerede rollen %{role}.
+++ /dev/null
-de-AT:
- dummy: dummy
+++ /dev/null
-de-CH:
- dummy: dummy
list:
description: Letzte Änderungen
description_bbox: Letzte Änderungen in %{bbox}
+ description_friend: Änderungssätze deiner Freunde
+ description_nearby: Änderungssätze von Benutzern in der Nähe
description_user: Letzte Änderungen von %{user}
description_user_bbox: Letzte Änderungen von %{user} in %{bbox}
heading: Änderungssätze
heading_bbox: Änderungssätze
+ heading_friend: Änderungssätze
+ heading_nearby: Änderungssätze
heading_user: Änderungssätze
heading_user_bbox: Änderungssätze
title: Änderungssätze
title_bbox: Änderungssätze in %{bbox}
+ title_friend: Änderungssätze deiner Freunde
+ title_nearby: Änderungssätze von Benutzern in der Nähe
title_user: Änderungssätze von %{user}
title_user_bbox: Änderungssätze von %{user} in %{bbox}
timeout:
sorry: Es hat leider zu lange gedauert, die von dir angeforderten Änderungssätze abzurufen.
diary_entry:
+ comments:
+ ago: vor %{ago}
+ comment: Kommentar
+ has_commented_on: "%{display_name} hat die folgenden Blogeinträge kommentiert"
+ newer_comments: Neuere Kommentare
+ older_comments: Ältere Kommentare
+ post: Blogeintrag
+ when: Zeitpunkt
diary_comment:
comment_from: Kommentar von %{link_user} am %{comment_created_at}
confirm: Bestätigen
older_entries: Ältere
recent_entries: "Neuste Einträge:"
title: Blogs
+ title_friends: Tagebücher meiner Freunde
+ title_nearby: Tagebücher von Nutzern in der Nähe
user_title: "%{user}s Blog"
location:
edit: Bearbeiten
licence: Lizenz
longitude: "Längengrad:"
manually_select: Einen anderen Bereich manuell auswählen
- mapnik_image: Mapnik-Bild
+ map_image: Karte (zeigt die Standardebene)
max: max.
options: Optionen
osm_xml_data: OpenStreetMap-XML-Daten
- osmarender_image: Osmarender-Bild
output: Ausgabe
paste_html: HTML-Code kopieren, um ihn in eine Website einzufügen.
scale: Maßstab
veterinary: Tierarzt
village_hall: Gemeindezentrum
waste_basket: Mülleimer
- wifi: WLAN-Access-Point
+ wifi: WiFi-Zugang
youth_centre: Jugendhaus
boundary:
administrative: Verwaltungsgrenze
base:
cycle_map: Radfahrerkarte
mapquest: MapQuest Open
+ standard: Standard
transport_map: Verkehrskarte
site:
edit_disabled_tooltip: Reinzoomen zum Editieren der Karte
english_link: dem englischsprachigen Original
text: Für den Fall einer Abweichung zwischen der vorliegenden Übersetzung und %{english_original_link}, ist die englischsprachige Seite maßgebend.
title: Über diese Übersetzung
- legal_babble: "<h2>Urheberrecht und Lizenz</h2>\n\n<p>\n OpenStreetMap besteht aus <i>freien Daten</i>, die gemäß der Lizenz <a href=\"http://creativecommons.org/licenses/by-sa/2.0/\">Creative Commons Attribution-ShareAlike 2.0</a> (CC-BY-SA) verfügbar sind.\n</p>\n<p>\n Es steht dir frei unsere Daten und Karten zu kopieren, weiterzugeben, zu übermittelt sowie anzupassen, sofern du OpenStreetMap und die Mitwirkenden als Quelle angibst. Für den Fall, dass du auf Basis unserer Daten und Karten Anpassungen vornimmst, oder sie als Basis für weitere Bearbeitungen verwendest, kannst du das Ergebnis auch nur gemäß der selben Lizenz weitergeben. Der vollständige Lizenztext ist unter <a href=\"http://creativecommons.org/licenses/by-sa/2.0/legalcode\">Lizenz</a> einsehbar und erläutert deine Rechte und Pflichten.\n</p>\n\n<h3>So ist auf die Urheberschaft von OpenStreetMap hinzuweisen</h3>\n<p>\n Sofern du Bilder von OpenStreetMap verwendest, so ist mindestens „© OpenStreetMap und Mitwirkende, CC-BY-SA“ als Quelle anzugeben. Werden hingegen ausschließlich Geodaten genutzt, so ist mindestens „Geodaten © OpenStreetMap und Mitwirkende, CC-BY-SA“ anzugeben.\n</p>\n<p>\n Wo möglich, muss ein Hyperlink auf OpenStreetMap <a href=\"http://www.openstreetmap.org/\">http://www.openstreetmap.org/</a> und die Lizenz CC-BY-SA <a href=\"http://creativecommons.org/licenses/by-sa/2.0/\">http://creativecommons.org/licenses/by-sa/2.0/</a> gesetzt werden. Für den Fall, dass du ein Medium einsetzt, bei dem keine derartigen Verweise möglich sind (z. B. ein gedrucktes Buch), schlagen wir vor, dass du deine Leser auf www.openstreetmap.org und www.creativecommons.org hinweist.\n</p>\n\n<h3>Mehr hierzu in Erfahrung bringen</h3>\n<p>\n Mehr dazu, wie unsere Daten verwendet werden können, ist unter <a href=\"http://wiki.openstreetmap.org/wiki/Legal_FAQ\">Häufige rechtliche Fragen</a> nachzulesen.\n</p>\n<p>\n Die Mitwirkenden von OpenStreetMap weisen wir darauf hin, dass du keinesfalls Daten aus urheberrechtlich geschützten Quellen verwenden darfst (z. B. Google Maps oder gedruckte Kartenwerke), ohne vorher die ausdrückliche Erlaubnis des Rechteinhabers erhalten zu haben.\n</p>\n<p>\n Obzwar OpenStreetMap aus freien Daten besteht, können wir Dritten keine kostenfreie Programmierschnittstelle (API) für Karten bereitstellen.\n \n Siehe hierzu die <a href=\"http://wiki.openstreetmap.org/wiki/API_usage_policy\">Richtlinie zur Nutzung einer API</a>, die <a href=\"http://wiki.openstreetmap.org/wiki/Tile_usage_policy\">Richtlinie zur Nutzung von Kachelgrafiken</a> und die <a href=\"http://wiki.openstreetmap.org/wiki/Nominatim#Usage_Policy\">Nutzungsrichtlinie bezüglich Daten von Nominatim</a>.\n</p>\n\n<h3>Unsere Mitwirkenden</h3>\n<p>\n Die von uns verwendete Lizenz CC-BY-SA verlangt, dass du „für das betreffende Medium oder Mittel in angemessener Weise, auf die ursprünglichen Bearbeiter hinweist.“ Einige an OpenStreetMap Mitwirkende verlangen keine über den Vermerk „OpenStreetMap und Mitwirkende“ hinausgehende Hinweise. Wo allerdings Daten von nationalen Kartografierungsinstitutionen oder aus anderen umfangreichen Quellen einbezogen wurden, ist es sinnvoll, deren Lizenzhinweise direkt wiederzugeben oder auf diese auf dieser Website zu verlinken.\n</p>\n\n<ul id=\"contributors\">\n <li><strong>Australien</strong>: Enthält Daten zu Siedlungen, die auf Daten des <i>Australian Bureau of Statistics</i> basieren.</li>\n <li><strong>Frankreich</strong>: Enthält Daten der <i>Direction Générale des Impôts</i>.</li>\n <li><strong>Kanada</strong>: Enthält Daten von GeoBase®, GeoGratis (© <i>Department of Natural Resources Canada</i>), CanVec (© <i>Department of Natural Resources Canada</i>) und StatCan (<i>Geography Division, Statistics Canada</i>).</li>\n <li><strong>Neuseeland</strong>: Enthält Daten aus <i>Land Information New Zealand</i>. Urheberrecht vorbehalten.</li>\n <li><strong>Österreich</strong>: Enthält Daten der <a href=\"http://data.wien.gv.at/\">Stadt Wien</a>. Lizenziert gemäß <a href=\"http://creativecommons.org/licenses/by/3.0/at/deed.de\">CC-BY</a>.</li>\n <li><strong>Polen</strong>: Enthält Daten aus <a href=\"http://ump.waw.pl/\">UMP-pcPL maps</a>. Copyright UMP-pcPL und Mitwirkende.</li>\n <li><strong>Vereinigtes Königreich</strong>: Enthält Daten des <i>Ordnance Survey</i> © Urheber- und Datenbankrecht 2010.</li>\n</ul>\n\n<p>\n Die Einbeziehung von Daten bei OpenStreetMap impliziert nicht, das der ursprüngliche Datenlieferant OpenStreetMap unterstützt, Gewährleistung gibt, noch Haftung übernimmt.\n</p>"
+ legal_babble: "<h2>Urheberrecht und Lizenz</h2>\n\n<p>\nOpenStreetMap ist <i>„Open Data“</i>, die gemäß der Lizenz <a href=\"http://creativecommons.org/licenses/by-sa/2.0/\">Creative Commons Attribution-ShareAlike 2.0</a> (CC BY-SA) verfügbar sind.\n</p>\n<p>\n Es steht dir frei unsere Daten und Karten zu kopieren, weiterzugeben, zu übermittelt sowie anzupassen, sofern du OpenStreetMap und die Mitwirkenden als Quelle angibst. Für den Fall, dass du auf Basis unserer Daten und Karten Anpassungen vornimmst, oder sie als Basis für weitere Bearbeitungen verwendest, kannst du das Ergebnis auch nur gemäß der selben Lizenz weitergeben. Der vollständige Lizenztext ist unter <a href=\"http://creativecommons.org/licenses/by-sa/2.0/legalcode\">Lizenz</a> einsehbar und erläutert deine Rechte und Pflichten.\n</p>\n\n<h3>So ist auf die Urheberschaft von OpenStreetMap hinzuweisen</h3>\n<p>\n Sofern du Bilder von OpenStreetMap verwendest, so ist mindestens „© OpenStreetMap und Mitwirkende, CC BY-SA“ als Quelle anzugeben. Werden hingegen ausschließlich Geodaten genutzt, so ist mindestens „Geodaten © OpenStreetMap und Mitwirkende, CC BY-SA“ anzugeben.\n</p>\n<p>\n Wo möglich, muss ein Hyperlink auf OpenStreetMap <a href=\"http://www.openstreetmap.org/\">http://www.openstreetmap.org/</a> und die Lizenz CC BY-SA <a href=\"http://creativecommons.org/licenses/by-sa/2.0/\">http://creativecommons.org/licenses/by-sa/2.0/</a> gesetzt werden. Für den Fall, dass du ein Medium einsetzt, bei dem keine derartigen Verweise möglich sind (z. B. ein gedrucktes Buch), schlagen wir vor, dass du deine Leser auf www.openstreetmap.org und www.creativecommons.org hinweist.\n</p>\n\n<h3>Mehr hierzu in Erfahrung bringen</h3>\n<p>\n Mehr dazu, wie unsere Daten verwendet werden können, ist unter <a href=\"http://wiki.openstreetmap.org/wiki/Legal_FAQ\">Häufige rechtliche Fragen</a> nachzulesen.\n</p>\n<p>\n Die Mitwirkenden von OpenStreetMap weisen wir darauf hin, dass du keinesfalls Daten aus urheberrechtlich geschützten Quellen verwenden darfst (z. B. Google Maps oder gedruckte Kartenwerke), ohne vorher die ausdrückliche Erlaubnis des Rechteinhabers erhalten zu haben.\n</p>\n<p>\n Obwohl OpenStreetMap aus freien Daten besteht, können wir Dritten keine kostenfreie Programmierschnittstelle (API) für Karten bereitstellen.\n \n Siehe hierzu die <a href=\"http://wiki.openstreetmap.org/wiki/API_usage_policy\">Richtlinie zur Nutzung einer API</a>, die <a href=\"http://wiki.openstreetmap.org/wiki/Tile_usage_policy\">Richtlinie zur Nutzung von Kachelgrafiken</a> und die <a href=\"http://wiki.openstreetmap.org/wiki/Nominatim#Usage_Policy\">Nutzungsrichtlinie bezüglich Daten von Nominatim</a>.\n</p>\n\n<h3>Unsere Mitwirkenden</h3>\n<p>\n Die von uns verwendete Lizenz CC BY-SA verlangt, dass du „für das betreffende Medium oder Mittel in angemessener Weise, auf die ursprünglichen Bearbeiter hinweist.“ Einige an OpenStreetMap Mitwirkende verlangen keine über den Vermerk „OpenStreetMap und Mitwirkende“ hinausgehende Hinweise. Wo allerdings Daten von nationalen Kartografierungsinstitutionen oder aus anderen umfangreichen Quellen einbezogen wurden, ist es sinnvoll, deren Lizenzhinweise direkt wiederzugeben oder auf diese auf dieser Website zu verlinken.\n</p>\n\n<ul id=\"contributors\">\n <li><strong>Australien</strong>: Enthält Daten zu Siedlungen, die auf Daten des <i>Australian Bureau of Statistics</i> basieren.</li>\n <li><strong>Frankreich</strong>: Enthält Daten der <i>Direction Générale des Impôts</i>.</li>\n <li><strong>Kanada</strong>: Enthält Daten von GeoBase®, GeoGratis (© <i>Department of Natural Resources Canada</i>), CanVec (© <i>Department of Natural Resources Canada</i>) und StatCan (<i>Geography Division, Statistics Canada</i>).</li>\n <li><strong>Neuseeland</strong>: Enthält Daten aus <i>Land Information New Zealand</i>. Urheberrecht vorbehalten.</li>\n <li><strong>Österreich</strong>: Enthält Daten der <a href=\"http://data.wien.gv.at/\">Stadt Wien</a>. Lizenziert gemäß <a href=\"http://creativecommons.org/licenses/by/3.0/at/deed.de\">CC BY</a>.</li>\n <li><strong>Polen</strong>: Enthält Daten aus <a href=\"http://ump.waw.pl/\">UMP-pcPL Karten</a>. Urheberrechtlich geschützt, UMP-pcPL und Mitwirkende. <a href=\"http://wiki.openstreetmap.org/wiki/UMP2OSM_Importing\">Mehr zur Nutzung der UMP-Daten durch OSM</a></li>\n <li><strong>Südafrika</strong>: Enthält Daten von <i><a href=\"http://www.ngi.gov.za/\">Chief Directorate: National Geo-Spatial Information</a></i>, Staatliches Urheberrecht vorbehalten.</li>\n <li><strong>Vereinigtes Königreich</strong>: Enthält Daten des <i>Ordnance Survey</i> © Urheber- und Datenbankrecht 2010.</li>\n</ul>\n\n<p>\n Die Einbeziehung von Daten bei OpenStreetMap impliziert nicht, dass der ursprüngliche Datenlieferant OpenStreetMap unterstützt, Gewährleistung gibt, noch Haftung übernimmt.\n</p>"
native:
mapping_link: mit dem Kartieren anfangen
native_link: deutschen Sprachversion
inbox:
date: Datum
from: Absender
+ messages: Du hast %{new_messages} und %{old_messages}
my_inbox: Posteingang
+ new_messages:
+ one: eine neue Nachricht
+ other: "%{count} neue Nachrichten"
no_messages_yet: Du hast noch keine Nachrichten. Trete doch mit %{people_mapping_nearby_link} in Kontakt.
+ old_messages:
+ one: eine alte Nachricht
+ other: "%{count} alte Nachrichten"
outbox: Gesendet
people_mapping_nearby: Mappern in deiner Nähe
subject: Betreff
title: Posteingang
- you_have: Du hast %{new_count} neue Nachrichten und %{old_count} alte Nachrichten
mark:
as_read: Nachricht als gelesen markiert
as_unread: Nachricht als ungelesen markiert
outbox:
date: Datum
inbox: Posteingang
+ messages:
+ one: Du hast eine Nachricht gesendet
+ other: Du hast %{count} Nachrichten gesendet
my_inbox: "%{inbox_link}"
no_sent_messages: Du hast noch keine Nachrichten versendet. Trete doch mit %{people_mapping_nearby_link} in Kontakt.
outbox: Gesendet
subject: Betreff
title: Gesendet
to: An
- you_have_sent_messages: Du hast %{count} Nachrichten versendet
read:
back_to_inbox: Zurück zum Posteingang
back_to_outbox: Zurück zu Gesendete Nachrichten
summary_no_ip: "%{name} erstellt am %{date}"
title: Benutzer
login:
+ account is suspended: Dein Benutzerkonto wurde aufgrund verdächtiger Aktivitäten gesperrt.<br />Bitte kontaktiere den <a href="%{webmaster}">Webmaster</a>, sofern du dies klären möchtest.
account not active: Leider wurde dein Benutzerkonto bislang noch nicht aktiviert.<br />Bitte aktiviere dein Benutzerkonto, indem du auf den Link in deiner Bestätigungs-E-Mail klickst oder <a href="%{reconfirm}">eine neue Bestätigungs-E-Mail anforderst</a>.
- account suspended: Dein Benutzerkonto wurde aufgrund verdächtiger Aktivitäten gesperrt, um potentiellen Schaden von OpenStreetMap abzuwenden. <br /> Bitte kontaktiere den %{webmaster}, sofern du diese Angelegenheit klären möchtest.
auth failure: Sorry, Anmelden mit diesen Daten nicht möglich.
create account minute: Erstelle ein Benutzerkonto. Es dauert nur eine Minute.
email or username: "E-Mail-Adresse oder Benutzername:"
login_button: Anmelden
lost password link: Passwort vergessen?
new to osm: Neu bei OpenStreetMap?
+ no account: Du hast noch kein Benutzerkonto?
notice: <a href="http://wiki.openstreetmap.org/wiki/DE:ODbL/Wir_wechseln_die_Lizenz">Informiere dich über den bevorstehenden Lizenzwechsel bei OpenStreetMap</a> (<a href="http://wiki.openstreetmap.org/wiki/ODbL/We_Are_Changing_The_License">Übersetzungen</a>) (<a href="http://wiki.openstreetmap.org/wiki/Talk:ODbL/Upcoming">Diskussion</a>)
+ notice_terms: OpenStreetMap stellt am 1. April 2012 auf eine neuen Lizenz um. Es handelt sich bei der neuen Lizenz um eine ebenso freie Lizenz, wie es die aktuelle ist, allerdings sind deren rechtliche Rahmenbedingungen besser auf die Bedürfnisse unserer Kartendatenbank abgestimmt. Wir würden es sehr begrüßen, sofern wir deine Beiträge zu OpenStreetMap weiterhin speichern und zugänglich machen könnten. Dies ist allerdings nur dann möglich, sofern du zustimmst, dass wir dies gemäß den Bedingungen der neuen Lizenz auch tun dürfen. Anderenfalls müssen wir deine Beiträge aus der Datenbank löschen.<br /><br />Bitte melde dich an, um die neuen Bedingungen zu lesen und zu akzeptieren. Vielen Dank.
openid: "%{logo} OpenID:"
openid invalid: Deine OpenID scheint leider fehlerhaft zu sein.
openid missing provider: Wir konnten leider keine Verbindung zu deinem OpenID-Dienst herstellen.
remember: "Anmeldedaten merken:"
title: Anmelden
to make changes: Um Datenänderungen bei OpenStreetMap vornehmen zu können, musst Du ein Benutzerkonto haben.
- webmaster: Webmaster
with openid: "Alternativ kannst du deine OpenID zum Anmelden nutzen:"
with username: "Hast du bereits ein Konto bei OpenStreetMap? Bitte melde dich mit deinem Benutzernamen und Passwort an:"
logout:
block_history: Erhaltene Sperren anzeigen
blocks by me: Selbst vergebene Sperren
blocks on me: Erhaltene Sperren
+ comments: Kommentare
confirm: Bestätigen
confirm_user: Bestätige den Benutzer
create_block: Diesen Nutzer sperren
created from: "erstellt aus:"
+ ct accepted: Vor %{ago} akzeptiert
+ ct declined: Abgelehnt
+ ct status: "Vereinbarung für Mitwirkende:"
+ ct undecided: Unentschlossen
deactivate_user: Benutzer deaktivieren
delete_user: Benutzer löschen
description: Beschreibung
diary: Blog
edits: Bearbeitungen
email address: "E-Mail-Adresse:"
+ friends_changesets: Alle Änderungssätze deiner Freunde durchsuchen
+ friends_diaries: Alle Tagebucheinträge von Freunden durchsuchen
hide_user: Benutzer verstecken
if set location: Wenn du deinen Standort angegeben hast, erscheint eine Karte am Seitenende. Du kannst deinen Standort in deinen %{settings_link} ändern.
km away: "%{count} km entfernt"
m away: "%{count} m entfernt"
mapper since: "Mapper seit:"
moderator_history: Vergebene Sperren anzeigen
+ my comments: Eigene Kommentare
my diary: Eigener Blog
my edits: Eigene Bearbeitungen
my settings: Eigene Einstellungen
my traces: Eigene Tracks
nearby users: Anwender in der Nähe
+ nearby_changesets: Alle Änderungssätze von Benutzern in der Nähe durchsuchen
+ nearby_diaries: Alle Tagebucheinträge von Benutzern in der Nähe durchsuchen
new diary entry: Neuer Blogeintrag
no friends: Du hast bis jetzt keine Freunde hinzugefügt.
no nearby users: Es gibt bisher keine Benutzer, die einen Standort in deiner Nähe angegeben haben.
list:
description: Aktualne změny
description_bbox: Sajźby změnow w %{bbox}
+ description_friend: Změny twójich pśijaśelow
+ description_nearby: Sajźby změnow wužywarjow w bliskosći
description_user: Sajźby změnow wót %{user}
description_user_bbox: Sajźby změnow wót %{user} w %{bbox}
heading: Sajźby změnow
heading_bbox: Sajźby změnow
+ heading_friend: Sajźby změnow
+ heading_nearby: Sajźby změnow
heading_user: Sajźby změnow
heading_user_bbox: Sajźby změnow
title: Sajźby změnow
title_bbox: Sajźby změnow w %{bbox}
+ title_friend: Změny twójich pśijaśelow
+ title_nearby: Sajźby změnow wužywarjow w bliskosći
title_user: Sajźby změnow wót %{user}
title_user_bbox: Sajźby změnow wót %{user} w %{bbox}
timeout:
sorry: Bóžko jo pśedłujko trało, kupki změnow, kótarež sy póžedał, wótwołaś.
diary_entry:
+ comments:
+ ago: pśed %{ago}
+ comment: Komentar
+ has_commented_on: "%{display_name} jo slědujuce dnjownikowe zapiski komentěrował"
+ newer_comments: Nowše komentary
+ older_comments: Starše komentary
+ post: Powěsć
+ when: Cas
diary_comment:
comment_from: Komentar wót %{link_user} wót %{comment_created_at}
confirm: Wobkšuśiś
older_entries: Starše zapiski
recent_entries: "Nejnowše zapiski dnjownika:"
title: Dnjowniki wužywarjow
+ title_friends: Dnjowniki pśijaśelow
+ title_nearby: Dnjowniki wužywarjow w bliskosći
user_title: dnjownik wužywarja %{user}
location:
edit: Wobźěłaś
licence: Licenca
longitude: "Dlinina:"
manually_select: Drugi wurězk manuelnje wubraś
- mapnik_image: Wobraz Mapnik
+ map_image: Kórtowy wobraz (pokazujo standardnu rowninu)
max: maks.
options: Opcije
osm_xml_data: XML-daty OpenStreetMap
- osmarender_image: Wobraz Osmarender
output: Wudaśe
paste_html: HTML kopěrowaś, aby se zasajźił do websedła
scale: Měritko
veterinary: Skótny gójc
village_hall: Gmejnski centrum
waste_basket: Sudobje za wótpadanki
- wifi: WLAN-pśistup
+ wifi: WiFi-pśistup
youth_centre: Młoźinski centrum
boundary:
administrative: Zastojnstwowa granica
base:
cycle_map: Kórta za kolesowarjow
mapquest: MapQuest Open
+ standard: Standard
transport_map: Wobchadowa kórta
site:
edit_disabled_tooltip: Za wobźěłowanje kórty powětšyś
english_link: engelskim originalom
text: W paźe konflikta mjazy pśełožonym bokom a %{english_original_link}, engelski bok ma prědnosć měś
title: Wó toś tom pśełožku
- legal_babble: "<h2>Awtorske pšawo a licenca</h2>\n<p> \nOpenStreetMap wobstoj ze <i>zjawnych datow</i>, licencěrowanych pód licencu <a href=\"http://creativecommons.org/licenses/by-sa/2.0/\">Creative Commons Attribution-ShareAlike 2.0</a> (CC-BY-SA). </p> <p> Móžoš naše kórty a daty kopěrowaś, rozdźěliś, pśenjasć a pśiměriś, tak dłujko ako naspomnjejoš OpenStreetMap a jich sobustatkujucych. Jolic změnijoš naše kórty abo daty abo zepěraš se na nje, móžoš wuslědk jano pód teju sameju licencu rozdźěliś. Dopołny <a href=\"http://creativecommons.org/licenses/by-sa/2.0/legalcode\">pšawniski code</a> wujasnjujo twóje pšawa a zagronitosći.</p>\n\n<h3>Kak naspomnjeś awtorstwo OpenStreetMap</h3>\n<p> Jolic wužywaš kórtowe wobraze z OpenStreetMap, pominamy se, až nanejmjenjej pódawaš “© OpenStreetMap a sobustatkujucych, CC-BY-SA”. Jolic wužywaš jano kórtowe daty, musyš “kórtowe daty © OpenStreetMap a sobustatkujucych, CC-BY-SA” pódaś. </p> <p> Źož jo móžno, OpenStreetMap by měł wótkaz do <a href=\"http://www.openstreetmap.org/\">http://www.openstreetmap.org/</a> a CC-BY-SA do <a href=\"http://creativecommons.org/licenses/by-sa/2.0/\">http://creativecommons.org/licenses/by-sa/2.0/</a> měś. Jolic wužywaš medij, źož wótkaze njejsu móžno (na pś. wuśišćane źěło), naraźujomy, až pokazujoš swójich cytarjow na www.openstreetmap.org a na www.creativecommons.org.</p>\n\n<h3>Dalšne informacije</h3>\n<p>Cytaj wěcej wó wužywanju našych datow <a href=\"http://wiki.openstreetmap.org/wiki/Legal_FAQ\">Ceste pšawniske pšašenja</a>.</p><p> Sobustatkujucych OSM napominamy, až njedodawaju nigda daty ze žrědłow, kótarež su pśez awtorske pšawo šćitane (na pś. z Google Maps abo z wuśišćanych kórtow) bźez wurazneje dowólnosći awtorow. </p> <p> Lěcrownož OpenStreetMap wobstoj ze zjawnych datow, njamóžomy dermotny kórtowy API za wuwiwarjow třeśich póbitowaś. \n\nGlědaj naše <a href=\"http://wiki.openstreetmap.org/wiki/API_usage_policy\">pšawidła za wužywanje API</a>, <a href=\"http://wiki.openstreetmap.org/wiki/Tile_usage_policy\">Pšawidła za wužywanje pólow</a> a <a href=\"http://wiki.openstreetmap.org/wiki/Nominatim#Usage_Policy\">Pšawidła za wužywanje Nominatim</a>. </p> \n\n<h3>Naše sobustatkujuce</h3>\n<p> Naša licenca CC-BY-SA pomina se, až “dajoš spócetnemu awtoroju źěk pśiměrjonemu medijoju abo srědkoju, kótaryž wužywaš”. Jadnotliwe kartěrowarje OSM njepominaju se pśidatne źěkowanje k “sobustatkujucym OpenStreetMap”, ale gaž se daty z narodnego kartěrowańskego předewześa abo z drugego wuznamnego žrědła w OpenStreetMap zapśimuju, jo pśiměrjone, jim pśez direktne pśewzeće jich źěkowanja abo pśez wótkazowanje na njo na toś tom boku wuźěkowaś. </p>\n\n<!-- Information for page editors The following lists only those organisations who require attribution as a condition of their data being used in OpenStreetMap. It is not a general catalogue of imports, and must not be used except when attribution is required to comply with the licence of the imported data. Any additions here must be discussed with OSM sysadmins first. --> \n<ul id=\"contributors\"><li><strong>Awstralska</strong>: Wopśimujo pśedměsćańske daty na zakłaźe datow awstralskego amta za statistiku (Australian Bureau of Statistics).</li>\n<li><strong>Awstriska</strong>: Wopśimujo daty z <a href=\"http://data.wien.gv.at/\">Stadt Wien</a> pód <a href=\"http://creativecommons.org/licenses/by/3.0/at/deed.de\">CC-BY</a>.</li>\n <li><strong>Kanada</strong>: Wopśimujo daty z GeoBase®, GeoGratis (© Department of Natural Resources Canada), CanVec (© Department of Natural Resources Canada), a StatCan (Geography Division, Statistics Canada).</li>\n<li><strong>Francojska</strong>: Wopśimujo daty z Direction Générale des Impôts.</li>\n<li><strong>Nowoseelandska</strong>: Wopśimujo daty ze žrědłow wót Land Information New Zealand. Awtorske pšawo wuměnjone.</li> \n<li><strong>Pólska</strong>: Wopśimujo daty z <a\n href=\"http://ump.waw.pl/\">UMP-pcPL maps</a>. Awtorske pšawo sobustatkujucych UMP-pcPL.</li>\n<li><strong>Zjadnośone kralojstwo</strong>: Wopśimujo daty z Ordnance Survey (Amtske rozměrjenje kraja) © Awtorske pšawo a pšawo za datowe banki 2010.</li> </ul>\n\n<p> Zapśimowanje datow do OpenStreetMap njegroni, až póbitowaŕ originalnych datow pśipóznawa OpenStreetMap, dawa někaku garantiju abo pśewzejo rukowanje. </p>"
+ legal_babble: "<h2>Awtorske pšawo a licenca</h2>\n<p> \nOpenStreetMap wobstoj ze <i>zjawnych datow</i>, licencěrowanych pód licencu <a href=\"http://creativecommons.org/licenses/by-sa/2.0/\">Creative Commons Attribution-ShareAlike 2.0</a> (CC BY-SA). </p> <p> Móžoš naše kórty a daty kopěrowaś, rozdźěliś, pśenjasć a pśiměriś, tak dłujko ako naspomnjejoš OpenStreetMap a jich sobustatkujucych. Jolic změnijoš naše kórty abo daty abo zepěraš se na nje, móžoš wuslědk jano pód teju sameju licencu rozdźěliś. Dopołny <a href=\"http://creativecommons.org/licenses/by-sa/2.0/legalcode\">pšawniski code</a> wujasnjujo twóje pšawa a zagronitosći.</p>\n\n<h3>Kak naspomnjeś awtorstwo OpenStreetMap</h3>\n<p> Jolic wužywaš kórtowe wobraze z OpenStreetMap, pominamy se, až nanejmjenjej pódawaš “© OpenStreetMap a sobustatkujucych, CC BY-SA”. Jolic wužywaš jano kórtowe daty, musyš “kórtowe daty © OpenStreetMap a sobustatkujucych, CC BY-SA” pódaś. </p> <p> Źož jo móžno, OpenStreetMap by měł wótkaz do <a href=\"http://www.openstreetmap.org/\">http://www.openstreetmap.org/</a> a CC BY-SA do <a href=\"http://creativecommons.org/licenses/by-sa/2.0/\">http://creativecommons.org/licenses/by-sa/2.0/</a> měś. Jolic wužywaš medij, źož wótkaze njejsu móžno (na pś. wuśišćane źěło), naraźujomy, až pokazujoš swójich cytarjow na www.openstreetmap.org a na www.creativecommons.org.</p>\n\n<h3>Dalšne informacije</h3>\n<p>Cytaj wěcej wó wužywanju našych datow <a href=\"http://wiki.openstreetmap.org/wiki/Legal_FAQ\">Ceste pšawniske pšašenja</a>.</p><p> Sobustatkujucych OSM napominamy, až njedodawaju nigda daty ze žrědłow, kótarež su pśez awtorske pšawo šćitane (na pś. z Google Maps abo z wuśišćanych kórtow) bźez wurazneje dowólnosći awtorow. </p> <p> Lěcrownož OpenStreetMap wobstoj ze zjawnych datow, njamóžomy dermotny kórtowy API za wuwiwarjow třeśich póbitowaś. \n\nGlědaj naše <a href=\"http://wiki.openstreetmap.org/wiki/API_usage_policy\">pšawidła za wužywanje API</a>, <a href=\"http://wiki.openstreetmap.org/wiki/Tile_usage_policy\">Pšawidła za wužywanje pólow</a> a <a href=\"http://wiki.openstreetmap.org/wiki/Nominatim#Usage_Policy\">Pšawidła za wužywanje Nominatim</a>. </p> \n\n<h3>Naše sobustatkujuce</h3>\n<p> Naša licenca CC BY-SA pomina se, až “dajoš spócetnemu awtoroju źěk pśiměrjonemu medijoju abo srědkoju, kótaryž wužywaš”. Jadnotliwe kartěrowarje OSM njepominaju se pśidatne źěkowanje k “sobustatkujucym OpenStreetMap”, ale gaž se daty z narodnego kartěrowańskego předewześa abo z drugego wuznamnego žrědła w OpenStreetMap zapśimuju, jo pśiměrjone, jim pśez direktne pśewzeće jich źěkowanja abo pśez wótkazowanje na njo na toś tom boku wuźěkowaś. </p>\n\n<!-- Information for page editors The following lists only those organisations who require attribution as a condition of their data being used in OpenStreetMap. It is not a general catalogue of imports, and must not be used except when attribution is required to comply with the licence of the imported data. Any additions here must be discussed with OSM sysadmins first. --> \n<ul id=\"contributors\"><li><strong>Awstralska</strong>: Wopśimujo pśedměsćańske daty na zakłaźe datow awstralskego amta za statistiku (Australian Bureau of Statistics).</li>\n<li><strong>Awstriska</strong>: Wopśimujo daty z <a href=\"http://data.wien.gv.at/\">Stadt Wien</a> pód <a href=\"http://creativecommons.org/licenses/by/3.0/at/deed.de\">CC BY</a>.</li>\n <li><strong>Kanada</strong>: Wopśimujo daty z GeoBase®, GeoGratis (© Department of Natural Resources Canada), CanVec (© Department of Natural Resources Canada), a StatCan (Geography Division, Statistics Canada).</li>\n<li><strong>Francojska</strong>: Wopśimujo daty z Direction Générale des Impôts.</li>\n<li><strong>Nowoseelandska</strong>: Wopśimujo daty ze žrědłow wót Land Information New Zealand. Awtorske pšawo wuměnjone.</li> \n<li><strong>Pólska</strong>: Wopśimujo daty z <a\n href=\"http://ump.waw.pl/\">UMP-pcPL maps</a>. Awtorske pšawo sobustatkujucych UMP-pcPL.\n<a href=\"http://wiki.openstreetmap.org/wiki/UMP2OSM_Importing\">\n Wěcej wó wužywanju UMP-datow w OSM</a></li>\n <li><strong>South Africa</strong>: Wopśimujo daty z <a href=\"http://www.ngi.gov.za/\">Chief Directorate:\n National Geo-Spatial Information</a>, Statne awtorske pšawo wuměnjone.</li>\n <li><strong>United Kingdom</strong>: Wopśimujo daty wót Ordnance\n Survey © Crown copyright and database right\n 2010.</li>\n<li><strong>Zjadnośone kralojstwo</strong>: Wopśimujo daty z Ordnance Survey (Amtske rozměrjenje kraja) © Awtorske pšawo a pšawo za datowe banki 2010.</li> </ul>\n\n<p> Zapśimowanje datow do OpenStreetMap njegroni, až póbitowaŕ originalnych datow pśipóznawa OpenStreetMap, dawa někaku garantiju abo pśewzejo rukowanje. </p>"
native:
mapping_link: kartěrowanje zachopiś
native_link: dolnoserbskej wersiji
inbox:
date: Datum
from: Wót
+ messages: Maš %{new_messages} a %{old_messages}
my_inbox: Mój post
+ new_messages:
+ one: "%{count} nowa powěsć"
+ other: "%{count} nowej powěsći"
no_messages_yet: Hyšći njamaš powěsći. Cogodla njestajaš se z %{people_mapping_nearby_link} do zwiska?
+ old_messages:
+ one: "%{count} stara powěsć"
+ other: "%{count} starej powěsći"
outbox: pósłany
people_mapping_nearby: Luźe, kótarež kartěruju w bliskosći
subject: Temowe nadpismo
title: Post
- you_have: Maš %{new_count} nowych powěsćow a %{old_count} starych powěsćow
mark:
as_read: Powěsć jo se markěrowała ako pśecytana
as_unread: Powěsć jo se markěrowała ako njepśecytana
outbox:
date: Datum
inbox: post
+ messages:
+ one: Sy %{count} powěsć pósłał
+ other: Sy %{count} powěsći pósłał
my_inbox: Mój %{inbox_link}
no_sent_messages: Hyšći njejsy powěsći rozpósłał. Cogodla njestajaš se z jadnym z %{people_mapping_nearby_link}, do zwiska?
outbox: pósłany
subject: Temowe nadpismo
title: Pósłany
to: Komu
- you_have_sent_messages: Sy %{count} powěsćow rozpósłał
read:
back_to_inbox: Slědk k postoju
back_to_outbox: Slědk k pósłanym powěsćam
summary_no_ip: "%{name} dnja %{date} napórany"
title: Wužywarje
login:
+ account is suspended: Twójo konto jo se bóžko wupowěźeło dla pódglědneje aktiwity.<br />Staj se z <a href="%{webmaster}">webmasterom</a>, jolic coš wó tom diskutěrowaś.
account not active: Bóžko twojo konto hyšći njejo aktiwne.<br />Pšosym klikni na wótkaz w e-mailu za wobkšuśenje konta, aby aktiwěrował swójo konto abo <a href="%{reconfirm}">pominaj nowu wobkšuśeńsku e-mail</a>.
- account suspended: Twójo konto jo se bóžko wupowěźeło dla pódglědneje aktiwity.<br />Staj se z %{webmaster}, jolic coš wó tom diskutěrowaś.
auth failure: Bóžko, pśizjawjenje z toś tymi datami njejo móžno.
create account minute: Załož konto. Trajo jano minutku.
email or username: "E-mailowa adresa abo wužywarske mě:"
login_button: Pśizjawiś se
lost password link: Sy swójo gronidło zabył?
new to osm: Nowy w OpenStreetMap?
+ no account: Njamaš wužywarske konto?
notice: <a href="http://www.osmfoundation.org/wiki/License/We_Are_Changing_The_License">Wěcej wó pśichodnej licencnej změnje OpenStreetMap</a> (<a href="http://wiki.openstreetmap.org/wiki/ODbL/We_Are_Changing_The_License">pśełožki</a>) (<a href="http://wiki.openstreetmap.org/wiki/Talk:ODbL/Upcoming">diskusija</a>)
+ notice_terms: OpenStreetMap pśejźo 1. apryla 2012 k nowej licency. Jo teke licha ako aktualna, ale pšawniske wuměnjenja góźe se lěpjej k našej kórtowej datowej bance. My by rady twóje pśinoski w OpenStreetMap wobchowali, ale móžomy to jano cyniś, jolic sy wobjadny, až rozšyrjomy twóje pśinoski pód nowej licencu. Howac musymy je z datoweje banki wótpóraś.<br /><br />Pšosym wózjaw se, bjeŕ se pótom někotare sekundy casa, aby nowe wuměnjenja pśeglědał a akceptěrował. Wjeliki źěk!
openid: "%{logo} OpenID:"
openid invalid: Bóžko zda se, až twój OpenID jo njepłaśiwy
openid missing provider: Bóžko njejsmy mógli z twójim OpenID-póbitowarjom zwězaś
remember: "Spomnjeś se:"
title: Pśizjawjenje
to make changes: Aby daty OpenStreetMap změnił, musyš konto měś.
- webmaster: webmejstaŕ
with openid: "Alternatiwnje móžoš swój OpenID za pśizjawjenje wužywaś:"
with username: "Maš južo konto pla OpenStreetMap? Pšosym pśizjaw se ze swójim wužywarskim mjenim a gronidłom:"
logout:
block_history: Dostane blokěrowanja pokazaś
blocks by me: blokěrowanja wóte mnjo
blocks on me: blokěrowanja pśeśiwo mě
+ comments: komentary
confirm: Wobkšuśiś
confirm_user: toś togo wužywarja wobkšuśiś
create_block: toś togo wužywarja blokěrowaś
created from: "Napórany z:"
+ ct accepted: Pśed %{ago} akceptěrowany
+ ct declined: Wótpokazany
+ ct status: "Wuměnjenja za sobustatkujucych:"
+ ct undecided: Njerozsuźony
deactivate_user: toś togo wužywarja znjemóžniś
delete_user: toś togo wužywarja lašowaś
description: Wopisanje
diary: dnjownik
edits: změny
email address: "E-mailowa adresa:"
+ friends_changesets: Sajźby změnow twójich pśijaśelow pśepytaś
+ friends_diaries: Wšykne dnjownikowe zapiski pśijaśelow pśepytaś
hide_user: toś togo wužywarja schowaś
if set location: Jolic sy swójo městno nastajił, rědna kórta a někotare informacije pokažu se dołojce. Móžoś swójo stojnišćo na boku %{settings_link} nastajiś.
km away: "%{count} km zdalony"
m away: "%{count} m zdalony"
mapper since: "Kartěrowaŕ wót:"
moderator_history: Rozdane blokěrowanja pokazaś
+ my comments: móje komentary
my diary: mój dnjownik
my edits: móje změny
my settings: móje nastajenja
my traces: móje slědy
nearby users: Druge wužywarje w bliskosći
+ nearby_changesets: Wšykne sajźby změnow wužywarjow w bliskosći pśepytaś
+ nearby_diaries: Wšykne dnjownikowe zapiski wužywarjow w bliskosći pśepytaś
new diary entry: nowy dnjownikowy zapisk
no friends: Hyšći njejsy žednych pśijaśelow pśidał.
no nearby users: Hyšći njejsu žedne wužywarje, kótarež kartěruju w bliskosći.
browse:
changeset:
changeset: "Ομάδα αλλαγών: %{id}"
- changesetxml: Ομάδα αλλαγών XML
+ changesetxml: Ομάδας αλλαγών XML
download: Λήψη %{changeset_xml_link} ή %{osmchange_xml_link}
feed:
title: Ομάδα αλλαγών %{id}
relation: Επεξεργασία σχέσης
way: Επεξεργασία διαδρομής
larger:
- area: Δείτε την περιοχή σε μεγαλύτερο χάρτη.
+ area: Δες την περιοχή σε μεγαλύτερο χάρτη.
node: Προβολή του κόμβου σε μεγαλύτερο χάρτη
- relation: Δείτε την σχέση σε μεγαλύτερο χάρτη
- way: Δείτε την διαδρομή σε μεγαλύτερο χάρτη.
+ relation: Δες την σχέση σε μεγαλύτερο χάρτη
+ way: Δες την διαδρομή σε μεγαλύτερο χάρτη.
loading: Φόρτωση...
navigation:
all:
prev_way_tooltip: Προηγούμενη διαδρομή
user:
name_changeset_tooltip: Προβολή αλλαγών από %{user}
- next_changeset_tooltip: Επόμενη επεξεργασία από %{user}
- prev_changeset_tooltip: Προηγούμενη επεξεργασία από %{user}
+ next_changeset_tooltip: Επόμενη επεξεργασία από τον %{user}
+ prev_changeset_tooltip: Προηγούμενη επεξεργασία από τον %{user}
node:
download: "%{download_xml_link}, %{view_history_link} ή %{edit_link}"
download_xml: Λήψη XML
- edit: επεξεργαστείτε
+ edit: επεξεργασία
node: Κόμβος
node_title: "Κόμβος: %{node_name}"
view_history: δες ιστορία
node_history_title: "Ιστορικό Κόμβου: %{node_name}"
view_details: Δες λεπτομέρειες
not_found:
- sorry: ΣÏ\85γγνÏ\8eμη, ο/η %{type} με την ταυτότητα %{id}, δε μπορεί να βρεθεί.
+ sorry: Î\9bÏ\85Ï\80άμαι, ο/η %{type} με την ταυτότητα %{id}, δε μπορεί να βρεθεί.
type:
changeset: ομάδα αλλαγών
node: Κόμβος
data_frame_title: Δεδομένα
data_layer_name: Δεδομένα
details: Λεπτομέρειες
- drag_a_box: Σύρετε ένα πλαίσιο στο χάρτη για να επιλέξετε μια περιοχή
- edited_by_user_at_timestamp: Επεξεργάστηκε από [[user]] στις [[timestamp]]
+ drag_a_box: Σύρε ένα πλαίσιο στο χάρτη για να επιλέξεις μια περιοχή
+ edited_by_user_at_timestamp: Επεξεργάστηκε από τον [[user]] στις [[timestamp]]
hide_areas: Απόκρυψη περιοχών
history_for_feature: Ιστορικό για [[feature]]
load_data: Φόρτωση δεδομένων
show_history: Προβολή ιστορικού
unable_to_load_size: "Δεν είναι δυνατή η φόρτωση: το μέγεθος [[bbox_size]] του πλαισίου οριοθέτησης είναι πολύ μεγάλο (πρέπει να είναι μικρότερο από %{max_bbox_size})"
wait: Αναμονή...
- zoom_or_select: Μεγέθυνση ή επιλογή περιοχής του χάρτη για να δείτε
+ zoom_or_select: Μεγέθυνση ή επιλογή περιοχής του χάρτη προς εμφάνιση
tag_details:
tags: "Ετικέτες:"
wiki_link:
tag: Η wiki σελίδα περιγραφής για την ετικέτα %{key}=%{value}
wikipedia_link: Το άρθρο %{page} στη Βικιπαίδεια
timeout:
- sorry: ΣÏ\85γγνÏ\8eμη, τα δεδομένα για το/τη %{type} με αναγνωριστικό %{id}, χρειάστηκε πολύ χρόνο για να ανακτηθεί.
+ sorry: Î\9bÏ\85Ï\80άμαι, τα δεδομένα για το/τη %{type} με αναγνωριστικό %{id}, χρειάστηκε πολύ χρόνο για να ανακτηθεί.
type:
changeset: ομάδα αλλαγών
node: Κόμβος
anonymous: Ανώνυμος
big_area: (μεγάλο)
no_comment: (κανένα)
- no_edits: (χωρίς τροποποιήσεις)
+ no_edits: (χωρίς επεξεργασίες)
show_area_box: δείξε κουτί περιοχής
still_editing: (ακόμη σε επεξεργασία)
view_changeset_details: Προβολή λεπτομερειών ομάδας αλλαγών
list:
description: Πρόσφατες αλλαγές
description_bbox: Ομάδες αλλαγών μεταξύ %{bbox}
+ description_friend: Ομάδες αλλαγών από τους φίλους σας
+ description_nearby: Ομάδες αλλαγών από κοντινούς χρήστες
description_user: Ομάδες αλλαγών από %{user}
description_user_bbox: Ομάδες αλλαγών από %{user} μεταξύ %{bbox}
heading: Ομάδες αλλαγών
heading_bbox: Ομάδες αλλαγών
+ heading_friend: Ομάδες αλλαγών
+ heading_nearby: Ομάδες αλλαγών
heading_user: Ομάδες αλλαγών
heading_user_bbox: Ομάδες αλλαγών
title: Ομάδες αλλαγών
title_bbox: Ομάδες αλλαγών μεταξύ %{bbox}
- title_user: Ομάδες αλλαγών από %{user}
- title_user_bbox: Ομάδες αλλαγών από %{user} μεταξύ %{bbox}
+ title_friend: Ομάδες αλλαγών από τους φίλους σου
+ title_nearby: Ομάδες αλλαγών από κοντινούς χρήστες
+ title_user: Ομάδες αλλαγών από τον %{user}
+ title_user_bbox: Ομάδες αλλαγών από τον %{user} μεταξύ %{bbox}
timeout:
- sorry: Î\9bÏ\85Ï\80άμαι, ο καÏ\84άλογοÏ\82 Ï\84Ï\89ν ομάδÏ\89ν αλλαγÏ\8eν Ï\80οÏ\85 ζηÏ\84ήÏ\83αÏ\84ε Ï\87Ï\81ειάÏ\83Ï\84ηκε Ï\80ολÏ\8d Ï\87Ï\81Ï\8cνο να ανακτηθεί.
+ sorry: Î\9bÏ\85Ï\80άμαι, ο καÏ\84άλογοÏ\82 Ï\84Ï\89ν ομάδÏ\89ν αλλαγÏ\8eν Ï\80οÏ\85 ζήÏ\84ηÏ\83εÏ\82 Ï\87Ï\81ειάÏ\83Ï\84ηκε Ï\80ολÏ\8d Ï\87Ï\81Ï\8cνο για να ανακτηθεί.
diary_entry:
diary_comment:
comment_from: Σχόλιο από τον %{link_user} στις %{comment_created_at}
posted_by: Γράφτηκε από το χρήστη %{link_user} στις %{created} στα %{language_link}
reply_link: Απάντηση στη καταχώρηση
edit:
- body: "ΣÏ\8eμα:"
+ body: "Î\9aείμενο:"
language: "Γλώσσα:"
latitude: Γεωγραφικό πλάτος
location: "Τοποθεσία:"
older_entries: Παλιότερες Καταχωρήσεις
recent_entries: "Πρόσφατες καταχωρήσεις ημερολογίου:"
title: Ημερολόγια χρηστών
+ title_friends: Ημερολόγια φίλων
+ title_nearby: Ημερολόγια Κοντινών Χρηστών
user_title: ημερολόγιο του %{user}
location:
edit: Επεξεργασία
description: Potlatch 2 (επεξεργαστής μέσα στο περιηγητή ιστού)
name: Potlatch 2
remote:
- description: Î\91Ï\80ομακÏ\81Ï\85Ï\83μÎνοÏ\82 ÎλεγÏ\87ος (JOSM ή Merkaartor)
- name: Î\91Ï\80ομακÏ\81Ï\85Ï\83μÎνοÏ\82 ÎλεγÏ\87ος
+ description: ΤηλεÏ\87ειÏ\81ιÏ\83μÏ\8cς (JOSM ή Merkaartor)
+ name: ΤηλεÏ\87ειÏ\81ιÏ\83μÏ\8cς
export:
start:
add_marker: Προσθέστε ένα δείκτη στο χάρτη
licence: Άδεια
longitude: "Γεω. Μη.:"
manually_select: Χειροκίνητη επιλογή διαφορετικής περιοχής
- mapnik_image: Εικόνα Mapnik
max: μεγ
options: Επιλογές
osm_xml_data: Δεδομένα OpenStreetMap XML
- osmarender_image: Εικόνα Osmarender
output: Απόδοση
paste_html: Επικόλληση HTML για ενσωμάτωση στην ιστοσελίδα
scale: Κλίμακα
school: Σχολικό Κτήριο
shop: Κατάστημα
stadium: Στάδιο
+ store: Κατάστημα
tower: Πύργος
train_station: Σιδηροδρομικός Σταθμός
university: Κτήριο Πανεπιστημίου
secondary_link: Δευτερεύουσα Οδός
services: Υπηρεσίες Αυτοκινητοδρόμου
steps: Σκαλοπάτια
+ track: Χωματόδρομος
trail: Διαδρομή
unclassified: Αταξινόμητη Οδός
unsurfaced: Δρόμος χωρίς Επίστρωση
forest: Δάσος
grass: Γρασίδι
industrial: Βιομηχανική Περιοχή
+ landfill: Χωματερή
meadow: Λιβάδι
military: Στρατιωτική Περιοχή
mine: Ορυχείο
wetland: Υγρότοπος
wood: Μη προσεγμένο δάσος
leisure:
+ beach_resort: Παραθαλάσσιο θέρετρο
fishing: Αλιευτική Περιοχή
garden: Κήπος
golf_course: Γήπεδο Γκολφ
historic_station: Ιστορική Σιδηροδρομικός Σταθμός
junction: Σιδηροδρομικός Κόμβος
level_crossing: Ισόπεδη Διάβαση
+ narrow_gauge: Σιδηρόδρομος Στενής Τροχιάς
station: Σιδηροδρομικός Σταθμός
subway: Σταθμός Μετρό
subway_entrance: Είσοδος Στο Μετρό
dry_cleaning: Στεγνό Καθάρισμα
electronics: Κατάστημα Ηλεκτρονικών
estate_agent: Κτηματομεσίτης
+ fashion: Κατάστημα Μόδας
fish: Ιχθυοπωλείο
florist: Ανθοπώλης
food: Κατάστημα Τροφίμων
+ funeral_directors: Γραφείο τελετών
furniture: Έπιπλα
gift: Κατάστημα Δώρων
greengrocer: Μανάβης
waterfall: Καταρράχτης
javascripts:
site:
- edit_disabled_tooltip: Κάνετε μεγέθυνση για να επεξεργαστείτε το χάρτη
+ edit_disabled_tooltip: Κάνε μεγέθυνση για να επεξεργαστείς το χάρτη
edit_tooltip: Επεξεργασία του χάρτη
- edit_zoom_alert: Πρέπει να μεγεθύνετε για να επεξεργαστείτε το χάρτη
- history_disabled_tooltip: Μεγέθυνση για να δείτε τις αλλαγές για αυτή την περιοχή
+ edit_zoom_alert: Πρέπει να μεγεθύνεις για να επεξεργαστείς το χάρτη
+ history_disabled_tooltip: Μεγέθυνε για να δεις τις αλλαγές για αυτή την περιοχή
history_tooltip: Προβολή αλλαγών για αυτή την περιοχή
- history_zoom_alert: Πρέπει να μεγεθύνετε για να δείτε τις αλλαγές για αυτή την περιοχή
+ history_zoom_alert: Πρέπει να μεγεθύνεις για να δεις τις αλλαγές για αυτή την περιοχή
layouts:
community_blogs: Ιστολόγια της Κοινότητας
community_blogs_title: Blogs από τα μέλη της κοινότητας του OpenStreetMap
one: Τα εισερχόμενα σας περιέχουν 1 αδιάβαστο μήνυμα
other: Τα εισερχόμενα σας περιέχουν %{count} αδιάβαστα μηνύματα
zero: Τα εισερχόμενα σας δεν περιέχουν κανένα αδιάβαστο μήνυμα
- intro_1: Ο OpenStreetMap είναι δωρεάν, επεξεργάσιμος χάρτης ολόκληρου του κόσμου. Είναι κατασκευασμένο από ανθρώπους σαν κι εσάς.
+ intro_1: Ο OpenStreetMap είναι δωρεάν, επεξεργάσιμος χάρτης ολόκληρου του κόσμου. Είναι κατασκευασμένος από ανθρώπους σαν κι εσάς.
intro_2: Το OpenStreetMap σάς επιτρέπει να προβάλετε, να επεξεργαστείτε και να χρησιμοποιήσετε τα γεωγραφικά δεδομένα με ένα συνεργατικό τρόπο από οπουδήποτε στη Γη.
+ intro_3: Η φιλοξενία του OpenStreetMap υποστηρίζεται από το %{ucl}, %{ic} και %{bytemark}. Άλλοι υποστηρικτές του εγχειρήματος αναφέρονται στους %{partners}.
+ intro_3_ic: Κολέγιο Imperial του Λονδίνου
intro_3_partners: βίκι
+ license:
+ title: Τα δεδομένα του OpenStreetMap τελούν υπό την Creative Commons Attribution-Share Alike 2.0 Γενική Άδεια
log_in: είσοδος
log_in_tooltip: Σύνδεση με έναν υπάρχοντα λογαριασμό
logo:
make_a_donation:
text: Κάντε μια Δωρεά
title: Υποστήριξε το OpenStreetMap με δωρεά χρημάτων
+ osm_offline: Η βάση δεδομένων του OpenStreetMap είναι προσωρινά εκτός λειτουργίας λόγω εργασιών συντήρησης της βάσης δεδομένων.
+ osm_read_only: Η βάση δεδομένων του OpenStreetMap είναι προσωρινά σε λειτουργία "μόνο για ανάγνωση" λόγω εργασιών συντήρησης της βάσης δεδομένων.
sign_up: εγγραφή
sign_up_tooltip: Δημιουργήστε λογαριασμό για επεξεργασία
- tag_line: Ο Ελεύθερος Παγκόσμιος Χάρτης Βίκι
+ tag_line: Ο Ελεύθ. Παγκ. Χάρτης Βίκι
user_diaries: Ημερολόγια Χρηστών
user_diaries_tooltip: Προβολή ημερολογίων χρηστών
view: Προβολή
view_tooltip: Προβολή του χάρτη
welcome_user: Καλώς ορίσατε, %{user_link}
- welcome_user_link_tooltip: Î\97 Ï\83ελίδα Ï\87Ï\81ήÏ\83Ï\84η Ï\83αÏ\82
+ welcome_user_link_tooltip: Î\97 Ï\80Ï\81οÏ\83Ï\89Ï\80ική Ï\83αÏ\82 Ï\83ελίδα
wiki: Βίκι
wiki_title: Ιστοσελίδα βίκι για το έργο
license_page:
text: Προβάλλετε η αγγλική έκδοση της σελίδας πνευματικών δικαιωμάτων. Μπορείτε να επιστρέψετε στην %{native_link} της σελίδας ή να σταματήσετε να διαβάζετε για τα πνευματικά δικαιώματα και να %{mapping_link}.
title: Σχετικά με αυτήν τη σελίδα
message:
+ delete:
+ deleted: Το μήνυμα διαγράφηκε
inbox:
date: Ημ/νία
from: Από
my_inbox: Τα Εισερχόμενα μου
+ no_messages_yet: Δεν έχεις μηνύματα ακόμα. Γιατί δεν έρχεσαι σε επαφή με μερικά από τα %{people_mapping_nearby_link}?
outbox: εξερχόμενα
+ people_mapping_nearby: άτομα που χαρτογραφούν κοντά σου
subject: Θέμα
title: Εισερχόμενα
- you_have: Έχεις %{new_count} νέα μηνύματα και %{old_count} παλιά μηνύματα
+ mark:
+ as_read: Το μήνυμα σημειώθηκε ως διαβασμένο
+ as_unread: Το μήνυμα σημειώθηκε ως αδιάβαστο
message_summary:
delete_button: Διαγραφή
read_button: Σήμανση ως διαβασμένο
new:
back_to_inbox: Πίσω στα Εισερχόμενα
body: Κείμενο
+ limit_exceeded: Έχεις στείλει πολλά μηνύματα πρόσφατα. Παρακαλώ περίμενε για λίγο πριν δοκιμάσεις να στείλεις ξανά.
message_sent: Αποστολή μηνύματος
send_button: Αποστολή
send_message_to: Αποστολή νέου μηνύματος προς %{name}
subject: Θέμα
title: Αποστολή μηνύματος
no_such_message:
+ body: Λυπάμαι δεν υπάρχει μήνυμα με αυτό το αναγνωριστικό.
heading: Κανένα τέτοιο μήνυμα
title: Κανένα τέτοιο μήνυμα
no_such_user:
back_to_outbox: Πίσω στα Εξερχόμενα
date: Ημ/νία
from: Από
+ reading_your_messages: Ανάγνωση μηνυμάτων
+ reading_your_sent_messages: Ανάγνωση απεσταλμένων μηνυμάτων
reply_button: Απάντηση
subject: Θέμα
title: Ανάγνωση μηνύματος
to: Προς
unread_button: Σήμανση ως αδιάβαστο
+ wrong_user: Έχεις συνδεθεί ως `%{user}' αλλά το μήνυμα που ζητάς να διαβάσεις δεν έχει σταλεί σε εσένα ούτε από εσένα. Παρακαλώ συνδέσου με το σωστό όνομα χρήστη ώστε να μπορέσεις να το διαβάσεις.
+ reply:
+ wrong_user: Έχεις συνδεθεί ως `%{user}' αλλά το μήνυμα που ζητάς να απαντήσεις δεν έχει σταλεί σε αυτόν το χρήστη. Παρακαλώ συνδέσου με το σωστό όνομα χρήστη ώστε να μπορέσεις να απαντήσεις
sent_message_summary:
delete_button: Διαγραφή
notifier:
subject: "[OpenStreetMap] Επιβεβαιώστε τη διεύθυνση ηλεκτρονικού ταχυδρομείου σας"
signup_confirm_html:
click_the_link: Εάν πρόκειται για σας, Καλώς ήρθατε! Κάντε κλικ στο σύνδεσμο παρακάτω, για να επιβεβαιωθεί ο λογαριασμό σας και διαβάστε για περισσότερες πληροφορίες σχετικά με το OpenStreetMap
+ get_reading: Διάβασε σχετικά με το OpenStreetMap <a href="http://wiki.openstreetmap.org/wiki/Beginners%27_Guide">στο wiki</a>, μείνε ενήμερος με τα τελευταία νέα μέσω του <a href="http://blog.openstreetmap.org/">OpenStreetMap blog</a> ή το <a href="http://twitter.com/openstreetmap">Twitter</a>, ή περιηγήσου στο <a href="http://www.opengeodata.org/">OpenGeoData blog</a> του ιδρυτή του OpenStreetMap Steve Coast για το ιστορικό του project, το οποίο επίσης έχει <a href="http://www.opengeodata.org/?cat=13">podcasts να ακούσεις</a>!
greeting: Γεια!
- hopefully_you: Κάποιος (ελπίζουμε εσύ) θέλει να δημιουργήσει ένα λογαριασμό στο
+ hopefully_you: Κάποιος (ελπίζουμε εσείς) θέλει να δημιουργήσει ένα λογαριασμό στο
introductory_video: Μπορείτε να παρακολουθήσετε ένα %{introductory_video_link}.
more_videos: Υπάρχουν {more_videos_link} %.
more_videos_here: περισσότερα βίντεο εδώ
video_to_openstreetmap: εισαγωγικό βίντεο για το OpenStreetMap
signup_confirm_plain:
+ ask_questions: "Μπορείς να ρωτήσεις για οποιαδήποτε απορία έχεις σχετικά με το OpenStreetMap στην ιστοσελίδα ερωτήσεων και απαντήσεων:"
+ blog_and_twitter: "Μείνε ενήμερος με τα τελευταία νέα μέσω του ιστολογίου του OpenStreetMap ή το Twitter:"
click_the_link_1: Αν αυτός είσαι εσύ, καλώς ήρθες! Παρακαλώ κάνε κλίκ στο σύνδεσμο από κάτω ώστε να επιβεβαιωθεί
click_the_link_2: ο λογαριασμός σου και διάβασε για περισσότερες πληροφορίες σχετικά με το OpenStreetMap.
+ current_user_1: Ένας κατάλογος με τρέχοντες χρήστες ανά κατηγορίες, βασισμένος στο πού στον κόσμο
+ current_user_2: "βρίσκονται, είναι διαθέσιμος από:"
greeting: Γεια!
hopefully_you: Κάποιος (ελπίζουμε εσύ) θέλει να δημιουργήσει ένα λογαριασμό στο
introductory_video: "Μπορείς να παρακολουθήσεις ένα εισαγωγικό βίντεο για το OpenStreetMap εδώ:"
more_videos: "Υπάρχουν περισσότερα βίντεο εδώ:"
opengeodata: "Το OpenGeoData.org είναι το ιστολόγιο του ιδρυτή του OpenStreetMap Steve Coast's , έχει επίσης και podcasts:"
the_wiki: "Διάβασε σχετικά με το OpenStreetMap στο wiki:"
+ user_wiki_1: Προτείνεται να δημιουργήσεις μια σελίδα χρήστη wiki, η οποία περιλαμβάνει
+ user_wiki_2: ετικέτες που επισημαίνουν που βρίσκεσαι, όπως [[Category:Users_in_London]].
+ wiki_signup: "Ίσως θες επίσης να κάνεις εγγραφή στο OpenStreetMap wiki:"
oauth_clients:
edit:
submit: Επεξεργασία
site:
edit:
anon_edits_link_text: Μάθετε γιατί συμβαίνει αυτό.
+ flash_player_required: Χρειάζεστε Flash player για να χρησιμοποιήσετε το Potlatch, το Flash πρόγραμμα επεξεργασίας του OpenStreetMap. Μπορείτε να <a href="http://www.adobe.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash">κάνετε λήψη του Flash Player από την τοποθεσία Adobe.com</a>. <a href="http://wiki.openstreetmap.org/wiki/Editing">Πολλές άλλες επιλογές</a> είναι επίσης διαθέσιμες για επεξεργασία στο OpenStreetMap.
not_public: Δεν έχετε ορίσει τις επεξεργασίες σας να είναι δημόσιες.
potlatch2_unsaved_changes: Έχετε μη αποθηκευμένες αλλαγές. (Για να αποθηκεύσετε στο Potlatch 2, πρέπει να κάνετε κλικ στο «Αποθήκευση».)
user_page_link: σελίδα χρήστη
index:
js_1: Είτε χρησιμοποιείτε πρόγραμμα περιήγησης που δεν υποστηρίζει JavaScript ή έχετε απενεργοποιήσει την JavaScript.
+ js_2: Το OpenStreetMap χρησιμοποιεί JavaScript για το ολισθαίνοντα χάρτη του.
license:
notice: Υπό την άδεια του %{license_name} άδεια από το %{project_name} και τους χρήστες του.
project_name: έργο OpenStreetMap
+ remote_failed: Η επεξεργασία απέτυχε - βεβαιώσου ότι ο JOSM ή ο Merkaartor έχουν φορτωθεί και η επιλογή τηλεχειρισμού είναι ενεργή
key:
map_key: Υπόμνημα
+ map_key_tooltip: Υπόμνημα χάρτη
table:
entry:
+ admin: Διοικητικό όριο
+ bridge: Μαύρο περίβλημα = γέφυρα
bridleway: Μονοπάτι για Άλογα
building: Σημαντικό κτίριο
cable:
park: Πάρκο
permissive: Ανεκτική Πρόσβαση
pitch: Γήπεδο Αθλητισμού
+ primary: Κύρια Οδός
private: Ιδιωτική πρόσβαση
rail: Σιδηρόδρομος
resident: Κατοικημένη περιοχή
runway:
- Διάδρομος Αεροδρομίου
+ - τροχόδρομος
school:
- Σχολείο
- πανεπιστήμιο
+ secondary: Δευτερεύουσα Οδός
station: Σιδηροδρομικός σταθμός
subway: Υπόγειος σιδηρόδρομος
summit:
tourist: Τουριστικό αξιοθέατο
tram:
1: τραμ
+ tunnel: Διακεκομμένο περίβλημα = σήραγγα
wood: Φυσικό Δάσος
search:
search: Αναζήτηση
formats:
friendly: "%e %B %Y στις %H:%M"
trace:
+ create:
+ upload_trace: Αποστολή Ίχνους GPS
+ delete:
+ scheduled_for_deletion: Το ίχνος προγραμματίστηκε για διαγραφή
edit:
description: "Περιγραφή:"
download: λήψη
edit: επεξεργασία
filename: "Όνομα αρχείου:"
+ heading: Επεξεργασία ίχνους %{name}
map: χάρτης
owner: "Ιδιοκτήτης:"
points: "Σημεία:"
save_button: Αποθήκευση Αλλαγών
tags: "Ετικέτες:"
tags_help: οριοθετημένο με κόμματα
+ title: Επεξεργασία ίχνους %{name}
visibility: "Ορατότητα:"
visibility_help: τι σημαίνει αυτό;
+ list:
+ public_traces: Δημόσια ίχνη GPS
+ public_traces_from: Δημόσια ίχνη GPS από τον %{user}
+ tagged_with: σεσημασμένα με %{tags}
+ your_traces: Τα δικά σου ίχνη GPS
no_such_user:
- body: Λυπούμαστε, δεν υπάρχει κανένας χρήστης με το όνομα % {user}. Παρακαλούμε ελέγξτε την ορθογραφία, ή ίσως ο σύνδεσμος ήταν λάθος.
- heading: Ο χρήστης % {user} δεν υπάρχει
+ body: Λυπούμαστε, δεν υπάρχει κανένας χρήστης με το όνομα %{user}. Παρακαλούμε ελέγξτε την ορθογραφία, ή ίσως ο σύνδεσμος ήταν λάθος.
+ heading: Ο χρήστης %{user} δεν υπάρχει
title: Άγνωστος χρήστης
trace:
ago: "%{time_in_words_ago} πριν"
edit: επεξεργασία
edit_map: Επεξεργασία Χάρτη
map: χάρτης
+ pending: ΕΚΚΡΕΜΕΙ
private: ΙΔΙΩΤΙΚΟ
public: ΔΗΜΟΣΙΟ
view_map: Προβολή Χάρτη
tags: "Ετικέτες:"
tags_help: οριοθετημένο με κόμματα
upload_button: Αποστολή
+ upload_gpx: "Αποστολή αρχείου GPX:"
visibility: "Ορατότητα:"
visibility_help: τι σημαίνει αυτό;
trace_optionals:
previous: « Προηγούμενο
showing_page: Εμφάνιση σελίδας %{page}
view:
+ delete_track: Διαγραφή αυτού του ίχνους
description: "Περιγραφή:"
download: λήψη
edit: επεξεργασία
+ edit_track: Επεξεργασία αυτού του ίχνους
filename: "Όνομα αρχείου:"
map: χάρτης
none: Κανένα
user:
account:
contributor terms:
+ agreed: Έχεις συμφωνήσει με τους νέους Όρους Συνεισφοράς.
heading: "Όροι Συνεισφοράς:"
link text: τι είναι αυτό;
+ not yet agreed: Δεν έχεις συμφωνήσει με τους νέους Όρους Συνεισφοράς.
+ review link text: Παρακαλώ ακολούθησε αυτό το σύνδεσμο όταν μπορέσεις για να διαβάσεις και να αποδεχθείς τους νέους Όρους Συνεισφοράς.
current email address: "Τωρινή Διεύθυνση ηλεκτρονικού ταχυδρομείου:"
delete image: Αφαίρεση της τρέχουσας εικόνας
email never displayed publicly: (όχι δημόσια εμφάνιση)
keep image: Διατήρηση της τρέχουσας εικόνας
latitude: "Γεωγραφικό πλάτος:"
longitude: "Γεωγραφικό μήκος:"
+ make edits public button: Κάνε όλες τις επεξεργασίες μου δημόσιες
my settings: Οι ρυθμίσεις μου
new email address: "Νέα Διεύθυνση ηλεκτρονικού ταχυδρομείου:"
new image: Προσθήκη εικόνας
+ no home location: Δεν έχεις εισάγει την τοποθεσία του σπιτιού σου.
openid:
link text: τι είναι αυτό;
preferred editor: "Προτιμώμενο πρόγραμμα Επεξεργασίας:"
preferred languages: "Προτιμώμενες γλώσσες:"
profile description: "Περιγραφή Λογαριασμού:"
public editing:
+ disabled: Απενεργοποιήθηκε και δεν μπορείς να επεξεργαστείς δεδομένα, όλες οι προηγούμενες επεξεργασίες είναι ανώνυμες.
disabled link text: γιατί δεν μπορώ να επεξεργαστώ τον χάρτη;
- enabled: Ενεργοποιήθηκε. Δεν είστε πια ανώνυμος και μπορείτε να επεξεργαστείτε δεδομένα.
+ enabled: Ενεργοποιήθηκε. Δεν είσαι πια ανώνυμος και μπορείς να επεξεργαστείς δεδομένα.
enabled link text: τι είναι αυτό;
heading: "Δημόσια επεξεργασία:"
public editing note:
heading: "Δημόσια επεξεργασία:"
+ text: Αυτή τη στιγμή οι επεξεργασίες σου είναι ανώνυμες και δεν μπορεί κανείς να σου στείλει μήνυμα ή να δει την τοποθεσία σου. Για να δείξεις τι έχεις επεξεργαστεί και να επιτρέψεις στους άλλους έρθουν σε επαφή μαζί σου μέσω του ιστοχώρου, πάτα το κουμπί από κάτω. <b>Από την αλλαγή σε API 0.6, μόνο οι επώνυμοι χρήστες μπορούν να επεξεργαστούν δεδομένα του χάρτη.</b>. (<a href="http://wiki.openstreetmap.org/wiki/Anonymous_edits">μάθε γιατί</a>). <ul><li>Η διεύθυνσή σου ηλεκτρονικού ταχυδρομείου δεν θα αποκαλυφθεί δημόσια. </li><li> Αυτή η ενέργεια δεν μπορεί να αναιρεθεί και όλοι οι νέοι χρήστες είναι επώνυμοι εξ' αρχής.</li></ul>
replace image: Αντικατάσταση της τρέχουσας εικόνας
return to profile: Επιστροφή στο προφίλ
save changes button: Αποθήκευση Αλλαγών
already active: Αυτός ο λογαριασμός έχει ήδη επιβεβαιωθεί.
button: Επιβεβαίωση
heading: Επιβεβαίωση ενός λογαριασμού χρήστη
- press confirm button: ΠαÏ\84ήÏ\83Ï\84ε Ï\84ο κοÏ\85μÏ\80ί "Î\95Ï\80ιβεβαίÏ\89Ï\83η" για να ενεÏ\81γοÏ\80οιήÏ\83εÏ\84ε Ï\84ο λογαÏ\81ιαÏ\83μÏ\8c Ï\83αÏ\82.
- success: Î\95Ï\80ιβεβαιÏ\8eθηκε ο λογαÏ\81ιαÏ\83μÏ\8cÏ\82 Ï\83αÏ\82, Ï\83αÏ\82 εÏ\85Ï\87αÏ\81ιÏ\83Ï\84οÏ\8dμε για Ï\84ην εγγÏ\81αÏ\86ή Ï\83αÏ\82!
+ press confirm button: ΠάÏ\84α Ï\84ο κοÏ\85μÏ\80ί "Î\95Ï\80ιβεβαίÏ\89Ï\83η" για να ενεÏ\81γοÏ\80οιήÏ\83ειÏ\82 Ï\84ο λογαÏ\81ιαÏ\83μÏ\8c Ï\83οÏ\85.
+ success: Î\95Ï\80ιβεβαιÏ\8eθηκε ο λογαÏ\81ιαÏ\83μÏ\8cÏ\82 Ï\83οÏ\85, Ï\83ε εÏ\85Ï\87αÏ\81ιÏ\83Ï\84οÏ\8dμε για Ï\84ην εγγÏ\81αÏ\86ή Ï\83οÏ\85!
confirm_email:
button: Επιβεβαίωση
failure: Μια διεύθυνση ηλεκτρονικού ταχυδρομείου έχει ήδη επιβεβαιωθεί με αυτό το διακριτικό.
heading: Επιβεβαίωση αλλαγής της διεύθυνσης ηλεκτρονικού ταχυδρομείου
- press confirm button: ΠαÏ\84ήÏ\83Ï\84ε Ï\84ο κοÏ\85μÏ\80ί "Î\95Ï\80ιβεβαίÏ\89Ï\83η" Ï\80αÏ\81ακάÏ\84Ï\89 για να εÏ\80ιβεβαιÏ\8eÏ\83εÏ\84ε Ï\84η νÎα διεÏ\8dθÏ\85νÏ\83η ηλεκÏ\84Ï\81ονικοÏ\8d Ï\84αÏ\87Ï\85δÏ\81ομείοÏ\85 Ï\83αÏ\82.
- success: Î\95Ï\80ιβεβαιÏ\8eθηκε η διεÏ\8dθÏ\85νÏ\83η ηλεκÏ\84Ï\81ονικοÏ\8d Ï\84αÏ\87Ï\85δÏ\81ομείοÏ\85 Ï\83αÏ\82, Ï\83αÏ\82 εÏ\85Ï\87αÏ\81ιÏ\83Ï\84οÏ\8dμε για Ï\84ην εγγÏ\81αÏ\86ή Ï\83αÏ\82!
+ press confirm button: ΠάÏ\84α Ï\84ο κοÏ\85μÏ\80ί "Î\95Ï\80ιβεβαίÏ\89Ï\83η" Ï\80αÏ\81ακάÏ\84Ï\89 για να εÏ\80ιβεβαιÏ\8eÏ\83ειÏ\82 Ï\84η νÎα διεÏ\8dθÏ\85νÏ\83η ηλεκÏ\84Ï\81ονικοÏ\8d Ï\84αÏ\87Ï\85δÏ\81ομείοÏ\85 Ï\83οÏ\85.
+ success: Î\95Ï\80ιβεβαιÏ\8eθηκε η διεÏ\8dθÏ\85νÏ\83η ηλεκÏ\84Ï\81ονικοÏ\8d Ï\84αÏ\87Ï\85δÏ\81ομείοÏ\85 Ï\83οÏ\85, Ï\83ε εÏ\85Ï\87αÏ\81ιÏ\83Ï\84οÏ\8dμε για Ï\84ην εγγÏ\81αÏ\86ή Ï\83οÏ\85!
confirm_resend:
failure: Ο χρήστης %{name} δεν βρέθηκε.
filter:
- not_an_administrator: Πρέπει να είστε διαχειριστής για να το κάνετε αυτό.
+ not_an_administrator: Πρέπει να είσαι διαχειριστής για να το κάνεις αυτό.
go_public:
- flash success: Î\8cλεÏ\82 οι εÏ\80εξεÏ\81γαÏ\83ίεÏ\82 Ï\83αÏ\82 είναι Ï\84Ï\8eÏ\81α δημÏ\8cÏ\83ιεÏ\82 και ÎÏ\87εÏ\84ε Ï\84η δÏ\85ναÏ\84Ï\8cÏ\84ηÏ\84α να εÏ\80εξεÏ\81γαÏ\83Ï\84είÏ\84ε τον χάρτη.
+ flash success: Î\8cλεÏ\82 οι εÏ\80εξεÏ\81γαÏ\83ίεÏ\82 Ï\83οÏ\85 είναι Ï\84Ï\8eÏ\81α δημÏ\8cÏ\83ιεÏ\82 και ÎÏ\87ειÏ\82 Ï\84η δÏ\85ναÏ\84Ï\8cÏ\84ηÏ\84α να εÏ\80εξεÏ\81γαÏ\83Ï\84είÏ\82 τον χάρτη.
list:
confirm: Επιβεβαίωση επιλεγμένων χρηστών
heading: Χρήστες
summary_no_ip: "%{name} δημιουργήθηκε στις %{date}"
title: Χρήστες
login:
- account not active: Λυπόμαστε, ο λογαριασμός σας δεν είναι ενεργός ακόμα.<br />Παρακαλούμε χρησιμοποιήστε το σύνδεσμο στο email επιβεβαίωσης για να ενεργοποιήσετε το λογαριασμό σας, ή <a href="%{reconfirm}">κάντε αίτηση νέου email επιβεβαίωσης</a>.
- account suspended: Συγνώμη, ο λογαριασμός σας έχει ανασταλεί λόγω ύποπτης δραστηριότητας.<br />Εάν επιθυμείτε, επικοινωνήστε με τον %{webmaster} για να το συζητήσουμε αυτό το θέμα.
- auth failure: Λυπόμαστε, αλλά δεν μπορούσαμε να σας συνδέσουμε με αυτές τις λεπτομέρειες.
- create account minute: Δημιουργήστε λογαριασμό. Παίρνει μόνο ένα λεπτό.
+ account not active: Λυπάμαι, ο λογαριασμός σου δεν είναι ενεργός ακόμα.<br />Παρακαλώ χρησιμοποίησε το σύνδεσμο στο email επιβεβαίωσης για να ενεργοποιήσεις το λογαριασμό σου, ή <a href="%{reconfirm}">κάνε αίτηση νέου email επιβεβαίωσης</a>.
+ auth failure: Λυπάμαι, δεν μπορείς να συνδεθείς με αυτές τις λεπτομέρειες.
+ create account minute: Δημιούργησε λογαριασμό. Παίρνει μόνο ένα λεπτό.
email or username: "Διεύθυνση ηλεκτρονικού ταχυδρομείου ή Όνομα χρήστη:"
heading: Είσοδος
login_button: Είσοδος
- lost password link: Î\9eεÏ\87άÏ\83αÏ\84ε Ï\84ον κÏ\89δικÏ\8c;
+ lost password link: Î\88Ï\87αÏ\83εÏ\82 Ï\84ον κÏ\89δικÏ\8c Ï\83οÏ\85;
new to osm: Νέος στο OpenStreetMap;
+ notice: <a href="http://www.osmfoundation.org/wiki/License/We_Are_Changing_The_License">Μάθε περισσότερα σχετικά με την επερχόμενη αλλαγή άδειας του OpenStreetMap</a> (<a href="http://wiki.openstreetmap.org/wiki/ODbL/We_Are_Changing_The_License">μεταφράσεις</a>) (<a href="http://wiki.openstreetmap.org/wiki/Talk:ODbL/Upcoming">συζήτηση</a>)
+ notice_terms: Το OpenStreetMap μετακινείται σε νέα άδεια την 1η Απριλίου 2012. Είναι το ίδιο ανοιχτή όπως η υπάρχουσα, αλλά τα νομικά σημεία ταιριάζουν καλύτερα στη βάση δεδομένων του χάρτη. Θα θέλαμε πολύ να διατηρηθούν οι συνεισφορές σου στο OpenStreetMap, αλλά μπορούμε να το επιτύχουμε μόνο αν συμφωνείς να διανέμονται υπό τη νέα άδεια. Διαφορετικά, θα πρέπει να αφαιρεθούν από τη βάση δεδομένων.<br><br>Παρακαλούμε συνδέσου και στη συνέχεια αφιέρωσε μερικά δευτερόλεπτα για να διαβάσεις και να αποδεχτείς τους νέους όρους. Ευχαριστούμε!
+ openid missing provider: Λυπάμαι, δεν μπορώ να έρθω σε επαφή με τον πάροχο σας OpenID
openid_logo_alt: Σύνδεση με ένα OpenID
openid_providers:
aol:
register now: Εγγραφή
remember: "Αποθήκευση:"
title: Είσοδος
- to make changes: Για να κάνετε αλλαγές στα δεδομένα του OpenStreetMap, πρέπει να έχετε λογαριασμό.
+ to make changes: Για να κάνεις αλλαγές στα δεδομένα του OpenStreetMap, πρέπει να έχεις λογαριασμό.
logout:
heading: Έξοδος από το OpenStreetMap
logout_button: Έξοδος
title: Έξοδος
lost_password:
email address: "Διεύθυνση ηλεκτρονικού ταχυδρομείου:"
- heading: Î\9eεÏ\87άÏ\83αÏ\84ε Ï\84ον κÏ\89δικÏ\8c Ï\83αÏ\82;
- help_text: Πληκτρολογήστε τη διεύθυνση ηλεκτρονικού ταχυδρομείου που χρησιμοποιήσατε για να εγγραφείτε, θα στείλουμε ένα σύνδεσμο, ότι μπορείτε να χρησιμοποιήσετε για να επαναφέρετε τον κωδικό πρόσβασής σας.
+ heading: Î\9eÎÏ\87αÏ\83εÏ\82 Ï\84ον κÏ\89δικÏ\8c Ï\83οÏ\85;
+ help_text: Πληκτρολόγησε τη διεύθυνση ηλεκτρονικού ταχυδρομείου που χρησιμοποίησες για να εγγραφείς, θα στείλουμε ένα σύνδεσμο, όπου μπορείς να χρησιμοποιήσεις για να επαναφέρεις τον κωδικό σου.
new password button: Επαναφορά κωδικού
- notice email cannot find: Λυπόμαστε, δεν βρέθηκε αυτή η διεύθυνση ηλεκτρονικού ταχυδρομείου.
- notice email on way: Λυπάμαι που τον χάσατε:-(, αλλά ένα μήνυμα ηλεκτρονικού ταχυδρομείου βρίσκεται στο δρόμο, ώστε να μπορείτε να τον επαναφέρετε σύντομα.
- title: ΧάÏ\83αÏ\84ε Ï\84Ï\89ν κÏ\89δικÏ\8c Ï\83αÏ\82
+ notice email cannot find: Λυπάμαι, δεν βρέθηκε αυτή η διεύθυνση ηλεκτρονικού ταχυδρομείου.
+ notice email on way: Λυπάμαι που τον έχασες:-(, αλλά ένα μήνυμα ηλεκτρονικού ταχυδρομείου βρίσκεται στο δρόμο, ώστε να μπορέσεις να τον επαναφέρεις σύντομα.
+ title: Î\88Ï\87αÏ\83εÏ\82 Ï\84ον κÏ\89δικÏ\8c Ï\83οÏ\85
make_friend:
already_a_friend: Είστε ήδη φίλοι με τον χρήστη %{name}.
failed: Λυπούμαστε, απέτυχε η προσθήκη του χρήστη %{name} ως φίλο.
- success: Î\9f Ï\87Ï\81ήÏ\83Ï\84ηÏ\82 %{name} είναι Ï\84Ï\8eÏ\81α Ï\86ίλοÏ\82 Ï\83αÏ\82.
+ success: Î\9f Ï\87Ï\81ήÏ\83Ï\84ηÏ\82 %{name} είναι Ï\84Ï\8eÏ\81α Ï\86ίλοÏ\82 Ï\83οÏ\85.
new:
confirm email address: "Επιβεβαιώση Διεύθυνσης ηλεκτρονικού ταχυδρομείου:"
confirm password: "Επιβεβαίωση Κωδικού:"
continue: Συνέχεια
display name: "Εμφανιζόμενο όνομα:"
email address: "Διεύθυνση ηλεκτρονικού ταχυδρομείου:"
+ fill_form: Συμπλήρωσε τη φόρμα και θα σου στείλουμε ένα γρήγορο email για να ενεργοποιήσεις το λογαριασμό σου.
heading: Δημιουργία Λογαριασμού Χρήστη
- license_agreement: Όταν επιβεβαιώσετε το λογαριασμό σας, θα πρέπει να συμφωνείσετε με τους <a href="http://www.osmfoundation.org/wiki/License/Contributor_Terms">όρους συνεισφοράς</a>.
+ license_agreement: Όταν επιβεβαιώσεις το λογαριασμό σου, θα πρέπει να συμφωνήσεις με τους <a href="http://www.osmfoundation.org/wiki/License/Contributor_Terms">όρους συνεισφοράς</a>.
+ not displayed publicly: Να μην εμφανίζεται δημόσια (δες την <a href="http://wiki.openstreetmap.org/wiki/Privacy_Policy" title="wiki privacy policy including section on email addresses">πολιτική απορρήτου</a>)
password: "Κωδικός:"
- terms accepted: Σας ευχαριστούμε για την αποδοχή των νέων όρων συνεισφοράς!
+ terms accepted: Ευχαριστούμε για την αποδοχή των νέων όρων συνεισφοράς!
+ terms declined: Λυπούμαστε για το ότι αποφάσισες να μην αποδεχθείς τους νέους όρους συνεισφοράς. Για περισσότερες πληροφορίες, παρακαλούμε δες <a href="%{url}">αυτήν τη σελίδα wiki</a>.
title: Δημιουργία λογαριασμού
no_such_user:
- body: ΣÏ\85γγνÏ\8eμη, δεν Ï\85Ï\80άÏ\81Ï\87ει Ï\87Ï\81ήÏ\83Ï\84ηÏ\82 με Ï\84ο Ï\8cνομα %{user}. Î\95ίναι Ï\80ιθανÏ\8c να Ï\85Ï\80άÏ\81Ï\87οÏ\85ν οÏ\81θογÏ\81αÏ\86ικά λάθη ή να είναι λάθοÏ\82 ο Ï\83Ï\8dνδεÏ\83μοÏ\82 μÎÏ\83ο Ï\84οÏ\85 οÏ\80ίοÏ\85 Ï\86Ï\84άÏ\83αÏ\84ε σε αυτήν την σελίδα.
+ body: Î\9bÏ\85Ï\80άμαι, δεν Ï\85Ï\80άÏ\81Ï\87ει Ï\87Ï\81ήÏ\83Ï\84ηÏ\82 με Ï\84ο Ï\8cνομα %{user}. Î\95ίναι Ï\80ιθανÏ\8c να Ï\85Ï\80άÏ\81Ï\87οÏ\85ν οÏ\81θογÏ\81αÏ\86ικά λάθη ή να είναι λάθοÏ\82 ο Ï\83Ï\8dνδεÏ\83μοÏ\82 μÎÏ\83ο Ï\84οÏ\85 οÏ\80οίοÏ\85 ÎÏ\86Ï\84αÏ\83εÏ\82 σε αυτήν την σελίδα.
heading: Ο χρήστης %{user} δεν υπάρχει
title: Άγνωστος χρήστης
popup:
friend: Φίλος
nearby mapper: Κοντινός χαρτογράφος
- your location: Î\97 Ï\84οÏ\80οθεÏ\83ία Ï\83αÏ\82
+ your location: Î\97 Ï\84οÏ\80οθεÏ\83ία Ï\83οÏ\85
remove_friend:
- not_a_friend: Î\9f Ï\87Ï\81ήÏ\83Ï\84ηÏ\82 %{name} δεν είναι ÎναÏ\82 αÏ\80Ï\8c Ï\84οÏ\85Ï\82 Ï\86ίλοÏ\85Ï\82 Ï\83αÏ\82.
+ not_a_friend: Î\9f Ï\87Ï\81ήÏ\83Ï\84ηÏ\82 %{name} δεν είναι ÎναÏ\82 αÏ\80Ï\8c Ï\84οÏ\85Ï\82 Ï\86ίλοÏ\85Ï\82 Ï\83οÏ\85.
success: Ο χρήστης %{name} καταργήθηκε από φίλος.
reset_password:
confirm password: "Επιβεβαίωση Κωδικού:"
- flash changed: Î\9f κÏ\89δικÏ\8cÏ\82 Ï\83αÏ\82 ÎÏ\87ει αλλάξει.
+ flash changed: Î\9f κÏ\89δικÏ\8cÏ\82 Ï\83οÏ\85 αλλάÏ\87Ï\84ηκε.
heading: Επαναφορά Κωδικού για τον χρήστη %{user}
password: "Κωδικός:"
reset: Επαναφορά Κωδικού
title: Επαναφορά κωδικού
+ set_home:
+ flash success: Η τοποθεσία σπιτιού αποθηκεύτηκε επιτυχώς
suspended:
- body: "<p>\nΣÏ\85γνÏ\8eμη, ο λογαÏ\81ιαÏ\83μÏ\8cÏ\82 Ï\83αÏ\82 ÎÏ\87ει αÏ\85Ï\84Ï\8cμαÏ\84α αναÏ\83Ï\84αλεί λÏ\8cγÏ\89\nÏ\8dÏ\80οÏ\80Ï\84ηÏ\82 δÏ\81αÏ\83Ï\84ηÏ\81ιÏ\8cÏ\84ηÏ\84αÏ\82.\n</p>\n<p>\nÎ\97 Ï\80αÏ\81οÏ\8dÏ\83α αÏ\80Ï\8cÏ\86αÏ\83η θα εξεÏ\84αÏ\83Ï\84εί αÏ\80Ï\8c Îνα διαÏ\87ειÏ\81ιÏ\83Ï\84ή Ï\83Ï\8dνÏ\84ομα, ή\nμÏ\80οÏ\81είÏ\84ε να εÏ\80ικοινÏ\89νήÏ\83εÏ\84ε με Ï\84ον %{webmaster} αν θÎλεÏ\84ε να συζητήσετε αυτό το θέμα.\n</p>"
+ body: "<p>\nÎ\9bÏ\85Ï\80άμαι, ο λογαÏ\81ιαÏ\83μÏ\8cÏ\82 Ï\83οÏ\85 ÎÏ\87ει αÏ\85Ï\84Ï\8cμαÏ\84α αναÏ\83Ï\84αλεί λÏ\8cγÏ\89\nÏ\8dÏ\80οÏ\80Ï\84ηÏ\82 δÏ\81αÏ\83Ï\84ηÏ\81ιÏ\8cÏ\84ηÏ\84αÏ\82.\n</p>\n<p>\nÎ\97 Ï\80αÏ\81οÏ\8dÏ\83α αÏ\80Ï\8cÏ\86αÏ\83η θα εξεÏ\84αÏ\83Ï\84εί αÏ\80Ï\8c Îνα διαÏ\87ειÏ\81ιÏ\83Ï\84ή Ï\83Ï\8dνÏ\84ομα, ή\nμÏ\80οÏ\81είÏ\82 να εÏ\80ικοινÏ\89νήÏ\83ειÏ\82 με Ï\84ον %{webmaster} αν θÎλειÏ\82 να συζητήσετε αυτό το θέμα.\n</p>"
heading: Ο Λογαριασμός έχει Ανασταλεί
title: Ο Λογαριασμός έχει Ανασταλεί
terms:
france: Γαλλία
italy: Ιταλία
rest_of_world: Υπόλοιπος κόσμος
- legale_select: "Î\95Ï\80ιλÎξÏ\84ε Ï\84η Ï\87Ï\8eÏ\81α καÏ\84οικίαÏ\82 Ï\83αÏ\82:"
+ legale_select: "ΠαÏ\81ακαλÏ\8e εÏ\80Îλεξε Ï\84η Ï\87Ï\8eÏ\81α καÏ\84οικίαÏ\82 Ï\83οÏ\85:"
title: Όροι συνεισφοράς
+ you need to accept or decline: Παρακαλώ διάβασε και αποδέξου ή απέρριψε τους νέους Όρους Συνεισφοράς για να συνεχίσεις.
view:
activate_user: ενεργοποίηση αυτού του λογαριασμού χρήστη
add as friend: προσθήκη ως φίλος
ago: (%{time_in_words_ago} πριν)
+ block_history: εμφάνιση φραγών που λήφθηκαν
+ blocks by me: φραγές από εμένα
+ blocks on me: φραγές σε εμένα
confirm: Επιβεβαίωση
confirm_user: επιβεβαίωση αυτού το χρήστη
create_block: φραγή αυτού του χρήστη
created from: "Δημιουργήθηκε από:"
+ ct accepted: Αποδοχή %{ago} πριν
+ ct declined: Απόρριψη
+ ct status: "Όροι Συνεισφοράς:"
+ ct undecided: Αναποφάσιστος
deactivate_user: απενεργοποίηση αυτού του λογαριασμού χρήστη
delete_user: διαγραφή αυτού του χρήστη
description: Περιγραφή
diary: ημερολόγιο
edits: επεξεργασίες
email address: "Διεύθυνση ηλεκτρονικού ταχυδρομείου:"
+ friends_changesets: Εμφάνιση όλων των ομάδων αλλαγών από φίλους
+ friends_diaries: Εμφάνιση όλων των καταχωρήσεων ημερολογίου από φίλους
hide_user: απόκρυψη αυτού του χρήστη
km away: "%{count}χλμ μακριά"
latest edit: "Τελευταία επεξεργασία %{ago}:"
m away: "%{count}μ μακριά"
mapper since: "Χαρτογράφος από:"
+ moderator_history: εμφάνιση φραγών που δόθηκαν
my diary: το ημερολόγιό μου
my edits: οι επεξεργασίες μου
my settings: οι ρυθμίσεις μου
my traces: τα ίχνη μου
nearby users: Άλλοι κοντινοί χρήστες
+ nearby_changesets: Εμφάνιση όλων των ομάδων αλλαγών από κοντινούς χρήστες
+ nearby_diaries: Εμφάνιση όλων των καταχωρήσεων ημερολογίου από κοντινούς χρήστες
new diary entry: νέα καταχώρηση ημερολογίου
- no friends: Δεν έχετε προσθέσει φίλους ακόμα.
- no nearby users: Î\94εν Ï\85Ï\80άÏ\81Ï\87οÏ\85ν άλλοι Ï\87Ï\81ήÏ\83Ï\84εÏ\82 Ï\80οÏ\85 Ï\80αÏ\81αδÎÏ\87ονÏ\84αι Ï\8cÏ\84ι Ï\87αÏ\81Ï\84ογÏ\81αÏ\86οÏ\8dν κονÏ\84ά Ï\83αÏ\82 προς το παρόν.
+ no friends: Δεν έχεις προσθέσει φίλους ακόμα.
+ no nearby users: Î\94εν Ï\85Ï\80άÏ\81Ï\87οÏ\85ν άλλοι Ï\87Ï\81ήÏ\83Ï\84εÏ\82 Ï\80οÏ\85 Ï\80αÏ\81αδÎÏ\87ονÏ\84αι Ï\8cÏ\84ι Ï\87αÏ\81Ï\84ογÏ\81αÏ\86οÏ\8dν κονÏ\84ά Ï\83οÏ\85 προς το παρόν.
oauth settings: ρυθμίσεις oauth
remove as friend: αφαίρεση από φίλος
role:
status: "Κατάσταση:"
unhide_user: επανεμφάνιση αυτού του χρήστη
user location: Τοποθεσία χρήστη
- your friends: Î\9fι Ï\86ίλοι Ï\83αÏ\82
+ your friends: Î\9fι Ï\86ίλοι Ï\83οÏ\85
user_block:
+ blocks_by:
+ empty: Ο %{name} δεν έχει κάνει φραγή ακόμα.
+ heading: Κατάλογος φραγών από τον %{name}
+ title: Φραγές από τον %{name}
blocks_on:
+ empty: Ο %{name} δεν έχει φραχτεί ακόμα.
heading: Κατάλογος φραγών στον %{name}
title: Φραγές στον %{name}
edit:
back: Προβολή όλων των φραγών
+ heading: Επεξεργασία φραγής στον %{name}
+ show: Προβολή αυτής της φραγής
+ title: Επεξεργασία φραγής στον %{name}
helper:
time_future: Τελειώνει σε %{time}.
- time_past: ΤελείÏ\89Ï\83η %{time} πριν.
+ time_past: ΤελείÏ\89Ï\83ε %{time} πριν.
until_login: Ενεργό έως ότου ο χρήστης συνδεθεί.
new:
back: Προβολή όλων των φραγών
+ heading: Δημιουργία φραγής στον %{name}
+ submit: Δημιουργία φραγής
+ title: Δημιουργία φραγής στον %{name}
+ not_found:
+ back: Πίσω στο ευρετήριο
partial:
- confirm: Είστε σίγουροι;
+ confirm: Είσαι σίγουρος;
creator_name: Δημιουργός
+ display_name: Υπό Φραγή Χρήστης
edit: Επεξεργασία
not_revoked: (δεν έχει ανακληθεί)
reason: Αιτία φραγής
back: Προβολή όλων των φραγών
confirm: Είσαι σίγουρος?
edit: Επεξεργασία
+ heading: Ο %{block_on} έχει φραχτεί από τον %{block_by}
reason: "Αιτία φραγής:"
revoke: Ανάκληση!
show: Εμφάνιση
status: Κατάσταση
time_future: Τελειώνει σε %{time}
time_past: Τελείωσε %{time} πριν
+ title: Ο %{block_on} έχει φραχτεί από τον %{block_by}
user_role:
filter:
already_has_role: Ο χρήστης έχει ήδη ρόλο %{role}.
doesnt_have_role: Ο χρήστης δεν έχει ρόλο %{role}.
grant:
- are_you_sure: Είστε βέβαιοι ότι θέλετε να εκχωρήσετε το ρόλο `%{role}' στον χρήστη `%{name}'?
+ are_you_sure: Είσαι βέβαιος ότι θέλεις να εκχωρήσεις το ρόλο `%{role}' στον χρήστη `%{name}'?
confirm: Επιβεβαίωση
heading: Επιβεβαίωση χορήγησης ρόλου
title: Επιβεβαίωση χορήγησης ρόλου
+++ /dev/null
-en-AU:
- dummy: dummy
+++ /dev/null
-en-GB:
- dummy: dummy
+++ /dev/null
-en-US:
- dummy: dummy
title_bbox: "Changesets within %{bbox}"
title_user_bbox: "Changesets by %{user} within %{bbox}"
title_friend: "Changesets by your friends"
-
+ title_nearby: "Changesets by nearby users"
heading: "Changesets"
heading_user: "Changesets"
heading_bbox: "Changesets"
heading_user_bbox: "Changesets"
heading_friend: "Changesets"
-
+ heading_nearby: "Changesets"
description: "Recent changes"
description_user: "Changesets by %{user}"
description_bbox: "Changesets within %{bbox}"
description_user_bbox: "Changesets by %{user} within %{bbox}"
description_friend: "Changesets by your friends"
+ description_nearby: "Changesets by nearby users"
timeout:
sorry: "Sorry, the list of changesets you requested took too long to retrieve."
diary_entry:
title: New Diary Entry
list:
title: "Users' diaries"
+ title_friends: "Friends' diaries"
+ title_nearby: "Nearby Users' diaries"
user_title: "%{user}'s diary"
in_language_title: "Diary Entries in %{language}"
new: New Diary Entry
all:
title: "OpenStreetMap diary entries"
description: "Recent diary entries from users of OpenStreetMap"
+ comments:
+ has_commented_on: "%{display_name} has commented on the following diary entries"
+ post: Post
+ when: When
+ comment: Comment
+ ago: %{ago} ago
+ newer_comments: "Newer Comments"
+ older_comments: "Older Comments"
export:
start:
area_to_export: "Area to Export"
manually_select: "Manually select a different area"
format_to_export: "Format to Export"
osm_xml_data: "OpenStreetMap XML Data"
- mapnik_image: "Mapnik Image"
- osmarender_image: "Osmarender Image"
+ map_image: "Map Image (shows standard layer)"
embeddable_html: "Embeddable HTML"
licence: "Licence"
export_details: 'OpenStreetMap data is licensed under the <a href="http://creativecommons.org/licenses/by-sa/2.0/">Creative Commons Attribution-ShareAlike 2.0 license</a>.'
foundation_title: The OpenStreetMap Foundation
sotm2011: 'Come to the 2011 OpenStreetMap Conference, The State of the Map, September 9-11th in Denver!'
license:
- alt: CC by-sa 2.0
+ alt: CC BY-SA 2.0
title: OpenStreetMap data is licensed under the Creative Commons Attribution-Share Alike 2.0 Generic License
make_a_donation:
title: Support OpenStreetMap with a monetary donation
<p>
OpenStreetMap is <i>open data</i>, licensed under the <a
href="http://creativecommons.org/licenses/by-sa/2.0/">Creative
- Commons Attribution-ShareAlike 2.0</a> licence (CC-BY-SA).
+ Commons Attribution-ShareAlike 2.0</a> licence (CC BY-SA).
</p>
<p>
You are free to copy, distribute, transmit and adapt our maps
<p>
If you are using OpenStreetMap map images, we request that
your credit reads at least “© OpenStreetMap
- contributors, CC-BY-SA”. If you are using map data only,
+ contributors, CC BY-SA”. If you are using map data only,
we request “Map data © OpenStreetMap contributors,
- CC-BY-SA”.
+ CC BY-SA”.
</p>
<p>
Where possible, OpenStreetMap should be hyperlinked to <a
href="http://www.openstreetmap.org/">http://www.openstreetmap.org/</a>
- and CC-BY-SA to <a
+ and CC BY-SA to <a
href="http://creativecommons.org/licenses/by-sa/2.0/">http://creativecommons.org/licenses/by-sa/2.0/</a>. If
you are using a medium where links are not possible (e.g. a
printed work), we suggest you direct your readers to
<h3>Our contributors</h3>
<p>
- Our CC-BY-SA licence requires you to “give the Original
+ Our CC BY-SA licence requires you to “give the Original
Author credit reasonable to the medium or means You are
utilising”. Individual OSM mappers do not request a
credit over and above that to “OpenStreetMap
on Australian Bureau of Statistics data.</li>
<li><strong>Austria</strong>: Contains data from
<a href="http://data.wien.gv.at/">Stadt Wien</a> under
- <a href="http://creativecommons.org/licenses/by/3.0/at/deed.de">CC-BY</a>.</li>
+ <a href="http://creativecommons.org/licenses/by/3.0/at/deed.de">CC BY</a>.</li>
<li><strong>Canada</strong>: Contains data from
GeoBase®, GeoGratis (© Department of Natural
Resources Canada), CanVec (© Department of Natural
Land Information New Zealand. Crown Copyright reserved.</li>
<li><strong>Poland</strong>: Contains data from <a
href="http://ump.waw.pl/">UMP-pcPL maps</a>. Copyright
- UMP-pcPL contributors.</li>
+ UMP-pcPL contributors.
+ <a href="http://wiki.openstreetmap.org/wiki/UMP2OSM_Importing">
+ More about OSM's use of UMP data</a></li>
+ <li><strong>South Africa</strong>: Contains data sourced from
+ <a href="http://www.ngi.gov.za/">Chief Directorate:
+ National Geo-Spatial Information</a>, State copyright reserved.</li>
<li><strong>United Kingdom</strong>: Contains Ordnance
Survey data © Crown copyright and database right
2010.</li>
title: "Inbox"
my_inbox: "My inbox"
outbox: "outbox"
- you_have: "You have %{new_count} new messages and %{old_count} old messages"
+ messages: "You have %{new_messages} and %{old_messages}"
+ new_messages:
+ one: "%{count} new message"
+ other: "%{count} new messages"
+ old_messages:
+ one: "%{count} old message"
+ other: "%{count} old messages"
from: "From"
subject: "Subject"
date: "Date"
my_inbox: "My %{inbox_link}"
inbox: "inbox"
outbox: "outbox"
- you_have_sent_messages: "You have %{count} sent messages"
+ messages:
+ one: "You have %{count} sent message"
+ other: "You have %{count} sent messages"
to: "To"
subject: "Subject"
date: "Date"
email or username: "Email Address or Username:"
password: "Password:"
openid: "%{logo} OpenID:"
- remember: "Remember me:"
+ remember: "Remember me"
lost password link: "Lost your password?"
login_button: "Login"
register now: Register now
new to osm: New to OpenStreetMap?
to make changes: To make changes to the OpenStreetMap data, you must have an account.
create account minute: Create an account. It only takes a minute.
+ no account: Don't have an account?
account not active: "Sorry, your account is not active yet.<br />Please use the link in the account confirmation email to activate your account, or <a href=\"%{reconfirm}\">request a new confirmation email</a>."
- account suspended: Sorry, your account has been suspended due to suspicious activity.<br />Please contact the %{webmaster} if you wish to discuss this.
- webmaster: webmaster
+ account is suspended: Sorry, your account has been suspended due to suspicious activity.<br />Please contact the <a href="%{webmaster}">webmaster</a> if you wish to discuss this.
auth failure: "Sorry, could not log in with those details."
notice: "<a href=\"http://www.osmfoundation.org/wiki/License/We_Are_Changing_The_License\">Find out more about OpenStreetMap's upcoming license change</a> (<a href=\"http://wiki.openstreetmap.org/wiki/ODbL/We_Are_Changing_The_License\">translations</a>) (<a href=\"http://wiki.openstreetmap.org/wiki/Talk:ODbL/Upcoming\">discussion</a>)"
notice_terms: "OpenStreetMap is moving to a new licence on 1st April 2012. It's just as open as our current one, but the legal bits are much better suited to our map database. We'd love to keep your contributions in OpenStreetMap, but we can only do so if you agree to let us distribute them under the new licence. Otherwise, we'll have to remove them from the database.<br /><br />Please log in, then take a few seconds to review and accept the new terms. Thank you!"
my traces: my traces
my notes: my map notes
my settings: my settings
+ my comments: my comments
oauth settings: oauth settings
blocks on me: blocks on me
blocks by me: blocks by me
moderator: "Revoke moderator access"
block_history: "view blocks received"
moderator_history: "view blocks given"
+ comments: "comments"
create_block: "block this user"
activate_user: "activate this user"
deactivate_user: "deactivate this user"
delete_user: "delete this user"
confirm: "Confirm"
friends_changesets: "Browse all changesets by friends"
+ friends_diaries: "Browse all diary entries by friends"
+ nearby_changesets: "Browse all changesets by nearby users"
+ nearby_diaries: "Browse all diary entries by nearby users"
popup:
your location: "Your location"
nearby mapper: "Nearby mapper"
javascripts:
map:
base:
- mapnik: Mapnik
- osmarender: Osmarender
+ standard: Standard
cycle_map: Cycle Map
transport_map: Transport Map
mapquest: MapQuest Open
licence: Permesilo
longitude: "Lon:"
manually_select: Mane elekti alian aeron.
- mapnik_image: Mapnik Bildo
max: maks
options: Opcioj
osm_xml_data: XML datumoj de OpenStreetMap
- osmarender_image: Osmarender bildo
output: Eliro
scale: Skalo
zoom: Zomi
date: Dato
my_inbox: Mia leterkesto
title: Alvenkesto
- you_have: Vi havas %{new_count} novajn mesaĝojn kaj %{old_count} malnovajn mesaĝojn
mark:
as_read: Mesaĝo markita kiel legita
as_unread: Mesaĝo markita kiel nelegita
date: Dato
inbox: Alvenkesto
my_inbox: Mia %{inbox_link}
- you_have_sent_messages:
- one: Vi havas 1 mesaĝon
- other: Vi havas %{count} mesaĝojn
read:
back_to_inbox: Reen al mesaĝejo
date: Dato
no_such_user:
body: Bedaŭrinde, ne ekzistas uzanto nomita %{user}. Bonvolu kontroli la literumadon aŭ la ligon kion vi sekvis.
heading: La uzanto %{user} ne ekzistas
- title: La uzanto %{user} ne ekzistas
trace:
ago: Antaŭ %{time_in_words_ago}
by: de
+++ /dev/null
-es-AR:
- dummy: dummy
+++ /dev/null
-es-CL:
- dummy: dummy
+++ /dev/null
-es-CO:
- dummy: dummy
+++ /dev/null
-es-MX:
- dummy: dummy
+++ /dev/null
-es-PE:
- dummy: dummy
# Messages for Spanish (Español)
# Exported from translatewiki.net
# Export driver: syck-pecl
+# Author: Armando-Martin
# Author: Crazymadlover
# Author: Johnarupire
# Author: Jynus
list:
description: Cambios recientes
description_bbox: Conjunto de cambios dentro de %{bbox}
+ description_friend: Conjuntos de cambios realizados por vuestros amigos
+ description_nearby: Conjuntos de cambios realizados por usuarios cercanos
description_user: Conjunto de cambios por %{user}
description_user_bbox: Conjunto de cambios por %{user} dentro de %{bbox}
heading: Conjuntos de cambios
heading_bbox: Conjuntos de cambios
+ heading_friend: Conjuntos de cambios
+ heading_nearby: Conjuntos de cambios
heading_user: Conjuntos de cambios
heading_user_bbox: Conjuntos de cambios
title: Conjuntos de cambios
title_bbox: Conjunto de cambios dentro de %{bbox}
+ title_friend: Conjuntos de cambios realizados por vuestros amigos
+ title_nearby: Conjuntos de cambios realizados por usuarios cercanos
title_user: Conjunto de cambios por %{user}
title_user_bbox: Conjunto de cambios por %{user} dentro de %{bbox}
timeout:
older_entries: Entradas más antiguas
recent_entries: "Entradas recientes en el diario:"
title: Diarios de usuarios
+ title_friends: Diarios de amigos
+ title_nearby: Diarios de usuarios cercanos
user_title: Diario de %{user}
location:
edit: Editar
licence: Licencia
longitude: "Lon:"
manually_select: Seleccionar a mano otra área
- mapnik_image: Imagen de Mapnik
max: max
options: Opciones
osm_xml_data: Datos formato OpenStreetMap XML
- osmarender_image: Imagen de Osmarender
output: Resultado
paste_html: HTML para empotrar en otro sitio web
scale: Escala
veterinary: Clínica veterinaria
village_hall: Sala del pueblo
waste_basket: Papelera
- wifi: Acceso a Internet inalámbrico
+ wifi: Acceso WiFi
youth_centre: Centro juvenil
boundary:
administrative: Frontera administrativa
english_link: el original en Inglés
text: En el caso de un conflicto entre esta página traducida y %{english_original_link}, la versión inglesa prevalecerá
title: Acerca de esta traducción
- legal_babble: "<h2>Derechos de autor y licencia</h2>\n<p>\n OpenStreetMap es <i>Open Data</i> (datos abiertos), con licencia <a\n href=\"http://creativecommons.org/licenses/by-sa/2.0/deed.es\">Creative Commons Reconocimiento- Compartir bajo la misma licencia 2.0</a> (CC-BY-SA).\n</p>\n<p>\n Puedes copiar, distribuir, transmitir y adaptar nuestros mapas e información libremente siempre y cuando des reconocimiento a OpenStreetMap y sus colaboradores. Si alteras o generas contenido sobre nuestros mapas e información, podrás distribuir estos cambios bajo la misma licencia. El <a href=\"http://creativecommons.org/licenses/by-sa/2.0/legalcode\">código legal completo</a> explica tus derechos y obligaciones.\n</p>\n\n<h3>Cómo dar reconocimiento a OpenStreetMap</h3>\n<p>\n Si usas imágenes de mapas de OpenStreetMap, solicitamos que tu texto dándonos reconocimiento se lea al menos así: “© Colaboradores de OpenStreetMap, CC-BY-SA”. Si sólo utilizas información del mapa, solicitamos que muestres “Información del mapa © Colaboradores de OpenstreetMap, CC-BY-SA”.\n</p>\n<p>\n Donde sea posible, OpenStreetMap debería vincularse a <a\n href=\"http://www.openstreetmap.org/\">http://www.openstreetmap.org/</a>\n y CC-BY-SA a <a\n href=\"http://creativecommons.org/licenses/by-sa/2.0/\">http://creativecommons.org/licenses/by-sa/2.0/</a>. Si estás usando un medio donde los enlaces no son posibles (como es el caso de obras impresas), te sugerimos que dirigas a tus lectores a www.openstreetmap.org (por ejemplo, expandiendo ‘OpenStreetMap’ a su dirección completa) y a www.creativecommons.org.\n</p>\n\n<h3>Para saber más...</h3>\n<p>\n Encontrarás más información acerca de cómo utilizar nuestros datos en <a\n href=\"http://wiki.openstreetmap.org/wiki/Legal_FAQ\">Preguntas y respuestas legales</a> (en inglés).\n</p>\n<p>\n Se le recuerda a los colaboradores de OSM que no deberán añadir información procedente de ninguna fuente con derechos de autor reservados (como por ejemplo de Google Maps o mapas impresos) sin el consentimiento explícito de los poseedores de los derechos de autor.\n</p>\n<p>\n A pesar de que OpenStreetMap es contenido abierto, no podemos proveer una API de mapas gratuita para desarrolladores de aplicaciones para terceros.\n\n Por favor, lee nuestra <a href=\"http://wiki.openstreetmap.org/wiki/API_usage_policy\">Política de uso del API</a> (en inglés),\n <a href=\"http://wiki.openstreetmap.org/wiki/Tile_usage_policy\">Política de uso de <i>tiles</i></a> (en inglés)\n y <a href=\"http://wiki.openstreetmap.org/wiki/Nominatim#Usage_Policy\">Políticas de uso de Nominatim</a> (en inglés también).\n</p>\n\n<h3>Nuestros colaboradores</h3>\n<p>\n Nuestra licencia CC-BY-SA requiere “reconocer al autor original, de manera razonable conforme al medio o a los medios que usted esté utilizando”. Los contribuidores individuales de OSM no solicitan la mención del crédito más allá de “Colaboradores de OpenStreetMap”, pero en casos donde se ha incluido en OpenStreetMap información de una agencia nacional de cartografía u otra fuente mayor, es razonable reproducir su crédito directamente o añadir su vínculo a esta página.\n</p>\n\n<!--\nInformación para los editores de la página\n\nLa siguiente lista incluye sólo las organizaciones que requieren atribución como condición para que sus datos puedan ser uitlizados en OpenStreetMap. No es un catálogo general de importaciones y no debe ser utilizada sino sólo cuando la atribución se requiera para cumplir con las condiciones de la licencia de la información importada.\n\n\nCualquier adición a esta lista debe discutirse primero con los administradores de sistema de OSM.\n-->\n\n<ul id=\"contributors\">\n <li><strong>Australia</strong>: Contiene datos suburbanos cuya base es la información provista por Australian Bureau of\n Statistics.</li>\n <li><strong>Austria</strong>: Contiene datos de\n <a href=\"http://data.wien.gv.at/\">Stadt Wien</a> bajo\n <a href=\"http://creativecommons.org/licenses/by/3.0/at/deed.de\">CC-BY</a>.</li>\n <li><strong>Canadá</strong>: Contiene datos de GeoBase®, GeoGratis (© Department of Natural\n Resources Canada), CanVec (© Department of Natural\n Resources Canada), and StatCan (Geography Division,\n Statistics Canada).</li>\n <li><strong>Francia</strong>: Contiene datos extraídos de Direction Générale des Impôts.</li>\n <li><strong>Nueva Zelanda</strong>: Contiene datos extraídos de Land Information New Zealand. Crown Copyright reserved.</li>\n <li><strong>Polonia</strong>: Contiene datos de <a\n href=\"http://ump.waw.pl/\">UMP-pcPL maps</a>. Copyright contribuidores de\n UMP-pcPL.</li>\n<li><strong>Reino Unido</strong>: Contiene datos de Ordnance Survey © Crown copyright and database right\n 2010.</li>\n</ul>\n\n<p>\n La inclusión de información en OpenStreetMap no implica que el proveedor de la información original apoya OpenStreetMap, ofrece alguna garantía o acepta alguna responsabilidad.\n</p>"
+ legal_babble: "<h2>Derechos de autor y licencia</h2>\n<p>\n OpenStreetMap es <i>Open Data</i> (un servicio de datos de acceso libre), con licencia <a\n href=\"http://creativecommons.org/licenses/by-sa/2.0/\">Creative\n Commons Reconocimiento-CompartirIgual 2.0</a> (CC-BY-SA).\n</p>\n<p>\n Puedes copiar, distribuir, transmitir y adaptar nuestros mapas e información libremente siempre y cuando des reconocimiento a OpenStreetMap y sus colaboradores. Si alteras o generas contenido sobre nuestros mapas e información, podrás distribuir estos cambios bajo la misma licencia. El <a href=\"http://creativecommons.org/licenses/by-sa/2.0/legalcode\">código legal completo</a> explica tus derechos y obligaciones.\n</p>\n\n<h3>Cómo dar reconocimiento a OpenStreetMap</h3>\n<p>\n Si usas imágenes de mapas de OpenStreetMap, solicitamos que tu texto dándonos reconocimiento se lea al menos así: “© Colaboradores de OpenStreetMap, CC-BY-SA”. Si sólo utilizas información del mapa, solicitamos que muestres “Información del mapa © Colaboradores de OpenstreetMap, CC-BY-SA”.\n</p>\n<p>\n Donde sea posible, OpenStreetMap debería vincularse a <a\n href=\"http://www.openstreetmap.org/\">http://www.openstreetmap.org/</a>\n y CC-BY-SA a <a\n href=\"http://creativecommons.org/licenses/by-sa/2.0/\">http://creativecommons.org/licenses/by-sa/2.0/</a>. Si estás usando un medio donde los enlaces no son posibles (como es el caso de obras impresas), te sugerimos que dirigas a tus lectores a www.openstreetmap.org (por ejemplo, expandiendo ‘OpenStreetMap’ a su dirección completa) y a www.creativecommons.org.\n</p>\n\n<h3>Para saber más...</h3>\n<p>\n Encontrarás más información acerca de cómo utilizar nuestros datos en <a\n href=\"http://wiki.openstreetmap.org/wiki/Legal_FAQ\">Preguntas y respuestas legales</a> (en inglés).\n</p>\n<p>\n Se le recuerda a los colaboradores de OSM que no deberán añadir información procedente de ninguna fuente con derechos de autor reservados (como por ejemplo de Google Maps o mapas impresos) sin el consentimiento explícito de los poseedores de los derechos de autor.\n</p>\n<p>\n A pesar de que OpenStreetMap es contenido abierto, no podemos proveer una API de mapas gratuita para desarrolladores de aplicaciones para terceros.\n\n Por favor, lee nuestra <a href=\"http://wiki.openstreetmap.org/wiki/API_usage_policy\">Política de uso del API</a> (en inglés),\n <a href=\"http://wiki.openstreetmap.org/wiki/Tile_usage_policy\">Política de uso de <i>tiles</i></a> (en inglés)\n y <a href=\"http://wiki.openstreetmap.org/wiki/Nominatim#Usage_Policy\">Políticas de uso de Nominatim</a> (en inglés también).\n</p>\n\n<h3>Nuestros colaboradores</h3>\n<p>\n Nuestra licencia CC-BY-SA requiere “reconocer al autor original, de manera razonable conforme al medio o a los medios que usted esté utilizando”. Las persona que hacen contribuciones individualmente a OSM no solicitan la mención de un crédito adicional al de “Colaboradores de OpenStreetMap”, pero en casos donde se ha incluido en OpenStreetMap información de una agencia nacional de cartografía u otra fuente mayor, es razonable reproducir su crédito directamente o añadir su vínculo a esta página.\n</p>\n\n<!--\nInformación para los editores de la página\n\nLa siguiente lista incluye sólo las organizaciones que requieren atribución como condición para que sus datos puedan ser uitlizados en OpenStreetMap. No es un catálogo general de importaciones y no debe ser utilizada sino sólo cuando la atribución se requiera para cumplir con las condiciones de la licencia de la información importada.\n\n\nCualquier adición a esta lista debe discutirse primero con los administradores de sistema de OSM.\n-->\n\n<ul id=\"contributors\">\n <li><strong>Australia</strong>: Contiene datos suburbanos cuya base es la información provista por Australian Bureau of\n Statistics.</li>\n <li><strong>Austria</strong>: Contiene datos de\n <a href=\"http://data.wien.gv.at/\">Stadt Wien</a> bajo\n <a href=\"http://creativecommons.org/licenses/by/3.0/at/deed.de\">CC-BY</a>.</li>\n <li><strong>Canadá</strong>: Contiene datos de GeoBase®, GeoGratis (© Department of Natural\n Resources Canada), CanVec (© Department of Natural\n Resources Canada), and StatCan (Geography Division,\n Statistics Canada).</li>\n <li><strong>Francia</strong>: Contiene datos extraídos de Direction Générale des Impôts.</li>\n <li><strong>Nueva Zelanda</strong>: Contiene datos extraídos de Land Information New Zealand. Crown Copyright reserved.</li>\n <li><strong>Polonia</strong>: Contiene datos de <a\n href=\"http://ump.waw.pl/\">UMP-pcPL maps</a>. Copyright contribuidores de\n UMP-pcPL. <a href=\"http://wiki.openstreetmap.org/wiki/UMP2OSM_Importing\">\n Aprenda más sobre el uso de UMP por parte de OSM</a></li>\n<li><strong>Reino Unido</strong>: Contiene datos de Ordnance Survey © Crown copyright and database right\n 2010.</li>\n<li><strong>Sudáfrica</strong>: Contiene datos extraídos de \t\n <a href=\"http://www.ngi.gov.za/\">Chief Directorate: Información \n Nacional Geoespacial</a>, State copyright reserved.</li>\n</ul>\n\n<p>\n La inclusión de información en OpenStreetMap no implica que el proveedor de la información original apoya a OpenStreetMap, ofrece alguna garantía o acepta alguna responsabilidad.\n</p>"
native:
mapping_link: comenzar a mapear
native_link: Versión en español
inbox:
date: Fecha
from: De
+ messages: Tienes %{new_messages} y %{old_messages}
my_inbox: Mi buzón de entrada
+ new_messages:
+ one: "%{count} nuevo mensaje"
+ other: "%{count} nuevos mensajes"
no_messages_yet: No tienes aún mensajes. ¿Por qué no te pones en contacto con alguno de los %{people_mapping_nearby_link}?
+ old_messages:
+ one: "%{count} mensaje antiguo"
+ other: "%{count} mensajes antiguos"
outbox: bandeja de salida
people_mapping_nearby: gente cercana mapeando
subject: Asunto
title: Buzón de entrada
- you_have: tienes %{new_count} mensajes nuevos y %{old_count} mensajes viejos
mark:
as_read: Mensaje marcado como leído
as_unread: Mensaje marcado como sin leer
outbox:
date: Fecha
inbox: entrada
+ messages:
+ one: Usted tiene %{count} mensaje enviado
+ other: Usted tiene %{count} mensajes enviados
my_inbox: Mi %{inbox_link}
no_sent_messages: No tienes aún mensajes enviados. ¿Por qué no te pones en contacto con alguno de los %{people_mapping_nearby_link}?
outbox: salida
subject: Asunto
title: Salida
to: A
- you_have_sent_messages: Tienes %{count} mensajes enviados
read:
back_to_inbox: Regresar a la bandeja de entrada
back_to_outbox: Regresar a la bandeja de salida
summary_no_ip: "%{name} creado el %{date}"
title: Usuarios
login:
+ account is suspended: Lo sentimos, su cuenta se ha suspendido debido a actividad sospechosa.<br>Póngase en contacto con el <a href="%{webmaster}">webmaster</a> si desea hablar de ello.
account not active: Lo sentimos, tu cuenta aun no está activa.<br />Por favor usa el enlace que hay en el correo de confirmación para activarla, o <a href="%{reconfirm}">solicita un nuevo correo de confirmación</a>.
- account suspended: Disculpa, tu cuenta ha sido suspendida debido a actividad sospechosa.<br />por favor contacta al %{webmaster} si deseas discutir esto.
auth failure: Lo sentimos. No pudo producirse el acceso con esos datos.
create account minute: Cree una cuenta. Sólo se tarda un minuto.
email or username: "Dirección de correo o nombre de usuario:"
lost password link: ¿Ha perdido su contraseña?
new to osm: ¿Nuevo en OpenStreetMap?
notice: <a href="http://www.osmfoundation.org/wiki/License/We_Are_Changing_The_License">Descubre más acerca del próximo cambio de licencia de OpenStreetMap</a> (<a href="http://wiki.openstreetmap.org/wiki/ODbL/We_Are_Changing_The_License">traducciones</a>) (<a href="http://wiki.openstreetmap.org/wiki/Talk:ODbL/Upcoming">discusión</a>)
+ notice_terms: OpenStreetMap cambiará a una nueva licencia el 1 de abril de 2012. Es tan abierta como nuestra licencia actual, pero los términos legales están mucho mejor adaptados a nuestra base de datos del mapa. Nos encantaría conservar sus contribuciones en OpenStreetMap, pero sólo podremos hacerlo si está de acuerdo en permitirnos distribuirlas bajo la nueva licencia. De lo contrario, tendremos que eliminarlas de la base de datos.<br /><br />Inicie sesión y, a continuación, tómese unos segundos para revisar y aceptar los nuevos términos. ¡Gracias!
openid: "%{logo} OpenID:"
openid invalid: Lo sentimos, tu OpenID parece ser incorrecto
openid missing provider: Lo sentimos, no hemos podido contactar con su proveedor de OpenID
remember: "Recordarme:"
title: Iniciar sesión
to make changes: Para realizar cambios en los datos de OpenStreetMap, debe tener una cuenta.
- webmaster: webmaster
with openid: "Como alternativa, utilice su OpenID para iniciar sesión:"
with username: "¿Ya tiene una cuenta en OpenStreetMap? Por favor, inicie sesión con su nombre de usuario y contraseña:"
logout:
confirm_user: confirmar este usuario
create_block: bloquear a este usuario
created from: "Creado a partir de:"
+ ct accepted: Aceptado hace %{ago}
+ ct declined: Rechazado
+ ct status: "Términos del colaborador:"
+ ct undecided: Indeciso
deactivate_user: desactivar este usuario
delete_user: borrar este usuario
description: Descripción
diary: diario
edits: ediciones
email address: "Dirección de correo electrónico:"
+ friends_changesets: Navegar por los conjuntos de cambios realizados por amigos
+ friends_diaries: Navegar por todas las entradas de diario realizadas por amigos
hide_user: esconder este usuario
if set location: Si ha configurado su lugar de origen, verá un mapa abajo. Puede configurar su lugar de origen en la página de %{settings_link}.
km away: "%{count} km de distancia"
my settings: mis preferencias
my traces: mis trazas
nearby users: "Otros usuarios cercanos:"
+ nearby_changesets: Navegar por todos los conjuntos de cambios de los usuarios cercanos
+ nearby_diaries: Buscar todas las entradas de diario realizadas por usuarios cercanos
new diary entry: nueva entrada de diario
no friends: No has añadido ningún amigo aún.
no nearby users: Todavía no hay usuarios que se hayan ubicado en su proximidad.
et:
activerecord:
attributes:
+ diary_comment:
+ body: Sisu
diary_entry:
language: Keel
latitude: Laiuskraad
user: Kasutaja
message:
body: Sisu
- recipient: Vastuvõtja
+ recipient: Saaja
sender: Saatja
title: Teema
trace:
licence: Litsents
longitude: "Pikkus:"
manually_select: Vali käsitsi teine ala
- mapnik_image: Mapnik'u pilt
max: maks.
options: Sätted
osm_xml_data: OpenStreetMap'i andmed XML kujul
- osmarender_image: Osmarender'i pilt
output: Väljund
paste_html: Kopeeri ja lisa see HTML-kood oma veebilehele.
scale: Mõõtkava
heading: Ala on liiga suur
zoom: Suurendus
start_rjs:
+ add_marker: Lisa kaardile marker
change_marker: Muuda märgi asukohta
export: Ekspordi
view_larger_map: Näita suuremat kaarti
living_street: Õueala
motorway: Kiirtee
path: Rada
- pedestrian: Jalakäijatele
+ pedestrian: Jalakäijatele tee
platform: Platvorm
road: Tee
secondary: Tugimaantee
town: Linn
village: Küla
railway:
+ abandoned: Ülesvõetud raudtee
+ construction: Ehitusjärgus raudtee
+ funicular: Köisraudtee
halt: Rongipeatus
+ historic_station: Ajalooline raudteejaam
junction: Raudtee ülekäigukoht
level_crossing: Raudtee ülesõidukoht
narrow_gauge: Kitsarööpmeline raudtee
fish: Kalapood
florist: Lillepood
food: Toidupood
+ funeral_directors: Matusebüroo
furniture: Mööbel
gallery: Galerii
garden_centre: Aianduskeskus
insurance: Kindlustus
jewelry: Juveelipood
kiosk: Kiosk
+ market: Turg
mobile_phone: Mobiiltelefonide pood
music: Muusikapood
pet: Lemmikloomapood
map:
base:
cycle_map: Rattakaart
+ transport_map: Transpordikaart
site:
edit_disabled_tooltip: Kaardi redigeerimiseks suurenda kaarti
edit_tooltip: Töötle kaarti
inbox:
date: Kuupäev
from: Saatja
+ messages: Sul on %{new_messages} ja %{old_messages}
my_inbox: Minu postkast
+ new_messages:
+ one: "%{count} uus kiri"
+ other: "%{count} uut kirja"
no_messages_yet: Sul ei ole veel sõnumeid. Miks mitte kontakteeruda mõne %{people_mapping_nearby_link}?
+ old_messages:
+ one: "%{count} vana kiri"
+ other: "%{count} vana kirja"
outbox: Saadetud kirjad
people_mapping_nearby: lähedaloleva kaardistajaga
subject: Teema
title: Saabunud kirjad
- you_have: Sul on %{new_count} uut sõnumit ja %{old_count} vana sõnumit
mark:
as_read: Sõnum on märgitud loetuks
as_unread: Sõnum on märgitud kui lugemata
outbox:
date: Kuupäev
inbox: saabunud kirjad
+ messages:
+ one: Sul on %{count} saadetud kiri
+ other: Sul on %{count} saadetud kirja
my_inbox: "%{inbox_link}"
no_sent_messages: Sul ei ole veel saadetud sõnumeid. Miks mitte kontakteeruda mõne %{people_mapping_nearby_link}?
outbox: saadetud sõnumid
subject: Teema
title: Saadetud sõnumid
to: Kellele
- you_have_sent_messages: Sul on %{count} saadetud sõnumit
read:
back_to_inbox: Tagasi postkasti
back_to_outbox: Tagasi saadetud sõnumite juurde
notifier:
diary_comment_notification:
hi: Tere, %{to_user}!
+ subject: "[OpenStreetMap] %{user} kommenteeris sinu päeviku sissekannet"
email_confirm:
subject: "[OpenStreetMap] Kinnita oma e-posti aadress"
email_confirm_html:
visibility: "Nähtavus:"
visibility_help: Mida see tähendab?
no_such_user:
+ heading: Kasutajat %{user} ei eksisteeri
title: Sellist kasutajat ei ole
trace:
+ ago: "%{time_in_words_ago} tagasi"
count_points:
one: "%{count} punkt"
other: "%{count} punkti"
visibility: Nähtavus
visibility_help: mida see tähendab?
trace_header:
+ see_all_traces: Vaata kõiki GPS-radasid
+ see_your_traces: Vaata oma GPS-radasid
upload_trace: Lisa GPS-rada
trace_optionals:
tags: Sildid
description: "Kirjeldus:"
download: laadi alla
edit: redigeeri
- edit_track: Muuda seda jälge
+ edit_track: Muuda seda rada
filename: "Failinimi:"
map: kaardil
none: Puuduvad
link text: Mis see on?
current email address: "Praegune e-posti aadress:"
delete image: Eemalda praegune pilt
- email never displayed publicly: (mitte kunagi näidata avalikult)
+ email never displayed publicly: (ei näidata mitte kunagi avalikult)
flash update success: Kasutaja informatsioon uuendatud edukalt.
home location: "Kodu asukoht:"
image: "Pilt:"
lost_password:
email address: "E-posti aadress:"
heading: Parool ununenud?
+ help_text: Sisesta e-posti aadress, mida kasutasid registreerumisel. Me saadame sinna lingi, mida saad kasutada oma parooli uuesti seadmiseks.
new password button: Saada mulle uus salasõna
notice email cannot find: Seda e-posti aadressi ei leitud.
title: Unustatud salasõna
fill_form: Täitke vorm ning me saadame teile e-posti konto aktiveerimiseks.
heading: Loo uus kasutajanimi
openid: "%{logo} OpenID:"
- password: "Parool:"
+ password: "Uus parool:"
title: Loo uus konto
no_such_user:
body: Vabandust kuid kasutajat nimega %{user} pole olemas. Kontrolli sisestatud lingi õigekirja. Võimalik, et link millele sa vajutasid on vigane.
ago: (%{time_in_words_ago} tagasi)
confirm: Kinnita
create_block: blokeeri see kasutaja
+ ct accepted: Vastu võetud %{ago} tagasi
delete_user: kustuta see kasutaja
description: Kirjeldus
diary: päevik
filter:
not_a_moderator: Selle tegevuse sooritamiseks pead sa olema moderaator.
helper:
- time_future: Lõpeb %{time}.
+ time_future: Lõppeb %{time}.
time_past: Lõppes %{time} tagasi.
+ until_login: Aktiivne kuni kasutaja logib sisse.
new:
back: Vaata kõiki blokeeringuid
partial:
show: Näita
status: Olek
time_future: Lõpeb %{time}
+ time_past: Lõppes %{time} tagasi
user_role:
grant:
confirm: Kinnita
latitude: "Lat:"
licence: Lizentzia
longitude: "Lon:"
- mapnik_image: Mapnik irudia
max: max
options: Aukerak
osm_xml_data: OpenStreetMap XML Data
- osmarender_image: Osmarender irudia
scale: Eskala
zoom: Zooma
start_rjs:
register now: Erregistratu orain
remember: "Gogora nazazu:"
title: Saio-hasiera
- webmaster: webmaster
logout:
heading: OpenStreetMap-etik saioa itxi
logout_button: Saioa itxi
# Export driver: syck-pecl
# Author: Grille chompa
# Author: Huji
+# Author: Leyth
# Author: Reza1615
# Author: Sahim
# Author: Wayiran
models:
acl: دسترسی به لیست کنترل
changeset: مجموعه تغییرات
+ changeset_tag: برچسب Changeset
country: کشور
friend: دوست
language: زبان
message: پیغام
node: گره
node_tag: تگ گره
+ notifier: آگاهگردان
relation: ارتباط
session: نشست
trace: ردیابی
licence: اجازهنامه
longitude: "طول:"
manually_select: به صورت دستی منطقه دیگری را انتخاب کنید
- mapnik_image: Mapnik تصویر
max: حداکثر
options: تنظیمات
osm_xml_data: دادههای XML نقشهبازشهری
- osmarender_image: تصویر پردازش شده نقشهبازشهری
output: خروجی
paste_html: برای تعبیه کردن در وبگاه اچتیامال را پیست کنید
scale: مقیاس
hill: تپه
island: جزیره
land: زمین
+ marsh: مرداب
moor: دشت
mud: گل
peak: قله
point: نقطه
+ reef: آبسنگ
+ ridge: خطالرأس
river: رود خانه
rock: صخره
spring: بهار
+ strait: تنگه
tree: درخت
valley: دره
volcano: کوه آتشفشان
airport: فرودگاه
city: شهر بزرگ
country: کشور
+ county: شهرستان
farm: مزرعه
house: خانه
houses: خانهها
islet: جزیره کوچک
locality: محل
moor: دشت
+ municipality: شهرداری
postcode: کدپستی
region: منطقه
sea: دریا
+ state: ایالت
+ subdivision: زیربخش
suburb: محله
town: شهر
village: دهکده
+ railway:
+ abandoned: راهآهن رهاشده
+ construction: راهآهن در دست ساخت
+ disused: راهآهن منسوخ
+ disused_station: ایستگاه منسوخ راهآهن
+ funicular: راهآهن بندی
+ halt: ایستگاه قطار
+ historic_station: ایستگاه تاریخی راهآهن
+ junction: اتصال راهآهن
+ level_crossing: محل تقاطع دو خط راهآهن
+ light_rail: ریل سبک
+ monorail: مونوریل
+ narrow_gauge: زاهآهن تبادلگر باریک
+ platform: بستر راهآهن
+ station: ایستگاه راهآهن
+ subway: ایستگاه مترو
+ subway_entrance: ورودی مترو
+ tram: تراموای
shop:
+ apparel: فروشگاه پوشاک
+ art: فروشگاه لوازم هنری
bakery: نانوایی
+ beauty: فروشگاه لوازم آرایشی
+ beverages: فروشگاه نوشیدنیها و عرقیات
+ bicycle: فروشگاه دوچرخه
books: فروشگاه کتاب
butcher: قصاب
+ car: فروشگاه خودرو
+ car_parts: قطعات خودرو
+ car_repair: تعمیرگاه خودرو
+ carpet: فروشگاه فرش
+ clothes: فروشگاه پوشاک
+ computer: فروشگاه رایانه
+ copyshop: مغازه فتوکپی
+ cosmetics: فروشگاه لوازم آرایشی
greengrocer: سبزی فروش
kiosk: کیوسک
laundry: خشکشویی
market: بازار
supermarket: سوپرمارکت
+ toys: اسباببازیفروشی
+ travel_agency: آژانس مسافرتی
tourism:
artwork: آثار هنری
attraction: جاذبه
cabin: اطاق
camp_site: محل اردوگاه
chalet: کلبه ییلاقی
+ guest_house: مهمانخانه
hostel: هتل
hotel: هتل
information: اطلاعات
password: "کلمه عبور:"
remember: "بهخاطر سپردن من:"
title: ورود به سیستم
- webmaster: مدیر تارنما
logout:
heading: خروج از نقشه باز شهری
logout_button: خروج
title: شکست گذرواژه
make_friend:
already_a_friend: شما در حال حاضر دوست با %{name} هستید.
- failed: شرمنده افزودن %{name} به عنوان دوست انجام نشد
+ failed: شرمنده، نمیتوان %{name} را به عنوان دوست افزود
success: "%{name} الان از دوستان شما هست."
new:
confirm email address: "تایید نشانی رایانامه:"
licence: Lisenssi
longitude: "Pit:"
manually_select: Valitse pienempi alue
- mapnik_image: Mapnik-karttatason kuvatiedosto
max: enintään
options: Asetukset
osm_xml_data: OpenStreetMapin XML-muoto
- osmarender_image: Osmarender-karttatason kuvatiedosto
output: Tulos
paste_html: Kopioi ja liitä tämä HTML-koodi verkkosivullesi
scale: Mittakaava
people_mapping_nearby: Lähellä kartoittavia ihmisiä
subject: Otsikko
title: Saapuneet
- you_have: Sinulle on %{new_count} uutta viestiä ja %{old_count} vanhaa viestiä
mark:
as_read: Viesti merkitty luetuksi
as_unread: Viesti merkitty lukemattomaksi
subject: Otsikko
title: Lähetetyt
to: Vastaanottaja
- you_have_sent_messages: Sinulla on %{count} lähetettyä viestiä
read:
back_to_inbox: Takaisin saapuneisiin
back_to_outbox: Takaisin lähetettyihin
+++ /dev/null
-fr-CA:
- dummy: dummy
+++ /dev/null
-fr-CH:
- dummy: dummy
languages: Langues
pass_crypt: Mot de passe
models:
- acl: Liste de contrôle d'accès
+ acl: Liste de contrôle d’accès
changeset: Groupe de modifications
changeset_tag: Balise du groupe de modifications
country: Pays
old_node_tag: Balise de l'ancien nœud
old_relation: Ancienne relation
old_relation_member: Ancien membre de la relation
- old_relation_tag: Balise de l'ancienne relation
+ old_relation_tag: Balise de l’ancienne relation
old_way: Ancien chemin
- old_way_node: Nœud de l'ancien chemin
- old_way_tag: Balise de l'ancien chemin
+ old_way_node: Nœud de l’ancien chemin
+ old_way_tag: Balise de l’ancien chemin
relation: Relation
relation_member: Membre de la relation
relation_tag: Balise de relation
tracepoint: Point de la trace
tracetag: Balise de la piste
user: Utilisateur
- user_preference: Préférences de l'utilisateur
+ user_preference: Préférences de l’utilisateur
user_token: Jeton de l'utilisateur
way: Chemin
way_node: Nœud du chemin
download: Télécharger %{changeset_xml_link} ou %{osmchange_xml_link}
feed:
title: Groupe de modifications %{id}
- title_comment: Groupe de modifications %{id} - %{comment}
+ title_comment: Groupe de modifications %{id} – %{comment}
osmchangexml: osmChange XML
title: Groupe de modifications
changeset_details:
closed_at: "Terminé le :"
created_at: "Créé le :"
has_nodes:
- one: "Concerne le %{count} nœud suivant :"
+ one: "Concerne le nœud suivant :"
other: "Concerne les %{count} nœuds suivants :"
has_relations:
one: "Concerne la relation suivante :"
other: "Concerne les %{count} relations suivantes :"
- has_ways: "Concerne les %{count} chemins suivants :"
- no_bounding_box: Aucun cadre de délimitation n'a été stocké pour ce groupe de modifications.
+ has_ways:
+ one: "Concerne le chemin suivant :"
+ other: "Concerne les %{count} chemins suivants :"
+ no_bounding_box: Aucun cadre de délimitation n’a été stocké pour ce groupe de modifications.
show_area_box: Montrer le cadre de la zone
common_details:
changeset_comment: "Commentaire :"
map:
deleted: Effacé
edit:
- area: Modifier aire
- node: Modifier noeud
- relation: Modifier relation
- way: Modifier chemin
+ area: Modifier la zone
+ node: Modifier le nœud
+ relation: Modifier la relation
+ way: Modifier le chemin
larger:
area: Voir la zone dans une carte plus grande
node: Voir le nœud dans une carte plus grande
prev_changeset_tooltip: Modifications précédentes par %{user}
node:
download: "%{download_xml_link}, %{view_history_link} ou %{edit_link}"
- download_xml: Télécharger XML
+ download_xml: Télécharger en XML
edit: modifier
node: Nœud
node_title: "Nœud : %{node_name}"
- view_history: voir l'historique
+ view_history: afficher l’historique
node_details:
coordinates: "Coordonnées :"
part_of: "Faisant partie de :"
node_history:
download: "%{download_xml_link} ou %{view_details_link}"
- download_xml: Télécharger XML
+ download_xml: Télécharger en XML
node_history: Historique du nœud
node_history_title: "Historique du nœud : %{node_name}"
- view_details: voir détails
+ view_details: voir les détails
not_found:
- sorry: Désolé, le %{type} avec l'id %{id}, n'a pas pu être trouvé.
+ sorry: Désolé, l’objet de type %{type} avec l’identifiant %{id} n’a pas pu être trouvé.
type:
changeset: groupe de modifications
node: nœud
showing_page: Page en cours
relation:
download: "%{download_xml_link} ou %{view_history_link}"
- download_xml: Télécharger XML
+ download_xml: Télécharger en XML
relation: Relation
relation_title: "Relation : %{relation_name}"
- view_history: voir l'historique
+ view_history: afficher l’historique
relation_details:
members: "Membres :"
part_of: "Faisant partie de :"
relation_history:
download: "%{download_xml_link} ou %{view_details_link}"
- download_xml: Télécharger XML
+ download_xml: Télécharger en XML
relation_history: Historique de la relation
relation_history_title: "Historique de la relation : %{relation_name}"
view_details: afficher les détails
data_frame_title: Données
data_layer_name: Données
details: Détails
- drag_a_box: Dessiner un cadre sur la carte pour sélectionner une zone
+ drag_a_box: Cliquez et tirez un cadre sur la carte pour sélectionner une zone
edited_by_user_at_timestamp: Modifié par [[user]] le [[timestamp]]
hide_areas: Masquer les zones
history_for_feature: Historique pour [[feature]]
load_data: Charger les données
- loaded_an_area_with_num_features: "Vous avez chargé une zone qui contient [[num_features]] éléments. En général, les navigateurs ne supportent pas bien l'affichage de tant de données, et travaillent mieux lorsqu'ils affichent moins de 100 éléments : accepter peut rendre votre navigateur lent ou non fonctionnel. Si vous êtes sûr de vouloir afficher ces données, vous pouvez le faire en appuyant sur le bouton ci-dessous."
+ loaded_an_area_with_num_features: "Vous avez chargé une zone qui contient [[num_features]] éléments. En général, certains navigateurs ne supportent pas bien l’affichage de tant de données et travaillent mieux lorsqu’ils affichent moins de 100 objets à la fois : procéder autrement pourrait rendre votre navigateur lent ou non fonctionnel. Si vous êtes sûr de vouloir afficher ces données, vous pouvez le faire en appuyant sur le bouton ci-dessous."
loading: Chargement...
manually_select: Sélectionner manuellement une zone différente
object_list:
- api: Obtenir cette zone depuis l'API
- back: Afficher la liste d'objets
+ api: Obtenir cette zone depuis l’API
+ back: Afficher la liste d’objets
details: Détails
- heading: Liste d'objets
+ heading: Liste d’objets
history:
type:
node: Nœud [[id]]
way: Chemin
private_user: utilisateur privé
show_areas: Afficher les zones
- show_history: Montrer l'historique
- unable_to_load_size: "Impossible de charger les données : le cadre de délimitation d'une taille de [[bbox_size]] est trop grand (il doit être inférieur à %{max_bbox_size})"
- wait: Patienter...
+ show_history: Afficher l’historique
+ unable_to_load_size: "Impossible de charger les données : le cadre de délimitation d’une taille de [[bbox_size]] est trop grand (il doit être inférieur à %{max_bbox_size})"
+ wait: Patientez...
zoom_or_select: Zoomer ou sélectionner une zone de la carte pour la visualiser
tag_details:
tags: "Balises :"
wiki_link:
- key: La description de la balise %{key} sur le wiki
- tag: La description de la balise %{key}=%{value} sur le wiki
- wikipedia_link: L'article %{page} sur Wikipedia
+ key: La description de la balise <code>%{key}</code> sur le wiki
+ tag: La description de la balise <code>%{key}=%{value}</code> sur le wiki
+ wikipedia_link: L’article « %{page} » sur Wikipédia
timeout:
sorry: Désolé, les données pour le type %{type} avec l'id %{id} prennent trop de temps à être récupérées.
type:
way: chemin
way:
download: "%{download_xml_link}, %{view_history_link} ou %{edit_link}"
- download_xml: Télécharger XML
+ download_xml: Télécharger en XML
edit: modifier
- view_history: afficher l'historique
+ view_history: afficher l’historique
way: Chemin
way_title: "Chemin : %{way_name}"
way_details:
part_of: "Faisant partie de :"
way_history:
download: "%{download_xml_link} ou %{view_details_link}"
- download_xml: Télécharger XML
+ download_xml: Télécharger en XML
view_details: afficher les détails
way_history: Historique du chemin
way_history_title: "Historique du chemin : %{way_name}"
still_editing: (en cours de modification)
view_changeset_details: Afficher les détails du groupe de modifications
changeset_paging_nav:
- next: Suivant »
- previous: « Précédent
+ next: Objets suivants »
+ previous: « Objets précédents
showing_page: Affichage de la page %{page}
changesets:
area: Zone
comment: Commentaire
- id: ID
+ id: Identifiant
saved_at: Sauvegardé à
user: Utilisateur
list:
description: Modifications récentes
description_bbox: Groupes de modifications dans %{bbox}
+ description_friend: Groupes de modifications par vos amis
+ description_nearby: Groupes de modifications par les utilisateurs à proximité
description_user: Groupes de modifications par %{user}
description_user_bbox: Groupes de modifications par %{user} dans %{bbox}
heading: Groupes de modifications
heading_bbox: Groupes de modifications
+ heading_friend: Groupes de modifications
+ heading_nearby: Groupes de modifications
heading_user: Groupes de modifications
heading_user_bbox: Groupes de modifications
title: Groupes de modifications
title_bbox: Groupes de modifications dans %{bbox}
+ title_friend: Ensemble des modifications par vos amis
+ title_nearby: Ensembles de modifications par les utilisateurs à proximité
title_user: Groupes de modifications par %{user}
title_user_bbox: Groupes de modifications par %{user} dans %{bbox}
timeout:
- sorry: Désolé, la liste des modifications que vous avez demandée met trop de temps pour être récupérée.
+ sorry: Désolé, la liste des groupes de modifications que vous avez demandée met trop de temps pour être récupérée.
diary_entry:
+ comments:
+ ago: il y a %{ago}
+ comment: Commentaire
+ has_commented_on: "%{display_name} a commenté les entrées de journal suivantes"
+ newer_comments: Commentaires plus récents
+ older_comments: Commentaires plus anciens
+ post: Envoyer
+ when: Quand
diary_comment:
comment_from: Commentaire de %{link_user} le %{comment_created_at}
confirm: Confirmer
posted_by: Posté par %{link_user} à %{created} en %{language_link}
reply_link: Répondre a cette entrée
edit:
- body: "Message:"
+ body: "Corps :"
language: "Langue :"
- latitude: "Latitude:"
- location: "Lieu:"
- longitude: "Longitude:"
+ latitude: "Latitude :"
+ location: "Lieu :"
+ longitude: "Longitude :"
marker_text: Emplacement de l'entrée du journal
save_button: Sauvegarder
subject: "Objet :"
- title: Modifier l'entrée du journal
+ title: Modifier l’entrée du journal
use_map_link: Utiliser la carte
feed:
all:
newer_entries: Entrées plus récentes
no_entries: Aucune entrée dans votre journal
older_entries: Entrées plus anciennes
- recent_entries: "Entrées récentes:"
+ recent_entries: "Entrées récentes du journal :"
title: Journaux des utilisateurs
+ title_friends: Journaux des amis
+ title_nearby: Journaux des utilisateurs à proximité
user_title: Journal de %{user}
location:
edit: Modifier
area_to_export: Zone à exporter
embeddable_html: HTML incorporable.
export_button: Exporter
- export_details: Les données d'OpenStreetMap sous <a href="http://creativecommons.org/licenses/by-sa/2.0/">licence Creative Commons attribution-partage à l'identique 2.0</a>.
+ export_details: Les données d’OpenStreetMap sont publiées sous <a href="http://creativecommons.org/licenses/by-sa/2.0/">licence Creative Commons paternité – partage à l’identique 2.0</a>.
format: Format
format_to_export: Format à exporter
image_size: Taille de l'image
licence: Licence
longitude: "Lon :"
manually_select: Sélectionner manuellement une autre zone
- mapnik_image: Image de Mapnik
+ map_image: Image de carte (affiche un calque normal)
max: max
options: Options
osm_xml_data: Données XML d'OpenStreetMap
- osmarender_image: Image d'Osmarender
output: Sortie
paste_html: Collez le code HTML pour incorporer dans un site web.
scale: Échelle
footway: Chemin piéton
ford: Gué
gate: Porte
- living_street: Rue résidentielle
+ living_street: Rue en zone de rencontre
minor: Route mineure
motorway: Autoroute
motorway_junction: Jonction d'autoroute
primary: Route principale
primary_link: Route principale
raceway: Circuit
- residential: Résidentiel
+ residential: Rue résidentielle
road: Route
secondary: Route secondaire
secondary_link: Route secondaire
base:
cycle_map: Carte cyclable
mapquest: MapQuest ouverte
+ standard: Standard
transport_map: Carte de transport
site:
edit_disabled_tooltip: Zoomez en avant pour modifier la carte
intro_3_ic: Imperial College London
intro_3_partners: wiki
license:
- title: Les données OpenStreetMap sont sous licence générale Creative Commons paternité partage à l’identique 2.0
+ title: Les données d’OpenStreetMap sont publiées sous licence <em>Creative Commons paternité – partage à l’identique 2.0 générique</em>.
log_in: Connexion
log_in_tooltip: Se connecter avec un compte existant
logo:
english_link: original en anglais
text: En cas de conflit entre cette page et la page %{english_original_link}, la version anglaise prime
title: À propos de cette traduction
- legal_babble: "<h2>Copyright et licence</h2>\n<p>\n OpenStreetMap est un ensemble de <i>données ouvertes</i>, disponibles sous la licence <a\n href=\"http://creativecommons.org/licenses/by-sa/2.0/\">Creative\n Commons Attribution-ShareAlike 2.0</a> (CC-BY-SA).\n</p>\n<p>\n Vous êtes libre de copier, distribuer, transmettre et adapter nos cartes\n et données, à condition que vous créditiez OpenStreetMap et ses\n contributeurs. Si vous modifiez ou utilisez nos cartes ou données dans d'autres travaux,\n vous ne pouvez distribuer ceux-ci que sous la même licence. Le\n <a href=\"http://creativecommons.org/licenses/by-sa/2.0/legalcode\">texte\n légal complet</a> détaille vos droits et responsabilités.\n</p>\n\n<h3>Comment créditer OpenStreetMap</h3>\n<p>\n Si vous utilisez les images d'OpenStreetMap, nous demandons que votre\n crédit comporte au moins la mention “© les contributeurs d'OpenStreetMap\n CC-BY-SA”. Si vous n'utilisez que les données des cartes,\n nous demandons “Données de la carte © les contributeurs d'OpenStreetMap,\n CC-BY-SA”.\n</p>\n<p>\n Là où cela est possible, OpenStreetMap doit être un lien hypertexte vers <a\n href=\"http://www.openstreetmap.org/\">http://www.openstreetmap.org/</a>\n et CC-BY-SA vers <a\n href=\"http://creativecommons.org/licenses/by-sa/2.0/\">http://creativecommons.org/licenses/by-sa/2.0/</a>.\n Si vous utiliser un média qui ne permet pas de créer des liens (ex :\n un imprimé), nous suggérons que vous dirigiez vos lecteurs vers\n www.openstreetmap.org (peut-être en étendant\n ‘OpenStreetMap’ à l'adresse complète) et vers\n www.creativecommons.org.\n</p>\n\n<h3>Plus d'informations</h3>\n<p>\n Si vous voulez obtenir plus d'informations sur la réutilisation de nos données, lisez la <a\n href=\"http://wiki.openstreetmap.org/wiki/Legal_FAQ\">FAQ légale</a>.\n</p>\n<p>\n Nous rappelons aux contributeurs d'OSM qu'ils ne doivent jamais ajouter de données provenant\n de sources sous copyright (ex : Google Maps ou des cartes imprimées) sans\n autorisation explicite de la part des détenteurs du copyright.\n</p>\n<p>\n Bien qu'OpenStreetMap soit un ensemble de données ouvertes, nous ne pouvons pas fournir\n d'API libre de frais pour les développeurs tiers.\n\n Voyez nos <a href=\"http://wiki.openstreetmap.org/wiki/API_usage_policy\">règles d'utilisation de l'API</a>,\n <a href=\"http://wiki.openstreetmap.org/wiki/Tile_usage_policy\">règles d'utilisation de la carte</a>\n et <a href=\"http://wiki.openstreetmap.org/wiki/Nominatim#Usage_Policy\">règles d'utilisation de Nominatim</a>.\n</p>\n\n<h3>Nos contributeurs</h3>\n<p>\n Notre licence CC-BY-SA nécessite que vous “donniez à l'auteur d'origine\n un crédit raisonnable selon le média que vous utilisez”.\n Les cartographes individuels d'OSM ne demandent pas\n d'autre crédit que “les contributeurs d'OpenStreetMap”,\n mais lorsque des données venant d'une agence nationale de cartographie\n ou autre source majeure ont été incluses dans OpenStreetMap,\n il peut être raisonnable de les créditer directement\n de la manière qu'ils demandent ou par un lien vers cette page.\n</p>\n\n<!--\nInformation pour ceux qui modifient cette page\n\nLa liste suivante ne contient que les organisations qui demandent l'attribution\ncomme condition de la présence de leur données dans OpenStreetMap. Ce n'est pas un\ncatalogue général des ajouts, et elle ne doit pas être utilisée,\nsauf lorsque l'attribution est nécessaire pour respecter la licence des données importées.\n\nTout ajout fait ici doit d'abord être discuté avec les administrateurs d'OSM.\n-->\n\n<ul id=\"contributors\">\n <li><strong>Australie</strong>: Contient des données sur les banlieues\n fondée sur les données de l'Australian Bureau of Statistics.</li>\n <li><strong>Autriche</strong>: Contient des données sur la\n <a href=\"http://data.wien.gv.at/\">ville de Vienne</a> sous licence\n <a href=\"http://creativecommons.org/licenses/by/3.0/at/deed.de\">CC-BY</a>.</li>\n <li><strong>Canada</strong>: Contient des données de\n GeoBase®, GeoGratis (© Department of Natural\n Resources Canada), CanVec (© Department of Natural\n Resources Canada), et StatCan (Geography Division,\n Statistics Canada).</li>\n <li><strong>France</strong> : Contient des données de la\n Direction Générale des Impôts.</li>\n <li><strong>Nouvelle-Zélende</strong>: Contient des données provenant du\n Land Information New Zealand. Crown Copyright reserved.</li>\n <li><strong>Pologne</strong>: Contient des données provenant des <a\n href=\"http://ump.waw.pl/\">cartes UMP-pcPL</a>. Copyright\n contributeurs de UMP-pcPL.</li>\n <li><strong>Royaume-Uni</strong>: Contient des données d'Ordnance\n Survey data © Crown copyright and database right 2010.</li>\n</ul>\n\n<p>\n L'inclusion de données dans OpenStreetMap n'implique pas que les fournisseurs d'origine\n du contenu approuvent OpenStreetMap, ni ne fournissent, ne garantissent ou n'acceptent quelque lien que ce soit.\n</p>"
+ legal_babble: "<h2>Copyright et licence</h2>\n<p>\n OpenStreetMap est un ensemble de <i>données ouvertes</i>, disponibles sous la licence <a\n href=\"http://creativecommons.org/licenses/by-sa/2.0/\">Creative Commons\n paternité – partage à l’identique 2.0</a> (CC BY-SA).\n</p>\n<p>\n Vous êtes libre de copier, distribuer, transmettre et adapter nos cartes\n et données, à condition que vous créditiez OpenStreetMap et ses\n contributeurs. Si vous modifiez ou utilisez nos cartes ou données dans d’autres œuvres dérivées, vous\n ne pouvez distribuer celles-ci que sous la même licence. Le\n <a href=\"http://creativecommons.org/licenses/by-sa/2.0/legalcode\">texte\n légal</a> complet détaille vos droits et responsabilités.\n</p>\n\n<h3>Comment créditer OpenStreetMap</h3>\n<p>\n Si vous utilisez les images d’OpenStreetMap, nous demandons que\n votre crédit comporte au moins la mention « © les contributeurs d’OpenStreetMap,\n CC BY-SA ». Si vous n’utilisez que les données des cartes,\n nous demandons « Données cartographiques © les contributeurs d’OpenStreetMap,\n CC BY-SA ».\n</p>\n<p>\n Là où cela est possible, OpenStreetMap doit être mentionné avec un lien hypertexte vers <a\n href=\"http://www.openstreetmap.org/\">http://www.openstreetmap.org/</a>\n et CC-BY-SA vers <a\n href=\"http://creativecommons.org/licenses/by-sa/2.0/\">http://creativecommons.org/licenses/by-sa/2.0/</a>. Si\n vous utilisez un support qui ne permet pas de créer des liens hypertextes (par ex. un\n imprimé), nous suggérons que vous dirigiez vos lecteurs vers\n www.openstreetmap.org (en étendant éventuellement\n « OpenStreetMap » à cette adresse complète) et vers\n www.creativecommons.org.\n</p>\n\n<h3>Pour trouver plus d’informations</h3>\n<p>\n Si vous voulez obtenir plus d’informations sur la réutilisation de nos données, lisez la <a\n href=\"http://wiki.openstreetmap.org/wiki/Legal_FAQ\">FAQ\n légale</a>.\n</p>\n<p>\n Nous rappelons aux contributeurs d’OSM qu’ils ne doivent jamais ajouter de données provenant de\n sources protégées par le droit d’auteur (copyright) ou des droits voisins (par ex. Google Maps ou des cartes imprimées) sans\n autorisation explicite de la part des détenteurs des droits d’auteur.\n</p>\n<p>\n Bien qu’OpenStreetMap soit un ensemble de données ouvertes, nous ne pouvons pas fournir\n d’API cartographique libre de frais pour les développeurs tiers.\n\n Consultez nos <a href=\"http://wiki.openstreetmap.org/wiki/API_usage_policy\">règles d’utilisation de l’API</a>, nos\n <a href=\"http://wiki.openstreetmap.org/wiki/Tile_usage_policy\">règles d’utilisation des tuiles graphiques</a>\n et nos <a href=\"http://wiki.openstreetmap.org/wiki/Nominatim#Usage_Policy\">règles d’utilisation de Nominatim</a>.\n</p>\n\n<h3>Nos contributeurs</h3>\n<p>\n Notre licence CC BY-SA nécessite que vous « donniez à l’auteur d’origine\n un crédit raisonnable selon les support et moyens que vous\n utilisez ». Les cartographes individuels d’OSM ne demandent pas\n d’autre crédit supplémentaire que « les contributeurs\n d’OpenStreetMap », mais lorsque des données venant d’une agence nationale\n de cartographie ou d’une autre source majeure ont été incluses dans\n OpenStreetMap, il peut être raisonnable de les créditer directement\n de la manière qu’ils demandent ou en établissant un lien vers cette page.\n</p>\n\n<!--\nInformation pour ceux qui modifient cette page\n\nLa liste suivante ne contient que les organisations qui requièrent l’attribution de paternité\ncomme condition de la présence de leur données dans OpenStreetMap. Ce n’est pas un\ncatalogue général des données importées, et elle ne doit pas être utilisée, sauf lorsque\nl’attribution est nécessaire pour respecter la licence des\ndonnées importées.\n\nTout ajout fait ici doit d’abord être discuté avec les administrateurs système d’OSM.\n-->\n<ul id=\"contributors\">\n <li><strong>Australie</strong> : contient des données sur les quartiers\n basées sur les données de l’<em>Australian Bureau of Statistics</em>.</li>\n <li><strong>Autriche</strong> : contient des données sur la\n <a href=\"http://data.wien.gv.at/\">Ville de Vienne</a> sous licence\n <a href=\"http://creativecommons.org/licenses/by/3.0/at/deed.de\">CC BY 3.0 Autriche</a>.</li>\n <li><strong>Canada</strong> : contient des données de\n <em>GeoBase</em>®, <em>GeoGratis</em> (© Département des Ressources\n naturelles du Canada), <em>CanVec</em> (© Département des Ressources\n naturelles du Canada) et <em>StatCan</em> (Division Géographie,\n Statistiques du Canada).</li>\n <li><strong>France</strong> : contient des données de la\n <em>Direction générale des impôts</em>.</li>\n <li><strong>Nouvelle-Zélande</strong> : contient des données provenant du\n <em>Land Information New Zealand</em>. © Copyright de la Couronne réservé.</li>\n <li><strong>Pologne</strong> : contient des données provenant des <a\n href=\"http://ump.waw.pl/\">cartes <em>UMP-pcPL</em></a>. © Copyright\n les contributeurs de UMP-pcPL.\n <a href=\"http://wiki.openstreetmap.org/wiki/UMP2OSM_Importing\">\n En savoir davantage sur l’utilisation par OSM des données UMP</a></li>\n <li><strong>Afrique du Sud</strong> :contient des données provenant du\n <a href=\"http://www.ngi.gov.za/\"><em>Chief Directorate:\n National Geo-Spatial Information</em></a>, copyright de l’État réservé.</li>\n <li><strong>Royaume-Uni</strong> : contient des données provenant des <em>Ordnance\n Survey data</em>. © Copyright de la Couronne et droits de base de données 2010.</li>\n</ul>\n\n<p>\n L’inclusion de données dans OpenStreetMap n’implique pas que les\n fournisseurs d’origine du contenu approuvent OpenStreetMap, ni ne fournissent, ne garantissent ou\n n’acceptent quelque responsabilité que ce soit.\n</p>"
native:
mapping_link: commencer à contribuer
native_link: version française
inbox:
date: Date
from: De
+ messages: Vous avez %{new_messages} et %{old_messages}
my_inbox: Ma boîte de réception
+ new_messages:
+ one: "%{count} nouveau message"
+ other: "%{count} nouveaux messages"
no_messages_yet: Vous n'avez actuellement aucun message. Pourquoi ne pas entrer en contact avec quelques %{people_mapping_nearby_link} ?
+ old_messages:
+ one: "%{count} ancien message"
+ other: "%{count} anciens messages"
outbox: boîte d'envoi
people_mapping_nearby: personnes proche de vous
subject: Objet
title: Boîte de réception
- you_have: Vous avez %{new_count} nouveaux messages et %{old_count} anciens messages
mark:
as_read: Message marqué comme lu
as_unread: Message marqué comme non-lu
outbox:
date: Date
inbox: boîte de réception
+ messages:
+ one: Vous avez %{count} message envoyé
+ other: Vous avez %{count} messages envoyés
my_inbox: Ma %{inbox_link}
no_sent_messages: Vous n'avez encore envoyé aucun message. Pourquoi ne pas entrez en contact avec quelques %{people_mapping_nearby_link} ?
outbox: boîte d'envoi
subject: Objet
title: Boîte d'envoi
to: À
- you_have_sent_messages: Vous avez envoyé %{count} messages
read:
back_to_inbox: Revenir à la boîte de réception
back_to_outbox: Revenir à la boîte d'envoi
js_2: OpenStreetMap utilise Javascript pour ses cartes glissantes.
js_3: Si vous êtes dans l'incapacité d'utiliser Javascript, essayer d'utiliser le <a href='http://tah.openstreetmap.org/Browse/'>navigateur statique de Tiles@Home</a>.
license:
- license_name: Creative Commons paternité-partage des conditions initiales à l’identique 2.0
+ license_name: Creative Commons paternité – partage à l’identique 2.0
notice: Sous license %{license_name} par le %{project_name} et ses contributeurs.
project_name: projet OpenStreetMap
permalink: Lien permanent
map: carte
owner: "Propriétaire :"
points: "Points :"
- save_button: Sauvegarder les modifications
+ save_button: Enregistrer les modifications
start_coord: "Coordonnées de départ :"
tags: "Balises :"
tags_help: séparées par des virgules
trace_optionals:
tags: Balises
trace_paging_nav:
- next: Suivant »
- previous: « Précédent
+ next: Objets suivants »
+ previous: « Objets précédents
showing_page: Affichage de la page %{page}
view:
delete_track: Supprimer cette piste
image: "Image :"
image size hint: (les images carrées d'au moins 100×100 pixels fonctionnent le mieux)
keep image: Garder l'image actuelle
- latitude: "Latitude:"
- longitude: "Longitude:"
+ latitude: "Latitude :"
+ longitude: "Longitude :"
make edits public button: Rendre toutes mes modifications publiques
my settings: Mes options
new email address: "Nouvelle adresse de courriel :"
no home location: Vous n'avez pas indiqué l'emplacement de votre domicile.
openid:
link: http://wiki.openstreetmap.org/wiki/OpenID
- link text: qu’est-ce ?
+ link text: qu’est-ce que ceci ?
openid: "OpenID :"
preferred editor: "Éditeur préféré :"
preferred languages: "Langues préférées :"
text: "Votre compte est actuellement en mode \"modifications anonymes\" : il n'existe pas de lien entre vos modifications et votre compte utilisateur et les autres contributeurs ne peuvent pas vous envoyer de message ni connaître votre localisation géographique. Pour qu'il soit possible de lister vos contributions et permettre aux autres personnes de vous contacter via ce site, cliquez sur le bouton ci-dessous. <b>Depuis le basculement de l'API en version 0.6, seuls les utilisateurs en mode \"modifications publiques\" peuvent modifier les cartes</b> (<a href=\"http://wiki.openstreetmap.org/wiki/Anonymous_edits\">en savoir plus</a>).<ul><li>Votre adresse de courriel ne sera pas rendue publique.</li><li>Cette opération ne peut pas être annulée et tous les nouveaux utilisateurs sont en mode \"modifications publiques\" par défaut.</li></ul>"
replace image: Remplacer l'image actuelle
return to profile: Retourner au profil
- save changes button: Sauvegarder les changements
+ save changes button: Enregistrer les modifications
title: Modifier le compte
update home location on click: Mettre a jour l'emplacement de votre domicile quand vous cliquez sur la carte ?
confirm:
summary_no_ip: "%{name} créé le %{date}"
title: Utilisateurs
login:
+ account is suspended: Désolé, votre compte a été suspendu en raison d'une activité suspecte.<br />Veuillez contacter le <a href="%{webmaster}">webmaster</a> si vous voulez en discuter.
account not active: Désolé, votre compte n'est pas encore actif.<br/>Veuillez cliquer sur le lien dans le courrier électronique de confirmation, pour activer votre compte, ou <a href="%{reconfirm}">demandez un nouveau courrier de confirmation</a>.
- account suspended: Désolé, votre compte a été suspendu en raison d'une activité suspecte.<br />Veuillez contacter le %{webmaster} si vous voulez en discuter.
auth failure: Désolé, mais les informations fournies n’ont pas permis de vous identifier.
create account minute: Se créer un compte. Ça ne prend qu'une minute.
email or username: "Adresse e-mail ou nom d'utilisateur :"
login_button: Se connecter
lost password link: Vous avez perdu votre mot de passe ?
new to osm: Nouveau sur OpenStreetMap ?
+ no account: Vous n’avez pas encore de compte ?
notice: <a href="http://www.osmfoundation.org/wiki/License/We_Are_Changing_The_License">En savoir plus sur le futur changement de licence d’OpenStreetMap</a> (<a href="http://wiki.openstreetmap.org/wiki/ODbL/We_Are_Changing_The_License">traductions</a>) (<a href="http://wiki.openstreetmap.org/wiki/Talk:ODbL/Upcoming">discussion</a>)
+ notice_terms: OpenStreetMap migrera sous une nouvelle licence le 1er avril 2012. Elle est tout aussi ouverte que l'actuelle, mais les termes juridiques sont beaucoup mieux adaptés à notre base de données cartographique. Nous serions ravis de conserver vos contributions à OpenStreetMap, mais nous ne pouvons le faire que si vous acceptez de nous laisser les distribuer sous la nouvelle licence. Sinon, nous devrons les supprimer de la base de données.<br><br>Veuillez ouvrir une session, puis prendre quelques secondes pour examiner et accepter les nouvelles conditions. Merci!
openid: "%{logo} OpenID :"
openid invalid: Désolé, votre OpenID semble malformé
openid missing provider: Désolé, impossible de contacter votre fournisseur OpenID
title: Connexion avec Yahoo
password: "Mot de passe :"
register now: S'inscrire maintenant
- remember: "Se souvenir de moi :"
+ remember: Se souvenir de moi
title: Se connecter
to make changes: Pour apporter des modifications aux données OpenStreetMap, vous devez posséder un compte.
- webmaster: webmaster
with openid: "Vous pouvez également utiliser OpenID pour vous connecter :"
with username: "Vous avez déjà un compte sur OpenStreetMap ? Connectez-vous avec votre identifiant et votre mot de passe :"
logout:
block_history: blocages reçus
blocks by me: blocages donnés
blocks on me: mes blocages
+ comments: commentaires
confirm: Confirmer
confirm_user: confirmer cet utilisateur
create_block: bloquer cet utilisateur
created from: "Créé depuis :"
+ ct accepted: Accepté il y a %{ago}
+ ct declined: Refusé
+ ct status: "Conditions du contributeur:"
+ ct undecided: Indécis
deactivate_user: désactiver cet utilisateur
delete_user: supprimer cet utilisateur
description: Description
diary: journal
edits: modifications
email address: "Adresse email :"
+ friends_changesets: Parcourir tous les ensembles de modifications par des amis
+ friends_diaries: Parcourir toutes les entrées du journal personnel par ses amis
hide_user: masquer cet utilisateur
if set location: Si vous définissez un lieu, une jolie carte va apparaître en dessous. Vous pouvez définir votre lieu sur votre page %{settings_link}.
km away: "%{count} km"
m away: distant de %{count} m
mapper since: "Mappeur depuis:"
moderator_history: voir les blocages donnés
+ my comments: mes commentaires
my diary: mon journal
my edits: mes modifications
my settings: mes options
my traces: mes traces
nearby users: Autres utilisateurs à proximité
+ nearby_changesets: Parcourir tous les ensembles de modifications par les utilisateurs à proximité
+ nearby_diaries: Parcourir toutes les entrées du journal personnel par des utilisateurs à proximité
new diary entry: nouvelle entrée dans le journal
no friends: Vous n'avez pas encore ajouté d'ami
no nearby users: Aucun utilisateur n'a encore signalé qu'il cartographiait à proximité.
description_user_bbox: Grups di cambiaments di %{user} jentri di %{bbox}
heading: Grups di cambiaments
heading_bbox: Grups di cambiaments
+ heading_friend: Grups di cambiaments
+ heading_nearby: Grups di cambiaments
heading_user: Grups di cambiaments
heading_user_bbox: Grups di cambiaments
title: Grups di cambiaments
licence: Licence
longitude: "Lon:"
manually_select: Sielç a man une aree divierse
- mapnik_image: Figure Mapnik
max: max
options: Opzions
osm_xml_data: Dâts XML di OpenStreetMap
- osmarender_image: Figure Osmarender
output: Jessude
paste_html: Tache l'HTML par inserîlu tal to sît web
scale: Scjale
fuel: Stazion di riforniment
health_centre: Centri pe salût
hospital: Ospedâl
+ hotel: Hotel
ice_cream: Gjelato
kindergarten: Scuelute
library: Biblioteche
butcher: Becjarie
car_repair: Riparazion di machinis
carpet: Buteghe di tapêts
+ clothes: Buteghe di vistîts
+ electronics: Buteghe di eletroniche
gallery: Galarie di art
hairdresser: Piruchîr o barbîr
insurance: Assicurazion
travel_agency: Agjenzie di viaçs
tourism:
hostel: Ostel
+ hotel: Hotel
information: Informazions
museum: Museu
valley: Val
inbox:
date: Date
from: Di
+ messages: Tu âs %{new_messages} e %{old_messages}
my_inbox: I miei messaç in jentrade
+ new_messages:
+ one: "%{count} messaç gnûf"
+ other: "%{count} messaçs gnûfs"
no_messages_yet: No tu âs ancjemò nissun messaç. Parcè no tu contatis cualchidun de %{people_mapping_nearby_link}?
+ old_messages:
+ one: "%{count} messaç vieli"
+ other: "%{count} messaçs vielis"
outbox: in jessude
people_mapping_nearby: int che e je daûr a mapâ dongje di te
subject: Sogjet
title: In jentrade
- you_have: Tu âs %{new_count} messaçs gnûfs e %{old_count} messaçs vieris
mark:
as_read: Messaç segnât come za let
as_unread: Messaç segnât come di lei
outbox:
date: Date
inbox: in jentrade
+ messages:
+ one: Tu âs %{count} messaç in jessude
+ other: Tu âs %{count} messaçs in jessude
my_inbox: Messaçs %{inbox_link}
no_sent_messages: No tu âs ancjemò mandât nissun messaç. Parcè no tu contatis cualchidun de %{people_mapping_nearby_link}?
outbox: in jessude
subject: Sogjet
title: In jessude
to: A
- you_have_sent_messages: Tu âs %{count} messaçs in jessude
read:
back_to_inbox: Torne ai messaçs in jentrade
back_to_outbox: Torne ai messaçs in jessude
friend_notification:
befriend_them: Tu puedis ancje zontâlu/le come amì su %{befriendurl}.
had_added_you: "%{user} ti à zontât come amì su OpenStreetMap."
- see_their_profile: Tu puedis viodi il lôr profîl su %{userurl}.
+ see_their_profile: Tu puedis viodi il sô profîl su %{userurl}.
subject: "[OpenStreetMap] %{user} ti à zontât come amì su OpenStreetMap."
gpx_notification:
and_no_tags: e nissune etichete.
more_videos_here: altris videos culì
video_to_openstreetmap: video di introduzion a OpenStreetMap
oauth_clients:
+ edit:
+ submit: Cambie
+ title: Cambie la tô aplicazion
form:
name: Non
index:
application: Non de aplicazion
+ issued_at: Aprovade il
+ list_tokens: "Lis autorizazions ca sot a son stadis aprovadis cul to non aes aplicazions:"
+ my_apps: Lis mês aplicazions Client
+ my_tokens: Lis aplicazions che o ai autorizât
+ no_apps: Âstu une aplicazion web che tu volaressis regjistrâ par doprâ ca di no cul standard %{oauth}? Tu scugnis regjistrâle prime che podedi fâ richiestis OAuth a chest servizi.
+ register_new: Regjistre la tô aplicazion
revoke: Revoche!
+ title: I miei detais OAuth
new:
submit: Regjistre
title: Regjistre une gnove aplicazion
+ show:
+ edit: Cambie i detais
+ title: Detais OAuth par {app_name}
site:
edit:
anon_edits_link_text: Discuvierç parcè che al è cussì.
commercial: Aree comerciâl
common:
- Comugnâi
+ - prâts
construction: Stradis in costruzion
golf: Troi di golf
industrial: Aree industriâl
update home location on click: Aio di inzornâ il lûc iniziâl cuant che o frachi parsore la mape?
confirm:
already active: Chest profîl al è za stât confermât.
+ before you start: O savìn che tu varâs premure di scomençâ a mapâ, ma prime tu podaressis jemplâ culì sot cualchidune des informazions su di te.
button: Conferme
heading: Conferme di un profîl utent
press confirm button: Frache il boton Conferme par ativâ il to profîl.
confirm_user: conferme chest utent
create_block: bloche chest utent
created from: "Creât di:"
+ ct accepted: Acetâts %{ago} indaûr
+ ct declined: Refudâts
+ ct status: "Tiermins par contribuî:"
+ ct undecided: Nol à decidût
delete_user: elimine chest utent
description: Descrizion
diary: diari
edits: cambiaments
email address: "Direzion di pueste:"
+ friends_changesets: Viôt ducj i grups di cambiaments dai amîs
+ friends_diaries: Viôt dutis lis vôs di diari dai amîs
hide_user: plate chest utent
if set location: Se tu impuestis la tô locazion, tu viodarâs culì une biele mape e altris informazions. Tu puedis impuestâ il to lûc iniziâl inte pagjine des %{settings_link}.
km away: "%{count}km di distance"
my settings: mês impostazions
my traces: percors personâi
nearby users: Altris utents dongje
+ nearby_changesets: Viôt ducj i grups di cambiaments dai utents dongje
+ nearby_diaries: Viôt dutis lis vôs di diari dai utents dongje
new diary entry: gnove vôs dal diari
no friends: No tu âs ancjemò nissun amì.
no nearby users: Nol è ancjemò nissun utent che al declare di mapâ dongje di te.
oauth settings: configurazion OAuth
remove as friend: gjave dai amîs
+ role:
+ administrator: Chest utent al è un aministradôr
+ moderator: Chest utent al è un moderatôr
send message: mande messaç
settings_link_text: impostazions
spam score: "Ponts di spam:"
your friends: I tiei amîs
user_block:
blocks_by:
+ empty: "%{name} nol à ancjemò metût blocs."
heading: Liste dai blocs di %{name}
title: Blocs fats di %{name}
+ blocks_on:
+ empty: "%{name} nol è ancjemò stât blocât."
+ heading: Liste dai blocs su %{name}
+ title: Blocs su %{name}
edit:
back: Cjale ducj i blocs
show: Cjale chest bloc
back: Cjale ducj i blocs
confirm: Sêstu sigûr?
edit: Cambie
+ heading: "%{block_on} blocked by %{block_by}"
reason: "Reson dal bloc:"
revoke: Revoche!
+ revoker: "Chel che al à revocât:"
show: Mostre
status: Stât
+ time_future: Finìs ca di %{time}
time_past: Finît %{time} indaûr
+ title: "%{block_on} blocât di %{block_by}"
user_role:
grant:
confirm: Conferme
+++ /dev/null
-gl-ES:
- dummy: dummy
list:
description: Cambios recentes
description_bbox: Conxuntos de cambios en %{bbox}
+ description_friend: Conxuntos de cambios dos seus amigos
+ description_nearby: Conxuntos de cambios dos usuarios de lugares próximos
description_user: Conxuntos de cambios por %{user}
description_user_bbox: Conxuntos de cambios por %{user} en %{bbox}
heading: Conxuntos de cambios
heading_bbox: Conxuntos de cambios
+ heading_friend: Conxuntos de cambios
+ heading_nearby: Conxuntos de cambios
heading_user: Conxuntos de cambios
heading_user_bbox: Conxuntos de cambios
title: Conxuntos de cambios
title_bbox: Conxuntos de cambios en %{bbox}
+ title_friend: Conxuntos de cambios dos seus amigos
+ title_nearby: Conxuntos de cambios dos usuarios de lugares próximos
title_user: Conxuntos de cambios por %{user}
title_user_bbox: Conxuntos de cambios por %{user} en %{bbox}
timeout:
older_entries: Entradas máis vellas
recent_entries: "Entradas recentes no diario:"
title: Diarios de usuarios
+ title_friends: Diarios de amigos
+ title_nearby: Diarios de usuarios de lugares próximos
user_title: Diario de %{user}
location:
edit: Editar
licence: Licenza
longitude: "Lon:"
manually_select: Seleccionar manualmente outra zona
- mapnik_image: Imaxe de Mapnik
max: máx.
options: Opcións
osm_xml_data: Datos XML do OpenStreetMap
- osmarender_image: Imaxe do Osmarender
output: Saída
paste_html: Pegue o código HTML para incluílo na páxina web
scale: Escala
inbox:
date: Data
from: De
+ messages: Ten %{new_messages} e %{old_messages}
my_inbox: A miña caixa de entrada
+ new_messages:
+ one: "%{count} mensaxe nova"
+ other: "%{count} mensaxes novas"
no_messages_yet: Aínda non ten ningunha mensaxe. Por que non se pon en contacto con algunhas das %{people_mapping_nearby_link}?
+ old_messages:
+ one: "%{count} mensaxe vella"
+ other: "%{count} mensaxes vellas"
outbox: caixa de saída
people_mapping_nearby: persoas próximas a vostede
subject: Asunto
title: Caixa de entrada
- you_have: Ten %{new_count} mensaxes novas e %{old_count} vellas
mark:
as_read: Mensaxe marcada como lida
as_unread: Mensaxe marcada como non lida
outbox:
date: Data
inbox: caixa de entrada
+ messages:
+ one: Vostede enviou %{count} mensaxe
+ other: Vostede enviou %{count} mensaxes
my_inbox: A miña %{inbox_link}
no_sent_messages: Aínda non enviou ningunha mensaxe. Por que non se pon en contacto con algunhas das %{people_mapping_nearby_link}?
outbox: caixa de saída
subject: Asunto
title: Caixa de saída
to: Para
- you_have_sent_messages: Enviou %{count} mensaxes
read:
back_to_inbox: Volver á caixa de entrada
back_to_outbox: Volver á caixa de saída
summary_no_ip: "%{name} creado o %{date}"
title: Usuarios
login:
+ account is suspended: Sentímolo, a súa conta foi suspendida debido a actividades sospeitosas.<br />Póñase en contacto co <a href="%{webmaster}">webmaster</a> se quere debatelo.
account not active: Sentímolo, a súa conta aínda non está activada.<br />Prema na ligazón que hai no correo de confirmación da conta ou <a href="%{reconfirm}">solicite un novo correo de confirmación</a>.
- account suspended: Sentímolo, a súa conta foi suspendida debido a actividades sospeitosas.<br />Póñase en contacto co %{webmaster} se quere debatelo.
auth failure: Sentímolo, non puido acceder ao sistema con eses datos.
create account minute: Crear unha conta. Tan só leva un minuto.
email or username: "Enderezo de correo electrónico ou nome de usuario:"
lost password link: Perdeu o seu contrasinal?
new to osm: É novo no OpenStreetMap?
notice: <a href="http://www.osmfoundation.org/wiki/License/We_Are_Changing_The_License">Máis información acerca do cambio na licenza do OpenStreetMap</a> (<a href="http://wiki.openstreetmap.org/wiki/ODbL/We_Are_Changing_The_License">traducións</a>) (<a href="http://wiki.openstreetmap.org/wiki/Talk:ODbL/Upcoming">conversa</a>)
+ notice_terms: OpenStreetMap pasa a usar unha licenza nova o 1 de abril de 2012. É igual de aberta que a actual, pero algunhas partes desta nova licenza acáenlle mellor á nosa base de datos. Gustaríanos manter as súas contribucións, pero unicamente podemos facelo se acepta que as distribuamos baixo esta nova licenza. En caso contrario, teremos que eliminalos da base de datos.<br /><br />Acceda ao sistema, revise con calma e acepte os novos termos. Grazas!
openid: "%{logo} OpenID:"
openid invalid: Sentímolo, o seu OpenID semella non estar ben formado
openid missing provider: Sentímolo, non podemos contactar co seu provedor do OpenID
remember: "Lembrádeme:"
title: Rexistro
to make changes: Para realizar as modificacións nos datos do OpenStreetMap, cómpre ter unha conta.
- webmaster: webmaster
with openid: "Tamén pode usar o seu OpenID para acceder:"
with username: "Xa ten unha conta no OpenStreetMap? Acceda ao sistema co seu nome de usuario e contrasinal:"
logout:
confirm_user: confirmar este usuario
create_block: bloquear este usuario
created from: "Creado a partir de:"
+ ct accepted: Aceptou hai %{ago}
+ ct declined: Rexeitou
+ ct status: "Termos do colaborador:"
+ ct undecided: Indeciso
deactivate_user: desactivar este usuario
delete_user: borrar este usuario
description: Descrición
diary: diario
edits: edicións
email address: "Enderezo de correo electrónico:"
+ friends_changesets: Explorar todos os conxuntos de cambios dos seus amigos
+ friends_diaries: Explorar todas as entradas de diario dos amigos
hide_user: agochar este usuario
if set location: Se define a súa localización, aquí aparecerá un mapa. Pode establecer o seu lugar de orixe na súa páxina de %{settings_link}.
km away: a %{count}km de distancia
my settings: os meus axustes
my traces: as miñas pistas
nearby users: Outros usuarios próximos
+ nearby_changesets: Explorar todos os conxuntos de cambios dos usuarios de lugares próximos
+ nearby_diaries: Explorar todas as entradas de diario dos usuarios de lugares próximos
new diary entry: nova entrada no diario
no friends: Aínda non engadiu ningún amigo.
no nearby users: Aínda non hai usuarios que estean situados na súa proximidade.
+++ /dev/null
-gsw-CH:
- dummy: dummy
# Messages for Hebrew (עברית)
# Exported from translatewiki.net
# Export driver: syck-pecl
+# Author: Amire80
# Author: Aude
# Author: Deror avi
+# Author: GilCahana
# Author: Itay naor
# Author: YaronSh
+# Author: תומר ט
he:
activerecord:
attributes:
+ diary_comment:
+ body: גוף
diary_entry:
language: שפה
latitude: קו רוחב
message:
body: גוף
recipient: נמען
- sender: שולחת
+ sender: שולח
title: כותרת
trace:
- description: תאור
+ description: ת×\99×\90×\95ר
latitude: קו רוחב
longitude: קו אורך
name: שם
visible: גלוי
user:
active: פעיל
- description: תאור
- email: דואל
+ description: תיאור
+ display_name: שם לתצוגה
+ email: דוא״ל
languages: שפות
- pass_crypt: ס×\99ס×\9e×\94
+ pass_crypt: ססמה
models:
+ acl: רשימת בקרת גישה
+ changeset: ערכת שינויים
+ changeset_tag: תג ערכת שינויים
country: ארץ
diary_comment: תגובה ליומן
diary_entry: רשומה ביומן
+ friend: חבר
language: שפה
- message: מסר
+ message: הודעה
+ node: צומת
+ node_tag: תג צומת
+ notifier: מודיע
+ old_node: צומת ישן
+ old_node_tag: תג צומת ישן
+ old_relation: יחס ישן
+ old_relation_member: איבר יחס ישן
+ old_relation_tag: תג יחס ישן
+ old_way: דרך ישנה
+ old_way_node: צומת דרך ישנה
+ old_way_tag: תג דרך ישנה
+ relation: יחס
+ relation_member: איבר יחס
+ relation_tag: תג יחס
+ session: שיח
+ trace: מסלול
+ tracepoint: נקודת מסלול
+ tracetag: תג מסלול
user: משתמש
user_preference: העדפות המשתמש
+ user_token: אסימון משתמש
way: דרך
+ way_node: צומת דרך
+ way_tag: תג דרך
+ application:
+ require_cookies:
+ cookies_needed: נראה שהעוגיות כבויות אצלך – נא להפעיל עוגיות בדפדפן שלך כדי להמשיך.
+ setup_user_auth:
+ blocked: גישתך ל־API נחסמה. נא להיכנס לממשק הווב למידע נוסף.
+ need_to_see_terms: גישתך ל־API מושעית זמנית. נא להיכנס לאתר כדי לצפות בתנאי התרומה. אין צורך לקבל אותם, אבל חובה להציג אותם.
browse:
changeset:
+ changeset: "ערכת שינויים: %{id}"
+ changesetxml: XML של ערכת שינויים
download: הורדת %{changeset_xml_link} או %{osmchange_xml_link}
+ feed:
+ title: ערכת שינויים %{id}
+ title_comment: ערכת שינויים %{id} – %{comment}
+ osmchangexml: osmChange XML
+ title: ערכת שינויים
changeset_details:
- belongs_to: "ש×\99×\99×\9a ×\9cÖ¾:"
+ belongs_to: "ש×\99×\99×\9bת ×\9c:"
bounding_box: "תיבה תוחמת:"
box: תיבה
+ closed_at: "נסגרה ב:"
created_at: "נוצר בתאריך:"
- show_area_box: הצגת תיבת תחום
+ has_nodes:
+ one: מחזיק בצומת אחד
+ other: "מחזיק ב־%{count} צמתים:"
+ has_relations:
+ one: מחזיק ביחס אחד
+ other: "מחזיק ב־%{count} יחסים:"
+ has_ways:
+ one: מחזיק בדרך אחת
+ other: "מחזיק ב־%{count} דרכים:"
+ no_bounding_box: לא נשמרה תיבה תוחמת עבור ערכת השינויים הזאת.
+ show_area_box: הצגת תיבת אזור
common_details:
changeset_comment: "הערה:"
deleted_at: "נמחק ב:"
- deleted_by: "נמחק על ידי:"
+ deleted_by: "נמחק על־ידי:"
edited_at: "נערך ב:"
- edited_by: "נערך על ידי:"
- version: "גירסא:"
+ edited_by: "נערך על־ידי:"
+ in_changeset: "בערכת השינויים:"
+ version: "גרסה:"
containing_relation:
- entry: קשר %{relation_name}
- entry_role: קשר %{relation_name} (בתור %{relation_role})
+ entry: ×\99×\97ס %{relation_name}
+ entry_role: ×\99×\97ס %{relation_name} (בתור %{relation_role})
map:
deleted: נמחק
+ edit:
+ area: עריכת אזור
+ node: עריכת צומת
+ relation: עריכת יחס
+ way: עריכת דרך
larger:
area: צפייה בשטח במפה גדולה יותר
node: צפייה בצומת במפה גדולה יותר
- relation: צפ×\99×\99×\94 ×\91קשר במפה גדולה יותר
+ relation: צפ×\99×\99×\94 ×\91×\99×\97ס במפה גדולה יותר
way: צפייה בדרך במפה גדולה יותר
loading: בטעינה...
navigation:
all:
+ next_changeset_tooltip: ערכת השינויים הבאה
+ next_node_tooltip: הצומת הבא
next_relation_tooltip: היחס הבא
next_way_tooltip: הדרך הבאה
+ prev_changeset_tooltip: ערכת השינויים הקודמת
+ prev_node_tooltip: הצומת הקודם
prev_relation_tooltip: היחס הקודם
prev_way_tooltip: הדרך הקודמת
user:
name_changeset_tooltip: צפייה בעריכות של %{user}
- next_changeset_tooltip: ×\94ער×\99×\9b×\94 ×\94×\91×\90×\94 ×¢"×\99 %{user}
- prev_changeset_tooltip: ×\94ער×\99×\9b×\94 ×\94ק×\95×\93×\9eת ×¢"×\99 %{user}
+ next_changeset_tooltip: ×\94ער×\99×\9b×\94 ×\94×\91×\90×\94 ש×\9c %{user}
+ prev_changeset_tooltip: ×\94ער×\99×\9b×\94 ×\94ק×\95×\93×\9eת ש×\9c %{user}
node:
download: "%{download_xml_link} או %{view_history_link}"
download_xml: הורדת XML
node_title: "צומת: %{node_name}"
view_history: צפייה בהיסטוריה
node_details:
- coordinates: "ק×\95×\90×\95ר×\93×\99× ×\98×\95ת:"
- part_of: "חלק מ־:"
+ coordinates: "× ×§×\95×\93×\95ת צ×\99×\95×\9f:"
+ part_of: "חלק מתוך:"
node_history:
download: "%{download_xml_link} או %{view_details_link}"
download_xml: הורדת XML
node_history_title: "היסטוריית הצומת: %{node_name}"
view_details: צפייה בפרטים
not_found:
- sorry: אנו מתנצלים, אך ה%{type} בעל המזהה %{id}, לא נמצא.
+ sorry: אנו מתנצלים, אך הסוג %{type} בעל המזהה %{id} לא נמצא.
type:
+ changeset: ערכת שינויים
node: צומת
- relation: קשר
+ relation: ×\99×\97ס
way: דרך
paging_nav:
of: מתוך
showing_page: הצגת דף
relation:
- relation: קשר
+ download: "%{download_xml_link} או %{view_history_link}"
+ download_xml: הורדת XML
+ relation: יחס
+ relation_title: "יחס: %{relation_name}"
+ view_history: לצפייה בהיסטוריה
relation_details:
- members: "×\97ברים:"
- part_of: "חלק מ־:"
+ members: "×\90×\99ברים:"
+ part_of: "חלק מתוך:"
relation_history:
download: "%{download_xml_link} או %{view_details_link}"
download_xml: הורדת XML
- relation_history: ×\94×\99ס×\98×\95ר×\99×\99ת ×\94ק×\99ש×\95ר
- relation_history_title: "×\94×\99ס×\98×\95ר×\99×\99ת ×\94ק×\99ש×\95ר: %{relation_name}"
+ relation_history: ×\94×\99ס×\98×\95ר×\99×\99ת ×\94×\99×\97ס
+ relation_history_title: "×\94×\99ס×\98×\95ר×\99×\99ת ×\94×\99×\97ס: %{relation_name}"
view_details: צפייה בפרטים
relation_member:
entry_role: "%{type} %{name} בתור %{role}"
type:
node: צומת
- relation: קשר
+ relation: ×\99×\97ס
way: דרך
+ start:
+ manually_select: בחירה ידנית באזור אחר
+ view_data: לצפייה במידע עבור התצוגה הנוכחית של המפה
start_rjs:
data_frame_title: נתונים
data_layer_name: נתונים
details: פרטים
- edited_by_user_at_timestamp: נערך על ידי [[user]] ב־[[timestamp]]
- hide_areas: להסתרת איזורים
+ drag_a_box: נא לגרור את התיבה על המפה כדי לבחור אזור
+ edited_by_user_at_timestamp: נערך על־ידי [[user]] ב־[[timestamp]]
+ hide_areas: להסתרת אזורים
history_for_feature: ההיסטוריה של [[feature]]
load_data: טעינת נתונים
- loaded_an_area_with_num_features: "×\94×\90×\96×\95ר ×©× ×\98×¢×\9f ×\9e×\9b×\99×\9c [[num_features]] ת×\9b×\95× ×\95ת. ×\91×\90×\95פ×\9f ×\9b×\9c×\9c×\99, ר×\91 ×\94×\93פ×\93×¤× ×\99×\9d ×\9c×\90 ×\99×\95×\9b×\9c×\95 ×\9c×\94ת×\9e×\95×\93×\93 ×¢×\9d ×\94צ×\92×\94 ש×\9c ×\9b×\96×\90ת ×\9b×\9e×\95ת ש×\9c × ×ª×\95× ×\99×\9d. ×\9cר×\91, ×\93פ×\93×¤× ×\99×\9d ×¢×\95×\91×\93×\99×\9d ×\91×\90×\95פ×\9f ×\9e×\99×\98×\91×\99 ×\91×\94צ×\92ת פ×\97×\95ת ×\9eÖ¾100 ת×\9b×\95× ×\95ת ×\91×\95Ö¾×\96×\9e× ×\99ת: ×\91×\99צ×\95×¢ ×\9eש×\99×\9e×\95ת × ×\95ספ×\95ת ×¢×\9c×\95×\9c×\95ת ×\9c×\92ר×\95×\9d ×\9c×\93פ×\93פ×\9f ×\9c×\94×\99×\95ת ×\90×\99×\98×\99/×\9c×\94תקע. ×\90×\9d ×\90×\9b×\9f ×\99ש צ×\95ר×\9a ×\9c×\94צ×\99×\92 ×\9b×\9e×\95ת ×\9b×\96×\90ת ש×\9c × ×ª×\95× ×\99×\9d, × ×\99ת×\9f ×\9c×\9c×\97×\95×¥ ×¢×\9c ×\94×\9c×\97צ×\9f ש×\9c×\94×\9c×\9f."
+ loaded_an_area_with_num_features: "×\94×\90×\96×\95ר ×©× ×\98×¢×\9f ×\9e×\9b×\99×\9c [[num_features]] ת×\9b×\95× ×\95ת. ×\91×\90×\95פ×\9f ×\9b×\9c×\9c×\99, ×\97×\9cק ×\9e×\94×\93פ×\93×¤× ×\99×\9d ×\9c×\90 ×\99×\95×\9b×\9c×\95 ×\9c×\94ת×\9e×\95×\93×\93 ×¢×\9d ×\94צ×\92×\94 ש×\9c ×\9b×\96×\95 ×\9b×\9e×\95ת ש×\9c × ×ª×\95× ×\99×\9d. ×\9cר×\95×\91, ×\93פ×\93×¤× ×\99×\9d ×¢×\95×\91×\93×\99×\9d ×\91×\90×\95פ×\9f ×\9e×\99×\98×\91×\99 ×\91×\94צ×\92ת פ×\97×\95ת ×\9eÖ¾100 ת×\9b×\95× ×\95ת ×\91×\95Ö¾×\96×\9e× ×\99ת: ×\91×\99צ×\95×¢ ×\9eש×\99×\9e×\95ת × ×\95ספ×\95ת ×¢×\9c×\95×\9c ×\9c×\92ר×\95×\9d ×\9c×\93פ×\93פ×\9f ×\9cפע×\95×\9c ×\91×\90×\95פ×\9f ×\90×\99×\98×\99 ×\90×\95 ×\9c×\94×\99תקע. ×\90×\9d ×\91רצ×\95× ×\9a ×\91×\9b×\9c ×\96×\90ת ×\9c×\94צ×\99×\92 ×\9e×\99×\93×¢ ×\96×\94, ×\91×\90פשר×\95ת×\9a ×\9c×\94צ×\99×\92 ×\90×\95ת×\95 ×\91×\9c×\97×\99צ×\94 ×¢×\9c ×\94×\9bפת×\95ר ×\9c×\9e×\98×\94."
loading: בטעינה...
manually_select: בחירת אזור אחר ידנית
object_list:
node: צומת
way: דרך
private_user: משתמש פרטי
- show_areas: ×\9c×\94צ×\92ת ×\90×\99×\96×\95ר×\99×\9d
+ show_areas: להצגת אזורים
show_history: הצגת ההיסטוריה
unable_to_load_size: "לא ניתן לטעון: תיבה תוחמת בגודל [[bbox_size]] היא גדולה מדי (מוכרחה להיות קטנה מאשר %{max_bbox_size})"
wait: נא להמתין...
zoom_or_select: התקרבות או בחירה אזור במפה לצפייה
tag_details:
- tags: "תגיות:"
+ tags: "תגים:"
+ wiki_link:
+ key: עמוד התיאור עבור התג %{key}
+ tag: עמוד התיאור עבור התג %{key}=%{value}
+ wikipedia_link: הערך %{page} בוויקיפדיה
+ timeout:
+ sorry: אנו מתנצלים, אך טעינת התוכן עבור ה%{type} עם המזהה %{id}, ארכה זמן רב מדי.
+ type:
+ changeset: ערכת שינויים
+ node: צומת
+ relation: קשר
+ way: דרך
way:
download: "%{download_xml_link} או %{view_history_link}"
download_xml: הורדת XML
one: גם כן חלק מהדרך %{related_ways}
other: גם כן חלק מהדרכים %{related_ways}
nodes: "צמתים:"
- part_of: "חלק מ־:"
+ part_of: "חלק מתוך:"
way_history:
download: "%{download_xml_link} או %{view_details_link}"
download_xml: הורדת XML
way_history: היסטוריית הדרך
way_history_title: "היסטוריית הדרך: %{way_name}"
changeset:
+ changeset:
+ anonymous: אלמוני
+ big_area: (גדול)
+ no_comment: (אין)
+ no_edits: (אין עריכות)
+ show_area_box: הצגת תיבת אזור
+ still_editing: (עדיין בעריכה)
+ view_changeset_details: הצגת פרטי ערכת שינויים
+ changeset_paging_nav:
+ next: הבא »
+ previous: « הקודם
+ showing_page: הצגת הדף %{page}
changesets:
+ area: שטח
+ comment: הערה
+ id: מזהה
+ saved_at: "נשמרו ב:"
user: משתמש
list:
description: שינויים אחרונים
+ description_bbox: ערכות שינויים בתוך %{bbox}
+ description_friend: ערכות שינויים של חברים שלכם
+ description_nearby: ערכות שינויים של משתמשים בסביבה
+ description_user: ערכות שינויים של %{user}
+ description_user_bbox: ערכות שינויים של %{user} בתוך %{bbox}
+ heading: ערכות שינויים
+ heading_bbox: ערכות שינויים
+ heading_friend: ערכות שינויים
+ heading_nearby: ערכות שינויים
+ heading_user: ערכות שינויים
+ heading_user_bbox: ערכות שינויים
+ title: ערכות שינויים
+ title_bbox: ערכות שינויים בתוך %{bbox}
+ title_friend: ערכות שינויים של החברים שלך
+ title_nearby: ערכות שינויים של משתמשים בסביבה
+ title_user: ערכות שינויים של %{user}
+ title_user_bbox: ערכות שינויים של %{user} בתוך %{bbox}
+ timeout:
+ sorry: סליחה, לוקח יותר מדי זמן לאחזר על רשימת ערכות השינויים שביקשת.
diary_entry:
+ comments:
+ ago: לפי %{ago}
+ comment: הערה
+ has_commented_on: "%{display_name} העיר על רשומות היומן הבאות"
+ newer_comments: הערות חדשות
+ older_comments: הערות ישנות
+ post: רשומה
+ when: מתי
diary_comment:
- comment_from: "%{comment_created_at}ב %{link_user}תגובה מ"
+ comment_from: תגובה מ־%{link_user} ב־%{comment_created_at}
confirm: לאישור
hide_link: להסתרת הערה זו
diary_entry:
comment_count:
- one: תגובה 1
+ one: תגובה אחת
other: "%{count} תגובות"
+ comment_link: הערות לרשומה הזאת
confirm: לאישור
edit_link: עריכת רשומה
+ hide_link: הסתרת רשומה
+ posted_by: נשלח על־ידי %{link_user} ב־%{created} ב%{language_link}
+ reply_link: תגובה לרשומה הזאת
edit:
- language: ":שפה"
- latitude: ":קו רוחב"
- longitude: ":קו אורך"
+ body: "תוכן:"
+ language: "שפה:"
+ latitude: "קו רוחב:"
+ location: "מיקום:"
+ longitude: "קו אורך:"
+ marker_text: מיקום רשומת היומן
save_button: לשמירה
+ subject: "נושא:"
+ title: עריכת רשומת יומן
+ use_map_link: להשתמש במפה
+ feed:
+ all:
+ description: רשומות יומן אחרונות מאת משתמשי OpenStreetMap
+ title: רשומות ביומן של OpenStreetMap
+ language:
+ description: רשומות יומן אחרונות מאת משתמשי OpenStreetMap ב%{language_name}
+ title: רשומות יומן OpenStreetMap ב%{language_name}
+ user:
+ description: רשומות יומן OpenStreetMap אחרונות מאת %{user}
+ title: רשומות יומן OpenStreetMap של %{user}
list:
in_language_title: רשומות יומן ב%{language}
+ new: רשומת יומן חדשה
+ new_title: כתיבת רשומה חדשה ביומן המשתמש שלך
+ newer_entries: רשומות חדשות יותר
+ no_entries: אין רשומות יומן
+ older_entries: רשומות ישנות יותר
+ recent_entries: "רשומות יומן אחרונות:"
+ title: יומנים של המשתמש
+ title_friends: יומנים של חברים
+ title_nearby: יומנים של משתמשים בסביבה
+ user_title: היומן של %{user}
location:
edit: לעריכה
location: "מיקום:"
view: לצפייה
+ new:
+ title: רשומת יומן חדשה
no_such_entry:
+ body: סליחה, עדיין אין רשומת יומן או תגובה עם המזהה %{id}. אולי האיות לא נכון ואולי לחצת על קישור שגוי.
+ heading: "אין רשומה עם המזהה: %{id}"
title: אין כזו רשומה ביומן
no_such_user:
+ body: סליחה, אין חשבון בשם %{user}. אולי האיות לא נכון ואולי לחצת על קישור שגוי.
heading: המשתמש %{user} אינו קיים
title: אין משתמש כזה
view:
- login: כניסה
- login_to_leave_a_comment: בצעו %{login_link} כדי להשאיר תגובה
+ leave_a_comment: הוספת תגובה
+ login: להיכנס
+ login_to_leave_a_comment: נא %{login_link} כדי להשאיר תגובה
+ save_button: שמירה
+ title: היומן של %{user}‏ | %{title}
+ user_title: היומן של %{user}
editor:
+ default: בררת מחדל (כעת %{name})
+ potlatch:
+ description: Potlatch 1 (עורך בתוך הדפדפן)
+ name: Potlatch 1
+ potlatch2:
+ description: Potlatch 2 (עורך בתוך הדפדפן)
+ name: Potlatch 2
remote:
+ description: שליטה מרחוק (JOSM או Merkaartor)
name: שליטה מרחוק
export:
start:
add_marker: להוספת סמן למפה
+ area_to_export: האזור לייצוא
+ embeddable_html: HTML שניתן להטמעה
export_button: ייצוא
+ export_details: המידע ב־OpenStreetMap מוגש בכפוף לרישיון <a href="http://creativecommons.org/licenses/by-sa/2.0/deed.he/">CC ייחוס־שיתוף זהה 2.0</a>.
+ format: פורמט
+ format_to_export: תבנית לייצוא
image_size: גודל התמונה
latitude: "קווי אורך:"
+ licence: רישיון
longitude: "קווי רוחב:"
- max: מקסימום
+ manually_select: בחירה ידנית של אזור אחר
+ map_image: תמונת מפה (תצוגת שכבה תקנית)
+ max: לכל היותר
options: אפשרויות
+ osm_xml_data: נתוני XML של OpenStreetMap
output: פלט
- paste_html: ×\9c×\94×\93×\91קת HTML להטמעה באתר
+ paste_html: ×\9c×\94×\93×\91×\99ק HTML להטמעה באתר
scale: קנה מידה
too_large:
- heading: האיזור גדול מידי
+ body: האזור גדול מכדי שאפשר יהיה לייצא אותו בתור נתוני XML של OpenStreetMap. נא להתקרב או לבחור אזור קטן יותר.
+ heading: האזור גדול מדי
zoom: מרחק מתצוגה
start_rjs:
add_marker: הוספת סמן למפה
change_marker: שינוי מיקום סמן
click_add_marker: לחצו על המפה להוספת סמן
- drag_a_box: × ×\90 ×\9c×\92ר×\95ר ×\9e×\9c×\91×\9f ×¢×\9c ×\94×\9eפ×\94 ×\9c×\91×\97×\99רת ×\90×\99×\96×\95ר
+ drag_a_box: נא לגרור מלבן על המפה לבחירת אזור
export: ייצוא
- manually_select: ×\9c×\91×\97×\99ר×\94 ×\99×\93× ×\99ת ש×\9c ×\90×\99זור אחר
+ manually_select: ×\91×\97×\99ר×\94 ×\99×\93× ×\99ת ש×\9c ×\90זור אחר
view_larger_map: לצפייה במפה גדולה יותר
geocoder:
description:
title:
geonames: מיקום מאתר <a href="http://www.geonames.org/">GeoNames</a>
+ osm_namefinder: "%{types} מ־<a href=\"http://gazetteer.openstreetmap.org/namefinder/\">OpenStreetMap Namefinder</a>"
osm_nominatim: מיקום מאתר <a href="http://nominatim.openstreetmap.org/">OpenStreetMap Nominatim</a>
types:
cities: ערים
places: מקומות
towns: עיירות
+ description_osm_namefinder:
+ prefix: "%{distance} מ%{direction} ל־%{type}"
direction:
east: מזרח
north: צפון
- north_east: צפון-מזרח
- north_west: צפון-מערב
+ north_east: צפון־מזרח
+ north_west: צפון־מערב
south: דרום
- south_east: דרום-מזרח
- south_west: דרום-מערב
+ south_east: דרום־מזרח
+ south_west: דרום־מערב
west: מערב
distance:
one: בערך קילומטר
uk_postcode: תוצאות מאתר <a href="http://www.npemap.org.uk/">NPEMap / FreeThe Postcode</a>
us_postcode: תוצאות מאתר <a href="http://geocoder.us/">Geocoder.us</a>
search_osm_namefinder:
- suffix_parent: " %{suffix} (%{parentdistance} %{parentdirection} מ-%{parentname})"
- suffix_place: " %{distance} %{direction} מ-%{placename}"
+ suffix_parent: "%{suffix} (%{parentdistance} %{parentdirection} ל־%{parentname})"
+ suffix_place: ", %{distance} מ%{direction} ל־%{placename}"
search_osm_nominatim:
prefix:
amenity:
atm: כספומט
auditorium: אודיטוריום
bank: בנק
- bar: פ×\90×\91
+ bar: ×\91ר
bench: ספסל
bicycle_parking: חניית אופניים
bicycle_rental: השכרת אופניים
college: מכללה
community_centre: מרכז קהילתי
courthouse: בית משפט
- crematorium: קר×\9e×\98×\95ר×\99×\95×\9d
+ crematorium: ×\9eשרפ×\94
dentist: רופא שיניים
doctors: רופאים
dormitory: מעונות
health_centre: מרכז בריאות
hospital: בית חולים
hotel: בית מלון
+ hunting_stand: תצפית ציידים
ice_cream: גלידה
kindergarten: גן ילדים
library: ספרייה
+ market: שוק
marketplace: שוק
mountain_rescue: תחנת חילוץ הררית
+ nightclub: מועדון לילה
nursery: פעוטון
nursing_home: בית אבות
office: משרד
park: פארק
- parking: ×\97× ×\99×\99×\94
+ parking: חניה
pharmacy: בית מרקחת
place_of_worship: מקום פולחן
police: משטרה
pub: פאב
public_building: מבנה ציבור
public_market: שוק
- reception_area: ×\90×\99×\96×\95ר ק×\91×\9cה
+ reception_area: ×\90×\96×\95ר ק×\9c×\99×\98ה
recycling: נקודת מיחזור
restaurant: מסעדה
retirement_home: בית אבות
veterinary: מרפאה וטרינרית
village_hall: אולם הכפר
waste_basket: פח אשפה
- wifi: ×\90×\99×\96×\95ר WiFi
+ wifi: ×\92×\99שת WiFi
youth_centre: מרכז נוער
boundary:
- administrative: ×\92×\91×\95×\9c ×\90×\99×\96×\95ר ×\9e× ×\94×\9c
+ administrative: ×\92×\91×\95×\9c ש×\98×\97 ש×\99פ×\95×\98
building:
apartments: בית דירות
block: אבן בניין
terrace: מרפסת פתוחה
tower: מגדל
train_station: תחנת רכבת
+ university: אוניברסיטה
highway:
bridleway: שביל עבור סוסים
bus_guideway: נתיב תחבורה ציבורית מונחית
bus_stop: תחנת אוטובוס
- byway: ×\93ר×\9a צ×\99×\93×\99ת
+ byway: דרך צדית
construction: דרך ראשית בבנייה
cycleway: נתיב אופניים
distance_marker: סמן מרחק
ford: מעברה (נקודת חציית נהר)
gate: שער
living_street: רחוב
- minor: ×\93ר×\9a צ×\99×\93×\99ת
+ minor: דרך צדית
motorway: כביש
motorway_junction: צומת כבישים
motorway_link: כביש
raceway: מסלול מרוצים
residential: מגורים
road: דרך
- secondary: ×\93ר×\9a ×\9e×\99×©× ×\99ת
- secondary_link: ×\93ר×\9a ×\9e×\99×©× ×\99ת
+ secondary: דרך משנית
+ secondary_link: דרך משנית
service: כביש שירות
services: שירותי דרך
steps: מדרגות
stile: מעבר מעל גדר
- tertiary: ×\93ר×\9a צ×\99×\93×\99ת
+ tertiary: דרך צדית
track: מסלול מרוצים
trail: שביל
+ trunk: דרך ראשית
+ trunk_link: דרך ראשית
unclassified: כביש לא מסווג
unsurfaced: כביש לא סלול
historic:
- archaeological_site: ×\90תר ×\90ר×\9b×\99×\90×\95×\9c×\95×\92×\99
+ archaeological_site: אתר ארכאולוגי
battlefield: שדה קרב
boundary_stone: אבן גבול
building: בניין
landuse:
allotments: הקצאת קרקע
basin: אגן
+ brownfield: אזור תעשייה נטוש
cemetery: בית קברות
- commercial: ×\90×\99×\96×\95ר ×\9eס×\97ר×\99
+ commercial: אזור מסחרי
conservation: שמורה
+ construction: אזור בנייה
+ farm: חווה
+ farmland: שטח חקלאי
+ farmyard: חצר חווה
+ forest: יער
+ grass: דשא
+ greenfield: שטחים ירוקים
+ industrial: אזור תעשייה
+ landfill: מזבלה
+ meadow: אחו
+ military: שטח צבאי
+ mine: מכרה
+ mountain: הר
+ nature_reserve: שמורת טבע
+ park: פארק
+ piste: מסלול סקי
+ plaza: רחבה
+ quarry: מחצבה
+ railway: מסילת ברזל
+ recreation_ground: שטחי נופש ופנאי
+ reservoir: מאגר
+ residential: אזור מגורים
+ retail: קמעונאי
+ village_green: כיכר הכפר
+ vineyard: כרם
+ wetland: מלחה
+ wood: חורשה
+ leisure:
+ beach_resort: אתר נופש לחוף ים
+ common: שטח משותף
+ fishing: אזור דיג
+ garden: גן
+ golf_course: מגרש גולף
+ ice_rink: גלישה על הקרח
+ marina: מרינה
+ miniature_golf: מיני־גולף
+ nature_reserve: שמורת טבע
+ park: פארק
+ pitch: מגרש ספורט
+ playground: מגרש משחקים
+ recreation_ground: שטחי נופש ופנאי
+ slipway: ממשה
+ sports_centre: מרכז ספורט
+ stadium: אצטדיון
+ swimming_pool: ברֵכת שחיה
+ track: מסלול ריצה
+ water_park: פארק מים
natural:
+ bay: מפרץ
+ beach: חוף רחצה
+ cape: כף
+ cave_entrance: כניסה למערה
+ channel: תעלה
+ cliff: מצוק
coastline: קו חוף
crater: מכתש
feature: תכונה
hill: גבעה
island: אי
land: אדמה
- marsh: ביצה
- moor: ×\91×\99צ×\94
+ marsh: ביצה רדודה
+ moor: ×\90×\93×\9eת ×\9b×\91×\95×\9c
mud: בוץ
peak: פסגה
point: נקודה
house: בית
houses: בתים
island: אי
- islet: איון
- locality: ×\90×\99×\96×\95ר ×\9eק×\95×\9e×\99
- moor: ×\91×\99צ×\94
+ islet: איוֹן
+ locality: ×\99×\99ש×\95×\91
+ moor: ×\90×\93×\9eת ×\9b×\91×\95×\9c
municipality: עירייה
postcode: מיקוד
- region: ×\90×\99×\96×\95ר
+ region: אזור
sea: ים
state: מדינה
subdivision: חלוקת משנה
suburb: פרוור
town: עיירה
- unincorporated_area: ×\90×\99×\96×\95ר בלתי מאוגד
+ unincorporated_area: ש×\98×\97 בלתי מאוגד
village: כפר
railway:
abandoned: מסילת ברזל נטושה
junction: מפגש מסילות ברזל
level_crossing: מפגש מסילת ברזל וכביש
light_rail: רכבת קלה
- monorail: ×\9e×\95× ×\95ר×\99×\99×\9c
+ monorail: ר×\9b×\91ת ×\97×\93־פס×\99ת
narrow_gauge: מסילת רכבת צרה
platform: רציף רכבת
preserved: רכבת משומרת
+ spur: שלוחת מסילת ברזל
station: תחנת רכבת
subway: תחנת רכבת תחתית
subway_entrance: כניסה לתחנת רכבת תחתית
+ switch: נקודות מסילת ברזל
tram: חשמלית
tram_stop: תחנת חשמלית
yard: מוסך רכבות
shop:
+ alcohol: חנות לממכר משקאות אלכוהוליים
apparel: חנות בגדים
art: חנות חפצי אמנות
bakery: מאפייה
cosmetics: חנות קוסמטיקה
department_store: כלבו
discount: חנות מוזלת
- doityourself: חנות עשה-זאת-בעצמך
+ doityourself: חנות עשה־זאת־בעצמך
drugstore: בית מרקחת
dry_cleaning: ניקוי יבש
electronics: חנות אלקטרוניקה
- estate_agent: מתווך נדל"ן
+ estate_agent: מתווך נדל״ן
+ farm: חנות מוצרי חווה
fashion: חנות אופנה
fish: חנות דגים
florist: חנות פרחים
grocery: מכולת
hairdresser: מעצב שער
hardware: חנות חומרי בניין
+ hifi: ציוד אלקטרוני
insurance: ביטוח
jewelry: חנות תכשיטים
kiosk: קיוסק
market: שוק
mobile_phone: חנות טלפונים ניידים
motorcycle: חנות אופנועים
- music: חנות כלי מוזיקה
+ music: חנות כלי נגינה
+ newsagent: סוכנות חדשות
optician: אופטיקאי
organic: חנות מזון אורגני
outdoor: חנות ציוד מחנאות
supermarket: סופרמרקט
toys: חנות צעצועים
travel_agency: סוכנות נסיעות
+ video: ספריית וידאו
+ wine: חנות לממכר משקאות אלכוהוליים
tourism:
alpine_hut: בקתה אלפינית
artwork: יצירת אמנות
- attraction: ×\90תר ×\91×¢×\9c עניין
+ attraction: ×\9e×\95ק×\93 עניין
bed_and_breakfast: לינה וארוחת בוקר
cabin: בקתה
camp_site: אתר מחנאות
- caravan_site: ×\90תר קר×\95×\95×\90×\9f
+ caravan_site: ×\90תר ×\9cקר×\95×\95×\90× ×\99×\9d
chalet: טירה
guest_house: בית הארחה
- hostel: ×\90×\9b×¡× ×\99×\99×\94
- hotel: מלון
+ hostel: אכסניה
+ hotel: ×\91×\99ת ×\9e×\9c×\95×\9f
information: מידע
+ lean_to: סככה
motel: מלון דרכים
museum: מוזיאון
- picnic_site: ×\90תר פ×\99×§× ×\99ק
- theme_park: פ×\90רק × ×\95ש×\90×\99
+ picnic_site: ×\90תר ×\9cפ×\99×§× ×\99ק×\99×\9d
+ theme_park: פ×\90רק שעש×\95×¢×\99×\9d
valley: עמק
viewpoint: נקודת תצפית
zoo: גן חיות
waterway:
- boatyard: ×\91×\99ת ס×\99ר×\95ת
+ boatyard: ×\9e×¡×¤× ×\94
canal: תעלה
- connector: ×\9e×\97×\91ר נתיבי מים
+ connector: × ×§×\95×\93ת ×\97×\99×\91×\95ר ×\91×\99×\9f נתיבי מים
dam: סכר
derelict_canal: תעלה נטושה
ditch: מחפורת
dock: רציף
drain: ביוב
- lock: מנעול
- mineral_spring: מעיין מים מינרלים
+ lock: תא שיט
+ lock_gate: שער בתא שיט
+ mineral_spring: מעיין מים מינרליים
mooring: מעגן
rapids: אשדות
river: נהר
wadi: ואדי
water_point: נקודת מים
waterfall: מפל מים
- weir: ×\95×\99ר
+ weir: ס×\9bר
html:
dir: rtl
+ javascripts:
+ map:
+ base:
+ cycle_map: מפת אופניים
+ standard: תקני
+ transport_map: מפת תחבורה
+ site:
+ edit_disabled_tooltip: להתקרב כדי לערוך את המפה
+ edit_tooltip: עריכת המפה
+ edit_zoom_alert: יש להתקרב כדי לערוך את המפה
+ history_disabled_tooltip: יש לקרב כדי להציג עריכות עבור אזור זה
+ history_tooltip: הצגת עריכות עבור אזור זה
+ history_zoom_alert: יש לקרב כדי להציג עריכות עבור אזור זה
layouts:
+ community_blogs: בלוגים של הקהילה
+ community_blogs_title: בלוגים של חברי קהילת OpenStreetMap
+ copyright: זכויות יוצרים ורישיון
+ documentation: תיעוד
+ documentation_title: תיעוד המיזם
+ donate: תִמכו ב־OpenStreetMap על־ידי %{link} לקרן לשדרוג החומרה.
+ donate_link_text: תרומה
edit: עריכה
- export: יצוא
+ edit_with: לעריכה עם %{editor}
+ export: ייצוא
export_tooltip: ייצוא נתוני המפה
- gps_traces_tooltip: ניהול מסלולים
+ foundation: קרן
+ foundation_title: קרן אופן סטריט מאפ
+ gps_traces: מסלולי GPS
+ gps_traces_tooltip: ניהול מסלולי GPS
+ help: עזרה
+ help_centre: מרכז עזרה
+ help_title: אתר עזרה עבור המיזם
history: היסטוריה
home: הביתה
home_tooltip: מעבר למיקום הבית
one: תיבת הדואר הנכנס שלכם מכילה הודעה אחת שלא נקראה
other: תיבת הדואר הנכנס שלכם מכילה %{count} הודעות שלא נקראו
zero: תיבת הדואר הנכנס שלכם אינה מכילה הודעות שלא נקראו
- intro_1: .היא מפה בחינם של כל העולם, וחופשית לעריכה. יוצרים אותה אנשים כמוך OpenStreetMap
- intro_2: .מאפשרת לך לראות, לערוך ולהשתמש בנתונים גיאוגרפיים בצורה שיתופית מכל מקום בעולם OpenStreetMap
+ intro_1: OpenStreetMap היא מפה חופשית של כל העולם, שכל אחד יכול לערוך. יוצרים אותה אנשים כמוך.
+ intro_2: מיזם OpenStreetMap מאפשר לך לצפות בנתונים גאוגרפיים וכן לערוך אותם ולהשתמש בהם בצורה שיתופית מכל מקום בעולם.
+ intro_3: "אתר OpenStreetMap מוצג בחסות %{ucl}‏, %{ic} ו־%{bytemark}. למידע על נותני חסות נוספים של הפרויקט ראו: %{partners}."
+ intro_3_ic: המכללה הקיסרית לונדון
+ intro_3_partners: ויקי
+ license:
+ title: מידע בֹ־OpenStreetMap מתפרסם לפי תנאי רישיון Creative Commons–ייחוס–שיתוף זהה 2.0 כללי
log_in: כניסה לחשבון
log_in_tooltip: כניסה עם חשבון קיים
logo:
alt_text: הלוגו של OpenStreetMap
logout: יציאה מהחשבון
logout_tooltip: ניתוק
+ make_a_donation:
+ text: תרומה
+ title: תִמכו במיזם OpenStreetMap על־ידי מתן תרומה כספית
+ osm_offline: מסד הנתונים של אתר OpenStreetMap אינו מקוון כעת בשל עבודות תחזוקה המבוצעות בו.
+ osm_read_only: מסד הנתונים של אתר OpenStreetMap נתון כעת במצב קריאה בלבד בשל עבודות תחזוקה המבוצעות בו.
sign_up: הרשמה
sign_up_tooltip: יצירת חשבון לעריכה
- tag_line: ויקי חופשי של מפת העולם
+ sotm2011: בואו לכנס אופן סטריט מאפ 2011, מצב המפה, ספטמבר 9–11 בדנוור!
+ tag_line: מפת עולם חופשית בשיטת הוויקי
user_diaries: יומני משתמשים
user_diaries_tooltip: צפייה ביומני המשתמש
view: תצוגה
- view_tooltip: צפ×\99×\99×\94 ×\91×\9eפ×\95ת
- welcome_user: "%{user_link}ברוך הבא"
+ view_tooltip: ×\9cצפ×\99×\99×\94 ×\91×\9eפ×\94
+ welcome_user: ברוך בואך, %{user_link}
welcome_user_link_tooltip: דף המשתמש שלך
+ wiki: ויקי
+ wiki_title: אתר ויקי עבור המיזם
+ license_page:
+ foreign:
+ english_link: העמוד המקורי באנגלית
+ text: במקרה של חוסר תאימות בין עמוד מתורגם זה ובין %{english_original_link}, יש לתת עדיפות לעמוד באנגלית
+ title: אודות תרגום זה
+ legal_babble: "<h2>זכויות יוצרים ורישיון</h2>\n<p>\n אתר OpenStreetMap הוא <i>נותנים פתוחים</i>, המופצים לפי רישיון <a\n href=\"http://creativecommons.org/licenses/by-sa/2.0/\">קריאייטיב\n קומונז ייחוס–שיתוף־זהה 2.0</a> (CC BY-SA).\n</p>\n<p>\n אתם חופשיים להעתיק, להפיץ, לשדר ולהתאים את המפות שלנו\n ואת הנתונים שלנו, כל עוד אתם נותנים ייחוס ל־OpenStreetMap\n ולתורמי המיזם. אם אתם משנים או בונים מידע חדש על גבי המפות או הנתונים שלנו,\n מותר לכם להפיץ את התוצאות רק לפי תנאי אותו הרישיון.\n <a href=\"http://creativecommons.org/licenses/by-sa/2.0/legalcode\">המסמך\n המשפטי</a> המלא מסביר את זכויותיכם ואת תחומי האחריות שלכם.\n</p>\n\n<h3>איך לתת ייחוס ל־OpenStreetMap</h3>\n<p>\n אם אתם משתמשים בתמונות של מפות מ־OpenStreetMap, אנו מבקשים\n שבנתונים על היוצר יהיה כתוב לכל הפחות „© תורמי OpenStreetMap,\n רישיון CC BY-SA”. אם אתם משתמשים רק בנתוני מפות,\n אנו מבקשים „נתוני מפות © תורמי OpenStreetMap,\n רישיון CC BY-SA”.\n</p>\n<p>\n כשזה אפשרי, המילה OpenStreetMap צריכה להיות מקושרת אל הכתובת\n <a href=\"http://www.openstreetmap.org/\">http://www.openstreetmap.org/</a>\n ו־CC BY-SA אל <a\n href=\"http://creativecommons.org/licenses/by-sa/2.0/\">http://creativecommons.org/licenses/by-sa/2.0/</a>. אם\n אתם משתמשים באמצעי תקשורת שבו אין אפשרות להשתמש בקישורים (למשל\n בדפוס), אנו ממליצים שתַפנו את קוראיכם לאתר\n www.openstreetmap.org (אולי על־ידי\n כתיבת הכתובת המלאה הזאת במקום „OpenStreetMap”) ואל\n www.creativecommons.org.\n</p>\n\n<h3>איך למצוא מידע נוסף</h3>\n<p>\n קִראו עוד על שימוש בנתונים שלנו בדף <a\n href=\"http://wiki.openstreetmap.org/wiki/Legal_FAQ\">שו״ת\n משפטי</a>.\n</p>\n<p>\n אנו מזכירים לתורמי OSM לעולם לא להוסיף נתונים משום מקור\n שמוגבל בזכויות יוצרים (למשל מפות גוגל או מפות מודפסות) ללא\n אישור מפורש מבעלי הזכויות.\n</p>\n<p>\n אף־על־פי ש־OpenStreetMap הוא מיזם נתונים פתוחים, איננו יכולים לספק\n API מפות בחינם למפתחי צד שלישי.\n\n ר׳ את דפי המדיניות שלנו: <a href=\"http://wiki.openstreetmap.org/wiki/API_usage_policy\">המדיניות השימוש ב־API</a>,\n <a href=\"http://wiki.openstreetmap.org/wiki/Tile_usage_policy\">מדיניות השימוש באריחים</a>\n ו<a href=\"http://wiki.openstreetmap.org/wiki/Nominatim#Usage_Policy\">מדיניות השימוש בנומינטים</a>.\n</p>\n\n<h3>התורמים שלנו</h3>\n<p>\n מדיניות CC BY-SA שלנו דורשת מכם „לייחס את היצירה (לתת קרדיט) ליוצר\n באופן הסביר באמצעי התקשורת שאתם\n משתמשים בו”. מְמַפֵּי OSM פרטניים אינם מבקשים ייחוס ייחודי מעבר\n ל„תורמי OpenStreetMap”, אבל כאשר נתונים מסוכנות מיפוי\n לאומית או ממקור גדול אחר נכללים ב־OpenStreetMap,\n יכול להיות סביר לתת להם ייחוס ישיר באמצעות העתקת המידע עליהם\n או באמצעות קישור לדף הזה.\n</p>\n\n<!--\nInformation for page editors\n\nThe following lists only those organisations who require attribution\nas a condition of their data being used in OpenStreetMap. It is not a\ngeneral catalogue of imports, and must not be used except when\nattribution is required to comply with the licence of the imported\ndata.\n\nAny additions here must be discussed with OSM sysadmins first.\n-->\n\n<ul id=\"contributors\">\n <li><strong>אוסטרליה</strong>: מכיל מנתוני פרוורים המבוססים על\n נתוני הלשכה האוסטרלית לסטטיסטיקה (Australian Bureau of Statistics).</li>\n <li><strong>אוסטריה</strong>: מכיל נתונים\n מ־<a href=\"http://data.wien.gv.at/\">Stadt Wien</a> לפי תנאי\n <a href=\"http://creativecommons.org/licenses/by/3.0/at/deed.de\">CC BY</a>.</li>\n <li><strong>קנדה</strong>: מכיל נתונים\n מ־GeoBase®‏, GeoGratis‏ (©‏ Department of Natural\n Resources Canada)‏, CanVec‏ (©‏ Department of Natural\n Resources Canada), ו־StatCan‏ (Geography Division,\n Statistics Canada).</li>\n <li><strong>צרפת</strong>: מכיל נתונים שהגיעו במקור\n ממנהלת המסים הכללית (Direction Générale des Impôts).</li>\n <li><strong>ניו זילנד</strong>: מכיל נתונים שהגיעו במקור\n מ־Land Information New Zealand. זכויות הכתר.</li>\n <li><strong>פולין</strong>: מכיל נתונים מתוך <a\n href=\"http://ump.waw.pl/\">מפות UMP-pcPL</a>. זכויות היוצרים:\n תורמי UMP-pcPL.\n <a href=\"http://wiki.openstreetmap.org/wiki/UMP2OSM_Importing\">\n מידע נוסף על השימוש של OSM במידע של UMP.</a></li>\n <li><strong>דרום אפריקה</strong>: מכיל נתונים שהגיעו במקור\n <a href=\"http://www.ngi.gov.za/\">מ־Chief Directorate:\n National Geo-Spatial Information</a>‏, State copyright reserved.</li>\n <li><strong>הממלכה המאוחדת</strong>: מכיל נתוני סקר מדידות\n © זכויות הכתר וזכויות מסדי נתונים\n 2010.</li>\n</ul>\n\n<p>\n הכללה של נתונים ב־OpenStreetMap אינה אומרת שהספק\n המקורי של הנתוהים תומך ב־OpenStreetMap, נותן אחריות כלשהי, או\n מקבל חבות כלשהי.\n</p>"
+ native:
+ mapping_link: להתחיל למפות
+ native_link: גרסה העברית
+ text: זהו עמוד זכויות היוצרים בגרסתו באנגלית. אפשר לחזור ל%{native_link} של עמוד זה, ואפשר גם להפסיק לקרוא על זכויות יוצרים ו%{mapping_link}.
+ title: אודות דף זה
message:
delete:
deleted: ההודעה נמחקה
inbox:
+ date: תאריך
+ from: מאת
+ messages: יש לך %{new_messages} ועוד %{old_messages}
+ my_inbox: תיבת הדואר הנכנס שלי
+ new_messages:
+ one: הודעה חדשה אחת
+ other: "%{count} הודעות חדשות"
+ no_messages_yet: אין לך הודעות חדשות עדיין. מה דעתך ליצור קשר עם %{people_mapping_nearby_link}?
+ old_messages:
+ one: הודעה ישנה אחת
+ other: "%{count} הודעות ישנות"
+ outbox: תיבת דואר יוצא
people_mapping_nearby: אנשים ממפים בקרבת מקום
+ subject: נושא
+ title: תיבת דואר נכנס
+ mark:
+ as_read: ההודעה סומנה כהודעה שנקראה
+ as_unread: ההודעה סומנה כהודעה שלא נקראה
message_summary:
delete_button: מחיקה
- read_button: לסימון כ"נקרא"
+ read_button: לסימון כ„נקרא”
reply_button: תשובה
- unread_button: לסימון כ"לא נקרא"
+ unread_button: לסימון כ„לא נקרא”
new:
back_to_inbox: לחזרה לתיבת הדואר הנכנס
body: תוכן ההודעה
- limit_exceeded: ש×\9c×\97ת ×\94×\95×\93×¢×\95ת ר×\91×\95ת ×\9c×\90×\97ר×\95× ×\94. × ×\90 ×\94×\9eת×\99× ×\95 ×\91×\98ר×\9d שליחת הודעות נוספות.
+ limit_exceeded: ש×\9c×\97ת ×\94×\95×\93×¢×\95ת ר×\91×\95ת ×\9c×\90×\97ר×\95× ×\94. × ×\90 ×\9c×\94×\9eת×\99×\9f ×\9c×¤× ×\99 שליחת הודעות נוספות.
message_sent: הודעה נשלחה
send_button: לשליחה
- send_message_to: ×\9cש×\9c×\99×\97ת ×\94×\95×\93×¢×\94 ×\97×\93ש×\94 ×\9c-%{name}
+ send_message_to: ×\9cש×\9c×\99×\97ת ×\94×\95×\93×¢×\94 ×\97×\93ש×\94 ×\90×\9c %{name}
subject: נושא
title: לשליחת הודעה
no_such_message:
heading: אין משתמש בשם זה
title: אין משתמש בשם זה
outbox:
+ date: תאריך
+ inbox: תיבת הדואר הנכנס
+ messages:
+ one: יש לך הודעה אחת שנשלחה
+ other: יש לך %{count} הודעות שנשלחו
+ my_inbox: "%{inbox_link} שלי"
+ no_sent_messages: אין לך הודעות נשלחו עד כה. מה דעתך ליצור קשר עם %{people_mapping_nearby_link}?
+ outbox: תיבת הדואר היוצא
+ people_mapping_nearby: משתתפים הממפים בקרבת מקום
+ subject: נושא
title: תיבת דואר יוצא
+ to: אל
+ read:
+ back_to_inbox: לחזרה לתיבת הדואר הנכנס
+ back_to_outbox: חזרה לתיבת הדואר היוצא
+ date: תאריך
+ from: מאת
+ reading_your_messages: קריאת ההודעות שלך
+ reading_your_sent_messages: לקריאת ההודעות שנשלחו
+ reply_button: להשיב
+ subject: נושא
+ title: הודעה שנקראה
+ to: אל
+ unread_button: לסימון כהודעה שלא נקראה
+ wrong_user: נכנסת בשם „%{user}”, אבל ההודעה שביקשת לקרוא לא נשלחה לאותו המשתמש. נא להיכנס בחשבון הנכון כדי ללקרוא אותה.
+ reply:
+ wrong_user: נכנסת בשם „%{user}”, אבל ההודעה שביקשת להשיב עליה לא נשלחה לאותו המשתמש. נא להיכנס בחשבון הנכון כדי להשיב.
sent_message_summary:
delete_button: מחיקה
notifier:
+ diary_comment_notification:
+ footer: אפשר גם לקרוא את התגובה בכתובת %{readurl} ולהגיב בכתובת %{commenturl} או להשיב בכתובת %{replyurl}
+ header: "%{from_user} הגיב לרשומת היומן שלך ב־OpenStreetMap עם הנושא %{subject}:"
+ hi: שלום %{to_user},
+ subject: "[אופן סטריט מאפ OpenStreetMap] תגובה מאת %{user} נוספה לרשומת יומן שלך"
+ email_confirm:
+ subject: "[אופן סטריט מאפ OpenStreetMap] נא לאמת את כתובת הדוא\"ל שלך"
+ email_confirm_html:
+ click_the_link: אם באמת עשית את זה, נא ללחוץ על הקישור להלן כדי לאשר את השינוי.
+ greeting: שלום,
+ hopefully_you: מישהו (בתקווה מדובר בך) רוצה לשנות את כתובת הדוא״ל המשויכת לחשבון בשרת %{server_url} אל %{new_address}.
+ email_confirm_plain:
+ click_the_link: אם באמת עשית את זה, נא ללחוץ על הקישור להלן כדי לאשר את השינוי.
+ greeting: שלום,
+ hopefully_you_1: מישהו (בתקווה מדובר בך) רוצה לשנות את כתובת הדוא״ל ב־
+ hopefully_you_2: "%{server_url} אל %{new_address}."
friend_notification:
- befriend_them: באפשרותך לסמנם כחבר ב-%{befriendurl}.
- had_added_you: "%{user} הוסיף אותך כחבר/ה ב-OpenStreetMap."
- see_their_profile: באפשרותך לצפות בפרופיל ב-%{userurl}.
+ befriend_them: באפשרותך לסמנו כחבר בכתובת %{befriendurl}.
+ had_added_you: "%{user} הוסיף אותך כחבר ב־OpenStreetMap."
+ see_their_profile: באפשרותך לצפות בפרופיל שלו בכתובת %{userurl}.
+ subject: "[אופן סטריט מאפ OpenStreetMap] נוספת לרשימת החברים של %{user}"
gpx_notification:
- greeting: הי,
+ and_no_tags: וחסר התגים
+ and_the_tags: והתגים
+ failure:
+ failed_to_import: "לא יובא כראוי. הנה השגיאה:"
+ more_info_1: מידע נוסף על כישלונות בייבוא GPX ואיך להימנע
+ more_info_2: "מהם אפשר למצוא כאן:"
+ subject: "[אופן סטריט מאפ OpenStreetMap] שגיאה בייבוא GPX"
+ greeting: שלום,
+ success:
+ loaded_successfully: נטען כראוי עם %{trace_points} מתוך %{possible_points} נקודות אפשריות.
+ subject: "[אופן סטריט מאפ OpenStreetMap] ייבוא GPX הצליח"
+ with_description: בעל התיאור
+ your_gpx_file: נראה שקובץ ה־GPX שלך
+ lost_password:
+ subject: "[אופן סטריט מאפ OpenStreetMap] בקשת איפוס ססמה"
+ lost_password_html:
+ click_the_link: אם באמת ביקשת את זה, נא ללחוץ על הקישור להלן כדי לאפס את הססמה.
+ greeting: שלום,
+ hopefully_you: מישהו (בתקווה מדובר בך) ביקש כי הססמה לחשבון המזוהה עם כתובת הדוא״ל הזאת באתר openstreetmap.org תאופס.
+ lost_password_plain:
+ click_the_link: אם אכן עשית את זה, יש ללחוץ על הקישור להלן כדי לאפס את הססמה.
+ greeting: שלום,
+ hopefully_you_1: מישהו (אולי את או אתה) ביקש לאפס את הססמה
+ hopefully_you_2: בחשבון openstreetmap.org המשויך לכתובת הדוא"ל הזאת.
+ message_notification:
+ footer1: אפשר גם לקרוא את ההודעה בכתובת %{readurl}
+ footer2: ולענות בכתובת %{replyurl}
+ header: "לתיבתך ב־OpenStreetMap הגיעה הודעה מאת %{from_user} עם הנושא %{subject}:"
+ hi: שלום %{to_user},
+ signup_confirm:
+ subject: "[אופן סטריט מאפ OpenStreetMap] נא לאשר כתובת דוא״ל"
signup_confirm_html:
- ask_questions: באפשרותכם לשאול שאלות על אתר OpenStreetMap ב<a href="http://help.openstreetmap.org/">אתר השאלות ותשובות שלנו</a>.
- click_the_link: אם אכן מדובר בך, ברוכים הבאים! נא לחץ על הרישור מטה על מנת לאשר את החשבון ולקרוא מידע נוסף על OpenStreetMap
- get_reading: "לקריאה נוספת על OpenStreetMap <a href=\"http://wiki.openstreetmap.org/wiki/Beginners%27_Guide\">באתר הויקי</a>, להתעדכן בחדשות האחרונות ב<a href=\"http://blog.openstreetmap.org/\">בלוג OpenStreetMap</a> או ב<a href=\"http://twitter.com/openstreetmap\">טוויטר</a>, או לקריאה בבלוג של מייסד OpenStreetMap סטיב קוסט: <a href=\"http://www.opengeodata.org/\">OpenGeoData blog</a> למידע על ההיסטוריה של הפרוייקט, אשר בו ניתן גם להאזין <a href=\"http://www.opengeodata.org/?cat=13\">לקבצי קול!"
+ ask_questions: באפשרותך לשאול שאלות על אתר OpenStreetMap ב<a href="http://help.openstreetmap.org/">אתר השאלות ותשובות שלנו</a>.
+ click_the_link: אם אכן מדובר בך, ברוך בואך! נא ללחוץ על הקישור מטה כדי לאמת את החשבון ולקרוא מידע נוסף על OpenStreetMap
+ current_user: רשימת משתמשים נוכחיים בקטגוריות, בהתאום למיקומם בעולם, זמינה בדף <a href="http://wiki.openstreetmap.org/wiki/Category:Users_by_geographical_region">Category:Users_by_geographical_region</a>.
+ get_reading: "לקריאה נוספת על OpenStreetMap <a href=\"http://wiki.openstreetmap.org/wiki/Beginners%27_Guide\">באתר הוויקי</a>, להתעדכן בחדשות האחרונות ב<a href=\"http://blog.openstreetmap.org/\">בלוג OpenStreetMap</a> או ב<a href=\"http://twitter.com/openstreetmap\">טוויטר</a>, או לקריאה בבלוג של מייסד OpenStreetMap סטיב קוסט: <a href=\"http://www.opengeodata.org/\">OpenGeoData blog</a> למידע על ההיסטוריה של המיזם, ויש בו גם <a href=\"http://www.opengeodata.org/?cat=13\">קובצי קול<a/>!"
greeting: שלום!
- hopefully_you: ×\9e×\99ש×\94×\95 (×\91ת×\99ק×\95×\95×\94 ש×\9e×\93×\95×\91ר ×\91×\9a) ×\91×\99קש ×\9c×\99צ×\95ר ×\97ש×\91×\95×\9f ×\9eשת×\9eש ×\91
+ hopefully_you: מישהו (בתקווה שמדובר בך) ביקש ליצור חשבון משתמש ב
introductory_video: ניתן לצפות בסרטו מבוא ב-%{introductory_video_link}.
- more_videos: צפייה בסרטונים נוספים ב-%{more_videos_link}.
+ more_videos: צפייה בסרטונים נוספים בכתובת %{more_videos_link}.
more_videos_here: סרטונים נוספים מצויים כאן
+ user_wiki_page: מומלץ ליצור דף משתמש בוויקי, שיכלול קטגוריות שמספרות מה מיקומך כגון such as <a href="http://wiki.openstreetmap.org/wiki/Category:Users_in_London">[[Category:Users_in_London]]</a> (משתמשים בלונדון).
video_to_openstreetmap: סרטון מבוא לאתר OpenStreetMap
- wiki_signup: באפשרותך <a href="http://wiki.openstreetmap.org/index.php?title=Special:Userlogin&type=signup&returnto=Main_Page">להירשם לאתר הויקי של OpenStreetMap</a>.
+ wiki_signup: ×\91×\90פשר×\95ת×\9a <a href="http://wiki.openstreetmap.org/index.php?title=Special:Userlogin&type=signup&returnto=Main_Page">×\9c×\94×\99רש×\9d ×\9c×\90תר ×\94×\95×\95×\99ק×\99 ש×\9c OpenStreetMap</a>.
signup_confirm_plain:
- ask_questions: "×\91×\90פשר×\95ת×\9a ×\9cש×\90×\95×\9c ש×\90×\9c×\95ת ×¢×\9d OpenStreetMap בדף השאלות ותשובות שלנו:"
- blog_and_twitter: "ניתן להתעדכן בחדשות OpenStreetMap באמצעות הבלוג או הטוויטר:"
- click_the_link_1: ×\90×\9d ×\90×\9b×\9f ×\9e×\93×\95×\91ר ×\91×\9a, ×\91ר×\95×\9a ×\94×\91×\90! × ×\90 ×\9c×\97צ×\95 ×¢×\9c ×\94ק×\99ש×\95ר ×\9e×\98×\94 ×¢×\9c ×\9e× ×ª ×\9c×\90שר את
- click_the_link_2: ×\97ש×\91×\95× ×\9a, ×\95×\9cקר×\99×\90ת מידע נוסף על אתר OpenStreetMap.
+ ask_questions: "×\91×\90פשר×\95ת×\9a ×\9cש×\90×\95×\9c ש×\90×\9c×\95ת ×¢×\9c OpenStreetMap בדף השאלות ותשובות שלנו:"
+ blog_and_twitter: "ניתן להתעדכן בחדשות האחרונות דרך הבלוג או חשבון הטוויטר של OpenStreetMap:"
+ click_the_link_1: ×\90×\9d ×\90×\9b×\9f ×\9e×\93×\95×\91ר ×\91×\9a, ×\91ר×\95×\9a ×\91×\95×\90×\9a! × ×\90 ×\9c×\9c×\97×\95×¥ ×¢×\9c ×\94ק×\99ש×\95ר ×\9e×\98×\94 ×\9b×\93×\99 ×\9c×\90×\9eת את
+ click_the_link_2: ×\94×\97ש×\91×\95×\9f ×\95×\9cקר×\95×\90 מידע נוסף על אתר OpenStreetMap.
current_user_1: רשימת קטגוריות משתמשים, המבוססת על מיקומכם ברחבי העולם
- current_user_2: "×\9eצ×\95×\99×\99×\94 ×\9b×\90×\9f:"
+ current_user_2: "מצויה כאן:"
greeting: שלום!
- hopefully_you: ×\9e×\99ש×\94×\95 (×\91ת×\99ק×\95×\95×\94 ש×\9e×\93×\95×\91ר ×\91×\9a) ×\9e×\91קש ×\9c×\99צ×\95ר ×\97ש×\91×\95×\9f ×\91
- introductory_video: "באפשרותך לצפות בסרטון הדרכה לאתר OpenStreetMap כאן:"
+ hopefully_you: מישהו (בתקווה שמדובר בך) מבקש ליצור חשבון ב
+ introductory_video: "באפשרותך לצפות בסרטון הדרכה לאתר OpenStreetMap כאן:"
more_videos: "סרטוני הדרכה נוספים מצויים כאן:"
- opengeodata: "OpenGeoData.org הוא הבלוג של מייסד OpenStreetMap סטיב קוסט, וניתן לקרוא גם בו:"
+ opengeodata: "אתר OpenGeoData.org הוא הבלוג של מייסד OpenStreetMap סטיב קוסט, ויש בו גם פודקאסטים (הקלטות קול):"
the_wiki: "ניתן לקרוא על OpenStreetMap בדפי ויקי:"
- user_wiki_1: ×\90× ×\95 ×\9e×\9e×\9c×\99צ×\99×\9d ×\9c×\99צ×\95ר ×\93×£ ×\9eשת×\9eש, ×\94×\9b×\95×\9cל
- user_wiki_2: "קטגוריות המסמנות את מקומכם, כגון קטגוריית \"משתמשים בלונדון\": [[Category:Users_in_London]]."
- wiki_signup: "באפשרותך להירשם לויקי OpenStreetMap בכתובת:"
+ user_wiki_1: ×\90× ×\95 ×\9e×\9e×\9c×\99צ×\99×\9d ×\9c×\99צ×\95ר ×\93×£ ×\9eשת×\9eש, ש×\99×\9b×\9c×\95ל
+ user_wiki_2: "קטגוריות המסמנות את מקומכם, כגון קטגוריית „משתמשים בלונדון”: [[Category:Users_in_London]]."
+ wiki_signup: "×\91×\90פשר×\95ת×\9a ×\9c×\94×\99רש×\9d ×\9c×\95×\95×\99ק×\99 OpenStreetMap ×\91×\9bת×\95×\91ת:"
oauth:
oauthorize:
- allow_read_prefs: קריאת העדפות המשתמש שלך.
- allow_write_api: שינוי המפה.
- allow_write_gpx: העלאת עקבות GPS.
+ allow_read_gpx: לקרוא את מסלולי ה־GPS הפרטיים שלך.
+ allow_read_prefs: לקרוא את העדפות המשתמש שלך.
+ allow_to: לאפשר ליישום הלקוח שלך
+ allow_write_api: לשנות את המפה.
+ allow_write_diary: ליצור רשומות יומן והערות ולהוסיף חברים.
+ allow_write_gpx: להעלות מסלולי GPS.
+ allow_write_prefs: לשנות את העדפות המשתמש שלך.
+ request_access: היישום %{app_name} דורש גישה לחשבונך, %{user}. נא לבדוק האם מתאים לך שהיישום יקבל את היכולות האלו. אפשר לבחור או לא לבחור את כל מה שמתאים לך.
+ revoke:
+ flash: שללת את האסימון מהיישום %{application}.
+ oauth_clients:
+ create:
+ flash: המידע נרשם בהצלחה
+ destroy:
+ flash: רישום יישום הלקוח נהרס
+ edit:
+ submit: עריכה
+ title: עריכת היישום שלך
+ form:
+ allow_read_gpx: לקרוא את מסלולי ה־GPS הפרטיים שלהם.
+ allow_read_prefs: לקרוא את ההעדפות של המשתמש.
+ allow_write_api: לשנות את המפה.
+ allow_write_diary: ליצור רשומות יומן והערות ולהוסיף חברים.
+ allow_write_gpx: להעלות מסלולי GPS.
+ allow_write_prefs: לשנות ההעדפות של המשתמש.
+ callback_url: כתובת קריאה (callback)
+ name: שם
+ requests: "לבקש את ההרשאות הבאות מהמשתמש:"
+ required: דרוש
+ support_url: כתובת לתמיכה
+ url: כתובת היישום הראשית
+ index:
+ application: שם היישום
+ issued_at: הונפק ב
+ list_tokens: "האסימונים הבאים הונפקו ליישום בשמך:"
+ my_apps: יישומי הלקוח שלי
+ my_tokens: היישומים המאושרים שלי
+ no_apps: האם יש לך יישום שברצונך לרשום לשימוש אצלנו באמצעות תקן %{oauth}? יש לרשום את יישום הרשת שלך לפני שיוכל לשלוח בקשות OAuth לשירות הזה.
+ register_new: רישום היישום שלך
+ registered_apps: "רשמת את יישומי הלקוח הבאים:"
+ revoke: לשלול!
+ title: פרטי ה־OAuth שלי
+ new:
+ submit: רישום
+ title: רישון יישום חדש
+ not_found:
+ sorry: סליחה, הסוג %{type} לא נמצא.
+ show:
+ access_url: "כתובת אסימון גישה:"
+ allow_read_gpx: לקרוא את מסלולי ה־GPS שלו.
+ allow_read_prefs: לקרוא את העדפות המשתמש שלהם.
+ allow_write_api: לשנות את המפה.
+ allow_write_diary: ליצור רשומות יומן והערות ולהוסיף חברים.
+ allow_write_gpx: להעלות מסלולי GPS.
+ allow_write_prefs: לשנות את ההעדפות שלהם.
+ authorize_url: "כתובת אישור:"
+ edit: עריכת פרטים
+ key: "מפתח צרכן:"
+ requests: "מבקש את ההרשאות הבאות מהמשתמש:"
+ secret: "סוד צרכן:"
+ support_notice: אנחנו תומכים ב־HMAC-SHA1 (מומלץ) וגם בטקסט פשוט במצב SSL.
+ title: פרטי OAuth עבור %{app_name}
+ url: "כתובת אסימון בקשה:"
+ update:
+ flash: מידע הלקוח עודכן בהצלחה
site:
edit:
+ anon_edits_link_text: גלה מדוע זה כך.
+ flash_player_required: יש צורך בנגן פלאש כדי להשתמש ב־Potlatch, ערוך הפלאש של OpenStreetMap. אפשר <a href="http://www.adobe.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash">להוריד נגן פלאש מאתר Adobe.com</a>. יש <a href="http://wiki.openstreetmap.org/wiki/Editing">אפשרויות נוספות</a> לעריכת OpenStreetMap.
+ no_iframe_support: הדפדפן שלך אינו תומך באלמנטים מסוג iframe של HTML, ואלו חיוניים עבור תכונה זו.
+ not_public: לא הגדרת את עריכותיך כציבוריות.
+ not_public_description: לא תוכל להמשיך לערוך את המפה בטרם תעשה זאת. באפשרותך להגדיר את עריכותיך כציבוריות דרך %{user_page} שלך.
+ potlatch2_not_configured: Potlatch 2 לא הוגדר – ר׳ http://wiki.openstreetmap.org/wiki/The_Rails_Port#Potlatch_2 למידע נוסף
+ potlatch2_unsaved_changes: יש לך שינויים שלא נשמרו. (כדי לשמור ב־Potlatch 2, יש ללחוץ „שמירה”.)
potlatch_unsaved_changes: You have unsaved changes. (To save in Potlatch, you should deselect the current way or point, if editing in list mode, or click save if you have a save button.)
+ user_page_link: דף המשתמש
index:
+ js_1: הדפדפן שבו אתה משתמש אינו תומך ב־JavaScript, או שהשבתת את השימוש ב־JavaScript.
+ js_2: אתר OpenStreetMap משתמש ב־JavaScript למפה המחליקה.
+ js_3: אם אין לך אפשרות להפעיל JavaScript, אפשר לנסות את <a href="http://tah.openstreetmap.org/Browse/">דפדפן האריחים הסטטי Tiles@Home</a>.
+ license:
+ license_name: CC ייחוס–שיתוף זהה 2.0
+ notice: מוגש בכפוף לרישיון %{license_name}, על ידי מיזם %{project_name} ועורכיו.
+ project_name: מיזם OpenStreetMap
+ permalink: קישור קבוע
+ remote_failed: העריכה נכשלה – נא לוודא כי JOSM או Merkaartor נטענו ושאפשרות השליטה מקחור מופעלת
shortlink: קישור מקוצר
key:
map_key: מפתח
map_key_tooltip: מפתח מפה
table:
entry:
- admin: ×\92×\91×\95×\9c ×\90×\93×\9e×\99× ×\99ס×\98ר×\98×\99×\91×\99
+ admin: ×\92×\91×\95×\9c ש×\98×\97 ש×\99פ×\95×\98
allotments: שטחים חקלאיים
apron:
- 1: מסוף
+ - רחבת חניה למטוסים
+ - מסוף
+ bridge: קו שחור = גשר
bridleway: מסלול לרכיבת סוסים
- brownfield: אזור תעשיה נטוש
+ brownfield: ×\90×\96×\95ר תעש×\99×\99×\94 × ×\98×\95ש
building: בניין בעל חשיבות
byway: דרך צדדית
cable:
common:
- מרעה
- מרעה
+ construction: דרכים בבנייה
cycleway: דרך לאופניים
+ destination: גישה ליעד
farm: חווה
footway: דרך להולכי רגל
forest: יער
golf: מסלול גולף
heathland: שדה פרא
- industrial: אזור תעשיה
+ industrial: ×\90×\96×\95ר תעש×\99×\99×\94
lake:
- אגם
- מאגר
- military: ×\90×\96×\95ר צבאי
+ military: ש×\98×\97 צבאי
motorway: כביש מהיר
park: פארק
+ permissive: גישה מותרת
pitch: מגרש ספורט
primary: כביש ראשי
+ private: גישה פרטית
rail: מסילת ברזל
reserve: שמורת טבע
resident: אזור מגורים
- retail: ×\90×\99×\96×\95ר ×\9eס×\97רי
+ retail: ×\90×\96×\95ר ק×\9e×¢×\95× ×\90י
runway:
- דרך למוניות
- דרך למוניות
tram:
- רכבת קלה
- חשמלית
+ trunk: דרך ראשית
tunnel: קו מקווקו = מנהרה
- unclassified: ×\93ר×\9a ×\91×\9cת×\99 ×\9e×\95×\92×\93רת
+ unclassified: ×\93ר×\9a ×\9c×\90 ×\9eס×\95×\95×\92ת
unsurfaced: דרך לא סלולה
wood: חורשה
search:
search: לחיפוש
- search_help: "examples: 'Alkmaar', 'Regent Street, Cambridge', 'CB2 5AQ', or 'post offices near Lünen' <a href='http://wiki.openstreetmap.org/wiki/Search'>more examples...</a>"
+ search_help: "למשל: ‚נתניה’, ‚רחוב רחל המשוררת, ירושלים’, ‚90880’, או 'סניפי דואר באזור שפרעם' <a href='http://wiki.openstreetmap.org/wiki/Search'>דוגמאות נוספות...</a>"
+ submit_text: מעבר
where_am_i: איפה אני?
- where_am_i_title: ת×\90ר ×\90ת ×\9e×\99ק×\9e×\9b×\9d הנוכחי באמצעות מנוע החיפוש
+ where_am_i_title: × ×\90 ×\9cת×\90ר ×\90ת ×\9e×\99ק×\95×\9e×\9a הנוכחי באמצעות מנוע החיפוש
sidebar:
close: לסגירה
+ search_results: תוצאות החיפוש
+ time:
+ formats:
+ friendly: "%e ב%B %Y בשעה %H:%M"
trace:
+ create:
+ trace_uploaded: קובץ ה־GPX שלך הועלה ומחכה להכנסה אל מסד הנתונים. זה בדרך יקרה בתוך חצי שעה ויישלח לך מכתב עם השלמת הפעולה.
+ upload_trace: העלאת מסלול GPS
+ delete:
+ scheduled_for_deletion: מסלול מיועד למחיקה
edit:
- description: ":תאור"
+ description: "תיאור:"
download: הורדה
edit: עריכה
+ filename: "שם הקובץ:"
heading: עריכת המסלול %{name}
map: מפה
+ owner: "בעלים:"
+ points: "נקודות:"
+ save_button: שמירת שינויים
+ start_coord: "נקודות ציון של תחילה:"
+ tags: "תגים:"
tags_help: מופרד בפסיקים
- visibility: "ראות:"
+ title: עריכת מסלול %{name}
+ uploaded_at: "תאריך העלאה:"
+ visibility: "נִראוּת:"
visibility_help: מה זה אומר?
+ list:
+ public_traces: מסלולי GPS ציבוריים
+ public_traces_from: מסלולי GPS ציבוריים מאת %{user}
+ tagged_with: " מתויג עם %{tags}"
+ your_traces: מסלולי GPS שלך
+ make_public:
+ made_public: מסלול שהוגדר ציבורי
no_such_user:
- body: אנו מצטערים, אין משתמש בשם %{user}. נא בדקו את איותכם, או יתכן כי לחצתם על קישור שגוי.
- heading: המשתמש %{user} אינו קיים
+ body: אנו מצטערים, אין משתמש בשם %{user}. אולי האיות לא נכון ואולי לחצת על קישור שגוי.
+ heading: המשתמש %{user} אינו קיים
title: אין משתמש כזה
+ offline:
+ heading: אחסון GPX בלתי־מקוון
+ message: מערכת האחסון וההעלאה של קובצי GPX אינה זמינה עכשיו.
+ offline_warning:
+ message: מערכת העלאת קובצי GPX אינה זמינה כעת
trace:
+ ago: לפני %{time_in_words_ago}
+ by: מאת
+ count_points: "%{count} נקודות"
edit: עריכה
+ edit_map: עריכת מפה
+ identifiable: בר זיהוי
+ in: ב
map: מפה
+ more: עוד
+ pending: בהמתנה
+ private: פרטי
+ public: ציבורי
+ trace_details: הצגת פרטי מסלול
+ trackable: בר מעקב
+ view_map: הצגת מפה
trace_form:
- description: תאור
+ description: "תיאור:"
help: עזרה
+ tags: "תגים:"
tags_help: מופרד בפסיקים
- visibility: גלוי
+ upload_button: טעינה
+ upload_gpx: "העלאת קובץ GPX:"
+ visibility: "נִראוּת:"
visibility_help: מה זאת אומרת?
+ trace_header:
+ see_all_traces: הצגת כל המסלולים
+ see_your_traces: הצגת המסלולים שלך
+ traces_waiting: יש לך %{count} מסלולים שמחכים להעלאה. נא לשקול לחכות עד סיום העלאתם לפני העלאת נוספים, כדי לא לחסום את התור למשתמשים אחרים.
+ upload_trace: העלאת מסלול
trace_optionals:
- tags: תגיות
+ tags: תגים
+ trace_paging_nav:
+ next: הבא »
+ previous: « הקודם
+ showing_page: הצגת הדף %{page}
view:
- description: ":תאור"
+ delete_track: מחיקת המסלול הזה
+ description: "תיאור:"
download: הורדה
edit: עריכה
+ edit_track: עריכת המסלול הזה
filename: "שם קובץ:"
+ heading: הצגת מסלול %{name}
map: מפה
none: אין
owner: "בעלים:"
+ pending: בהמתנה
points: "נקודות:"
- start_coordinates: "תחילת קואורדינטות:"
- tags: Tags
+ start_coordinates: "נקודות ציון של תחילה:"
+ tags: "תגים:"
+ title: הצגת מסלול %{name}
+ trace_not_found: המסלול לא נמצא!
uploaded: "הועלה:"
visibility: "גלוי:"
+ visibility:
+ identifiable: בר זיהוי (מוצג ברשימת המסלולים וכמזוהה, נקודות סדורות עם חותמי זמן)
+ private: פרטי (משותף רק כאלמוני, נקודות לא ממוינות)
+ public: ציבורי (מוצג ברשימת המסלולים וכאלמוני, נקודות לא ממוינות)
+ trackable: אפשר לרשום כמסלול (משותף רק כאלמוני, נקודות סדורות עם חותמי זמן)
user:
account:
- current email address: "כתובת דואל עדכנית:"
- email never displayed publicly: (מעולם לא מוצג בפומבי)
- home location: "מיקום הבית:"
- latitude: ":קו רוחב"
- longitude: ":קו אורך"
+ contributor terms:
+ agreed: הסכמת לתנאי התרומה החדשים.
+ agreed_with_pd: הצהרת גם שמבחינתך העריכות שלך יהיו בנחלת הכלל.
+ heading: "תנאי תרומה:"
+ link text: מה זה?
+ not yet agreed: עדיין לא הסכמת לתנאי התרומה החדשים.
+ review link text: נא לעבור לקישור הזה בזמנך הפנוי כדי לסקור ולקבל את תנאי התרומה החדשים.
+ current email address: "כתובת דוא\"ל נוכחית:"
+ delete image: להסרת התמונה הנוכחית
+ email never displayed publicly: (לעולם לא מוצגת בפומבי)
+ flash update success: פרטי המשתמש/ת עודכנו בהצלחה.
+ flash update success confirm needed: מידע המשתמש/ת עודכן בהצלחה. נא בדקו את תיבת הדוא"ל על מנת לאשרר את הדוא"ל החדש.
+ home location: "מיקום ראשי:"
+ image: "תמונה:"
+ image size hint: (תמונה מרובעת בגודל 100x100 לפחות עובדת הכי טוב)
+ keep image: לשמירה על התמונה הנוכחית
+ latitude: "קו רוחב:"
+ longitude: "קו אורך:"
+ make edits public button: הפוך את כל עריכותיי לציבוריות
my settings: ההגדרות שלי
- new email address: "כתובת דואל חדשה:"
+ new email address: "כתובת דוא\"ל חדשה:"
+ new image: הוספת תמונה
+ no home location: לא הזנת את מיקומך הראשי.
openid:
+ link: http://wiki.openstreetmap.org/wiki/OpenID
link text: מה זה?
+ openid: "OpenID:"
+ preferred editor: "עורך מועדף:"
+ preferred languages: "שפות מועדפות:"
+ profile description: "תיאור פרופיל:"
public editing:
+ disabled: לא מופעלת, אין אפשרות לערוך נתונים וכל העריכות הקודמות אלמוניות.
disabled link text: מדוע איני יכול לערוך?
- enabled: ×\9e×\90×\95פשר. ×\9c×\90 ×\90× ×\95× ×\99×\9eי ויכול לערוך מידע.
+ enabled: ×\9e×\95פע×\9cת. ×\9c×\90 ×\90×\9c×\9e×\95× י ויכול לערוך מידע.
enabled link: http://wiki.openstreetmap.org/wiki/Disabling_anonymous_edits
enabled link text: מה זה?
heading: "עריכה ציבורית:"
+ public editing note:
+ heading: עריכה ציבורית
+ text: כעת העריכות שלך אלמוניות ואנשים לא יכולים לשלוח לך הודעות או לראות את המיקום שלך. כדי להציג מה ערכת ולאפשר לאנשים ליצור אתך קשר דרך האתר, יש ללחוץ על הכפתור למטה. <b>מאז השינוי ב־API בגרסה 0.6, רק משתמשים ציבוריים יכולים לערוך נתוני מפה</b>. (<a href="http://wiki.openstreetmap.org/wiki/Anonymous_edits">הסבר למה זה ככה</a>).<ul><li>כתובת הדוא"ל שלך לא תיחשף כתוצאה מזה שתהיה משתמש ציבורי.</li><li>לא ניתן להפוך את הפעולה הזאת וכל המשתמשים החדשים יהיו מעתה ציבוריים לפי בררת המחדל.</li></ul>
+ replace image: להחלפת התמונה הנוכחית
+ return to profile: חזרה לפרופיל
save changes button: שמירת השינויים
title: עריכת חשבון
+ update home location on click: עדכון המיקום הראשי שלך בעת לחיצה על המפה?
confirm:
+ already active: החשבון הזה כבר אושר.
+ before you start: אנחנו יודעים שבטח בא לך להתחיל כבר למפות, אבל אולי אפשר לבקש ממך לפני־כן למלא את הטופס להלן?
+ button: אישור
heading: אימות חשבון משתמש
+ press confirm button: נא ללחוץ על כפתור האישור כדי להפעיל את חשבונך.
+ reconfirm: אם עבר זמן רב מאז שנרשמת, אולי צריך <a href="%{reconfirm}">לשלוח לעצמך מכתב אישור חדש</a>.
+ success: חשבונך אושר, תודה שנרשמת!
+ unknown token: נראה שהאסימון הזה אינו קיים.
+ confirm_email:
+ button: אישור
+ failure: כתובת הדוא״ל שלך כבר אושרה באסימון הזה.
+ heading: אישור שינוי כתובת הדוא״ל
+ press confirm button: נא ללחוץ על כפתור האישור להלן כדי לאשר את כתובת הדוא״ל החדשה.
+ success: כתובת הדוא״ל שלך אושרה, תודה הרישום!
+ confirm_resend:
+ failure: משתמש %{name} לא נמצא.
+ success: תודה על הרישום. שלחנו מכתב אישור לכתובת %{email} וכשנקבל ממך את האישור, אפשר יהיה להתחיל למפות.<br /><br />אם נעשה בחשבון הדוא״ל שלך שימוש במערכת שמלבינה הודעות, נא להוסיף את webmaster@openstreetmap.org לרשימה הלבנה, כי איננו יכולים להשיב לבקשות אישור.
+ filter:
+ not_an_administrator: צריך להיות מנהל כדי לבצע את הפעולה הזאת.
+ go_public:
+ flash success: כל העריכות שלך ציבוריות עכשיו ויש לך הרשאה לערוך.
+ list:
+ confirm: אישור משתמשים נבחרים
+ empty: לא נמצאו משתמשים תואמים
+ heading: משתמשים
+ hide: הסתרת משתמשים נבחרים
+ showing:
+ one: מוצג דף %{page} (%{first_item} מתוך %{items})
+ other: מוצג דף %{page} (%{first_item}–%{last_item} מתוך %{items})
+ summary: "%{name} נוצר מכתובת %{ip_address} ב־%{date}"
+ summary_no_ip: "%{name} נוצר ב־%{date}"
+ title: משתמשים
login:
+ account is suspended: סליחה, החשבון הזה הושעה בעקבות פעילות חשודה.<br />נא ליצור קשר עם <a href="%{webmaster}">מנהל האתר</a> אם ברצונך לדון בזה.
+ account not active: סליחה, החשבון הזה עדיין אינו פעיל.<br />נא להשתמש בקישור במכתב אישור החשבון כדי להפעיל את חשבונך או or <a href="%{reconfirm}">לבקש מכתב אישור חדש</a>.
+ auth failure: סליחה, לא ניתן להיכנס עם הפרטים האלה.
+ create account minute: נא ליצור חשבון. זה לוקח רק דקה.
+ email or username: "כתובת דואר אלקטרוני או שם משתמש:"
+ heading: כניסה
login_button: כניסה
- password: "סיסמה:"
+ lost password link: איבדת את הססמה שלך?
+ new to osm: חדש ב־OpenStreetMap?
+ no account: אין לך חשבון?
+ notice: <a href="http://www.osmfoundation.org/wiki/License/We_Are_Changing_The_License">מידע נוסף על השינוי המתקרב ברישיון של OpenStreetMap</a> (<a href="http://wiki.openstreetmap.org/wiki/ODbL/We_Are_Changing_The_License">תרגומים</a>) (<a href="http://wiki.openstreetmap.org/wiki/Talk:ODbL/Upcoming">דיון</a>)
+ notice_terms: מיזם OpenStreetMap עובר לרישיון חדש ב־1 באפריל 2012. הוא פתוח כמו הנוכחי, אבל הפרטים המשפטיים בו מתאימים הרבה יותר למסד נתוני המפות שלנו. אנחנו רוצים מאוד לשמור על התרומות שלך ל־OpenStreetMap, אבל נוכל לעשות זאת רק לאחר הסכמתך להפיץ אותן לפי תנאי הרישיון החדש. אחרת, נצטרך להוציא אותם ממסד הנתונים.<br /><br />אנו מבקשים ממך להיכנס לחשבון, להקדיש מספר דקות לעיון ברישיון החדש ולקבל את התנאים החדשים. תודה!
+ openid: "%{logo} OpenID:"
+ openid invalid: סליחה, ה־OpenID שלך נראה מקולקל
+ openid missing provider: סליחה, לא התאפשר ליצור קשר עם ספק ה־OpenID שלך
+ openid_logo_alt: כניסה עם OpenID
+ openid_providers:
+ aol:
+ alt: כניסה עם OpenID של AOL
+ title: כניסה עם AOL
+ google:
+ alt: כניסה עם OpenID של גוגל
+ title: כניסה עם חשבון גוגל
+ myopenid:
+ alt: כניסה עם OpenID של myOpenID
+ title: כניסה עם myOpenID
+ openid:
+ alt: כניסה עם כתובת URL של OpenID
+ title: כניסה עם OpenID
+ wordpress:
+ alt: כניסה עם OpenID של Wordpress
+ title: כניסה עם חשבון Wordpress
+ yahoo:
+ alt: כניסה עם OpenID של יאהו
+ title: כניסה עם חשבון יאהו
+ password: "ססמה:"
+ register now: להירשם עכשיו
+ remember: "לזכור אותי:"
title: כניסה
+ to make changes: כדי לשנות את נתוני OpenStreetMap, צריך שיהיה לך חשבון.
+ with openid: "לחלופין אפשר להשתמש ב־OpenID כדי להיכנס:"
+ with username: "כבר יש לך חשבון OpenStreetMap? נא להיכנס עם שם משתמש וססמה:"
+ logout:
+ heading: יציאה מ־OpenStreetMap
+ logout_button: יציאה
+ title: יציאה
lost_password:
- email address: "כתובת דוא\"ל:"
- new password button: Send me a new password
- title: lost password
+ email address: "כתובת דוא״ל:"
+ heading: שכחת ססמה?
+ help_text: נא להזין את כתובת הדוא״ל שהשתמשת בה כדי להירשם. אנו נשלח אליה קישור שאפשר להשתמש בו כדי לאפס את ססמתך.
+ new password button: נא לשלוח לי ססמה חדשה
+ notice email cannot find: סליחה, הכתובת הזאת לא נמצאה.
+ notice email on way: אנו מצטערים לשמוע שאיבדת אותה :-( אבל נשלח לדואר האלקטרוני שלך מכתב שבאמצעותו אפשר לאפס אותה.
+ title: הססמה הלכה לאיבוד
+ make_friend:
+ already_a_friend: "%{name} כבר חבר שלך."
+ failed: סליחה, הוספת %{name} כחבר נכשלה.
+ success: "%{name} חבר שלך עכשיו."
new:
+ confirm email address: "אימות כתובת דוא״ל:"
+ confirm password: "אימות ססמה:"
+ contact_webmaster: נא ליצור קשר עם <a href="mailto:webmaster@openstreetmap.org">מנהל האתר</a> כדי שייווצר חשבון, ואנחנו נשתדל לטפל בבקשה כמה שיותר מהר.
+ continue: להמשיך
display name: "שם התצוגה:"
+ display name description: שם המשתמש שלך, שמוצג בפומבי. אפשר לשנות את זה בהעפות שלך.
+ email address: "כתובת דוא״ל:"
+ fill_form: נא למלא את הטופס הבא ונשלח לך מכתב מהיר כדי להפעיל את חשבונך.
+ flash create success message: תודה על הרישום. שלחנו מכתב אישור לכתוב %{email} וכשנקבל ממך את האישור, אפשר יהיה להתחיל למפות.<br /><br />אם נעשה בחשבון הדוא״ל שלך שימוש במערכת שמלבינה הודעות, נא להוסיף את webmaster@openstreetmap.org לרשימה הלבנה, כי איננו יכולים להשיב לבקשות אישור.
heading: יצירת חשבון משתמש
- password: "סיסמה:"
+ license_agreement: עם אישור החשבון יש לקבל את <a href="http://www.osmfoundation.org/wiki/License/Contributor_Terms">תנאי התרומה</a>.
+ no_auto_account_create: למרבה הצער, כעת איננו יכולים ליצור לך חשבון באופן אוטומטי.
+ not displayed publicly: לא מוצג בפומבי (ר׳ <a href="http://wiki.openstreetmap.org/wiki/Privacy_Policy" title="wiki privacy policy including section on email addresses">מידיניות פרטיות</a>)
+ openid: "%{logo} OpenID:"
+ openid association: "<p>ה־OpenID שלך עדיין אינו משויך לחשבון OpenStreetMap.</p>\n<ul>\n <li>אם הגעת לראשונה ל־OpenStreetMap, נא ליצור חשבון חדש בעזרת הטופס להלן..</li>\n <li>\n אם כבר יש לך חשבון, אפשר להיכנס אליו\n באמצעות שם משתמש וססמה ואז לשייך את החשבון הזה\n ל־OpenID שלך בהגדרות המשתמש שלך.\n </li>\n</ul>"
+ openid no password: עם OpenID אין צורך בססמה, אבל ייתכן שבעת גישה לכלים נוספים או לשרת כן יהיה צורך בה.
+ password: "ססמה:"
+ terms accepted: תודה על קבלת תנאי התרומה החדשים!
+ terms declined: אנחנו מצטערים שהחלטת לא לקבל את תנאי התרומה החדשים. למידע נוסף ר׳ <a href="%{url}">דף הוויקי הזה</a>.
+ title: יצירת חשבון
+ use openid: לחלופין, אפשר להשתמש ב־%{logo} OpenID כדי להיכנס
no_such_user:
+ body: סליחה, אין חשבון בשם %{user}. אולי האיות לא נכון ואולי לחצת על קישור שגוי.
heading: המשתמש %{user} אינו קיים
title: אין משתמש כזה
popup:
friend: חבר
nearby mapper: ממפה סמוך
your location: מיקומך
+ remove_friend:
+ not_a_friend: "%{name} לא אחד מהחברים שלך."
+ success: "%{name} הוסר מרשימת החברים שלך."
reset_password:
- confirm password: "אימות הסיסמה:"
- flash changed: סיסמתך השתנתה.
- heading: איפוס הסיסמה עבור %{user}
- password: "סיסמה:"
- reset: איפוס הסיסמה
- title: reset password
+ confirm password: "אימות הססמה:"
+ flash changed: ססמתך שונתה.
+ flash token bad: לא מצאנו את האסימון ההוא, אולי בדיקת הכתובת תעזור?
+ heading: איפוס הססמה עבור %{user}
+ password: "ססמה:"
+ reset: איפוס הססמה
+ title: איפוס ססמה
+ set_home:
+ flash success: מיקום ראשי נשמר בהצלחה
+ suspended:
+ body: "<p>\n סליחה, חשבוןך הושעה באופן אוטומטי עקב\n פעילות חשודה.\n</p>\n<p>\n החלטה זו תיבחן על־ידי מנהל מערכת בתוך זמן קצר, או\n באפשרותך לפנות אל %{webmaster} אם ברצונך לדון בזה.\n</p>"
+ heading: החשבון הושעה
+ title: החשבון הושעה
+ webmaster: מנהל האתר
+ terms:
+ agree: הסכמה
+ consider_pd: בנוסף להסכם לעיל, מבחינתי כל עריכותיי שייכות לנחלת הכלל
+ consider_pd_why: מה זה?
+ decline: סירוב
+ guidance: מידע שעוזר להבין את התנאים האלהa <a href="%{summary}">תקציר קריא</a> וכמה <a href="%{translations}">תרגומים בלתי־רשמיים</a>
+ heading: תנאי תרומה
+ legale_names:
+ france: צרפת
+ italy: איטליה
+ rest_of_world: שאר העולם
+ legale_select: "נא לבחור ארץ מגורים:"
+ read and accept: נא לקרוא את ההסכם להלן וללחוץ על כפתור האישור כדי לאשר שקיבלת את תנאי ההסכם הזה לתרומות הקודמות והעתידיות שלך.
+ title: תנאי תרומה
+ you need to accept or decline: נא לקרוא ולקבל או לדחות את תנאי התרומה החדשים כדי להמשיך.
view:
activate_user: להפעלת משתמש זה
add as friend: הוספה כחבר
ago: (לפני %{time_in_words_ago})
- blocks by me: חסימות על ידי
- blocks on me: חסימות שלי
+ block_history: הצגת חסימות שהתקבלו
+ blocks by me: מתי חסמתי
+ blocks on me: מתי חסמו אותי
+ comments: הערות
confirm: לאישור
confirm_user: לאישור משתמש זה
create_block: לחסימת משתמש זה
+ created from: "נוצר מתוך:"
+ ct accepted: אושרו לפני %{ago}
+ ct declined: נדחו
+ ct status: "תנאי תרומה:"
+ ct undecided: עוד אין החלטה
deactivate_user: לביטול הפעלת משתמש זה
delete_user: למחיקת משתמש זה
- description: תאור
+ description: ת×\99×\90×\95ר
diary: יומן
edits: עריכות
- email address: "כתובת דואל:"
+ email address: "כתובת דוא\"ל:"
+ friends_changesets: עיון בכל ערכות השינויים של חברים
+ friends_diaries: עיון בכל רשומות היומן של חברים
hide_user: להסתרת משתמש זה
- km away: במרחק %{count} ק"מ
- m away: במרחק %{count} מ'
+ if set location: אם הגדרת את מיקומך, מפה יפה ועוד דפרים יופיעו פה. אפשר להגדיר את מיקומך הראשי בדף %{settings_link}.
+ km away: במרחק %{count} ק״מ
+ latest edit: "עריכה אחרונה %{ago}:"
+ m away: במרחק %{count} מ׳
+ mapper since: "ממפה מאז:"
+ moderator_history: הצגת חסימות שניתנו
+ my comments: ההערות שלי
my diary: היומן שלי
my edits: העריכות שלי
+ my settings: ההגדרות שלי
+ my traces: המסלולים שלי
+ nearby users: עוד משתמשים בסביבה
+ nearby_changesets: עיון בכל ערכות השינויים של משתמשים בסביבה
+ nearby_diaries: עיון בכל רשומות היומן של משתמשים בסביבה
new diary entry: רשומה חדשה ביומן
- no friends: לא הוספת חברים כלל עדיין.
- remove as friend: הסרה כחבר
+ no friends: עדיין לא הוספת חברים כלל.
+ no nearby users: אין עדיין עוד משתמשים שמודים שהם מיפו בסביבה.
+ oauth settings: הגדרות oauth
+ remove as friend: הסרה מרשימת חברים
+ role:
+ administrator: לחשבון הזה יש הרשאות מפעיל
+ grant:
+ administrator: הענקת הרשאות מפעיל
+ moderator: הענקת הרשאות מנהל
+ moderator: זהו חשבון מנהל
+ revoke:
+ administrator: שלילת הרשאות מפעיל
+ moderator: שלילת הרשאות מנהל
send message: שליחת הודעה
settings_link_text: הגדרות
- status: "סטטוס:"
+ spam score: "דירוג זיבול:"
+ status: "מצב:"
traces: מסלולים
unhide_user: לבטל הסתרת משתמש זה
+ user location: מיקום המשתמש
your friends: החברים שלך
user_block:
+ blocks_by:
+ empty: מעולם לא נעשתה חסימה על־ידי %{name}
+ heading: רשימת החסימות שנעשו על־ידי %{name}
+ title: חסימות על־ידי %{name}
+ blocks_on:
+ empty: מעולם לא הופעלה חסימה על %{name}
+ heading: רשימת החסימות של %{name}
+ title: חסימות של %{name}
+ create:
+ flash: נוצרה חסימה על חשבון %{name}
+ try_contacting: נא לנסות ליצור קשר עם משתמש לפני חסימתו ולתת לו זמן סביר להשיב.
+ try_waiting: נא לתת למשתמש זמן סביר להשיב לפני החסימה.
+ edit:
+ back: הצגת כל החסימות
+ heading: חסימת עריכה על %{name}
+ needs_view: האם המשתמש צריך להיכנס לפני שהחסימה הזאת תנוקה?
+ period: למשך כמה זמן מעכשיו החשבון ייחסם מביצוע פעולות API.
+ reason: הסיבה שבגינה החשבון %{name} נחסם. נא לכתוב משהו הגינוי ורגוע ולתת כמה שיותר פרטים על המצב. נא לזכור שלא כל המשתמשים מבינים את העגה המקצועית של הקהילה ולשתדל להשתמש במילים ברורות לכול.
+ show: הצגת החסימה הזאת
+ submit: עדכון חסימה
+ title: חסימת עריכה על %{name}
+ filter:
+ block_expired: ייתכן שהחסימה כבר פקעה ואי־אפשר לערוך אותה.
+ block_period: תקופת החסימה צריכה להיות אחד הערכים שאפשר לבחור ברשימה הנפתחת.
+ not_a_moderator: צריך להיות מנהל כדי לבצע את הפעולה הזאת.
+ helper:
+ time_future: יסתיים תוך %{time}
+ time_past: הסתיימה לפני %{time}.
+ until_login: פעילה עד שהמשתמש ייכנס לחשבון.
+ index:
+ empty: עוד לא נעשו חסימות.
+ heading: רשימת חסימות משתמש
+ title: חסימות משתמש
+ model:
+ non_moderator_revoke: צריך להיות מנהל כדי לבטל חסימה.
+ non_moderator_update: צריך להיות מנהל כדי ליצור או לעדכן חסימה.
+ new:
+ back: הצגת כל החסימות
+ heading: יצירת חסימה של %{name}
+ needs_view: המשתמש צריך להיכנס לפני שהחסימה הזאת תנוקה.
+ period: למשך כמה זמן מעכשיו החשבון ייחסם מביצוע פעולות API.
+ reason: הסיבה שבגינה החשבון %{name} נחסם. נא לכתוב משהו הגיוני ורגוע ולתת כמה שיותר פרטים על המצב. נא לזכור שלא כל המשתמשים מבינים את העגה המקצועית של הקהילה ולהשתדל להשתמש במילים ברורות לכול.
+ submit: יצירת חסימה
+ title: יצירת חסימה של %{name}
+ tried_contacting: יצרתי קשר עם המשתמש וביקשתי להפסיק.
+ tried_waiting: נתתי למשתמש זמן סביר להשיב על ההודעות האלו.
+ not_found:
+ back: חזרה למפתח
+ sorry: סליחה, החסימה עם המזהה %{id} לא נמצאה.
+ partial:
+ confirm: האם אתה בטוח?
+ creator_name: יוצר
+ display_name: משתמש חסום
+ edit: עריכה
+ not_revoked: (לא בוטלה)
+ reason: סיבה לחסימה
+ revoke: לבטל!
+ revoker_name: בוטלה על־ידי
+ show: הצגה
+ status: מצב
+ period:
+ one: שעה אחת
+ other: "%{count} שעות"
+ revoke:
+ confirm: האם ברצונך לבטל את החסימה הזאת?
+ flash: החסימה הזאת בוטלה.
+ heading: ביטול החסימה של %{block_on} על־ידי %{block_by}
+ past: הסימה הזאת הסתיימה לפני %{time} ואי־אפשר לבטל אותה.
+ revoke: לבטל!
+ time_future: החסימה תסתיים ב־%{time}.
+ title: בוטלה החסימה על %{block_on}
show:
back: צפייה בכל החסימות
- confirm: ×\94×\90×\9d ×\90ת×\9d ×\91×\98×\95×\97×\99×\9d?
+ confirm: ×\91×\90×\9eת?
edit: עריכה
+ heading: החשבון של %{block_on} נחסם על־ידי %{block_by}
+ needs_view: המשתמש צריך להיכנס לחשבון לפני שהחסימה הזאת יכולה להתבטל.
reason: "סיבה לחסימה:"
revoke: ביטול!
revoker: "מבטל:"
show: הצגה
status: סטטוס
+ time_future: יסתיים תוך %{time}
+ time_past: הסתיים לפני %{time}
+ title: החשבון של %{block_on} נחסם על־ידי %{block_by}
+ update:
+ only_creator_can_edit: רק המנהל שיצר את החסימה הזאת יכול לערוך אותה.
+ success: החסימה עודכנה.
+ user_role:
+ filter:
+ already_has_role: למשתמש כבר יש תפקיד %{role}.
+ doesnt_have_role: למשתמש אין תפקיד %{role}.
+ not_a_role: המחרוזת „%{role}” אינה תפקיד תקין.
+ not_an_administrator: רק מפעילים יכולים לבצע ניהול תפקידים ואין לך הרשאת מפעיל.
+ grant:
+ are_you_sure: האם ברצונך באמת להעניק תפקיד „%{role}” למשתמש „%{name}”?
+ confirm: אישור
+ fail: הענקת התפקיד „%{role}” למשתמש „%{name}” נכשלה. נא לבדוק שהמשתמש והתפקיד תקינים.
+ heading: לאשר הענקת תפקיד
+ title: לאשר הענקת תפקיד
+ revoke:
+ are_you_sure: האם באמת לשלול את התפקיד „%{role}” מהמשתמש „%{name}”?
+ confirm: אישור
+ fail: שלילת התפקיד „%{role}” מהמשתמש „%{name}” נכשלה. נא לבדוק שהמשתמש והתפקיד תקינים.
+ heading: אישור שלילת תפקיד
+ title: אישור שלילת תפקיד
+++ /dev/null
-hi-IN:
- dummy: dummy
licence: Dozvola
longitude: "Lon:"
manually_select: Ručno izaberi drukčije područje
- mapnik_image: Mapnik slika
max: max
options: Opcije
osm_xml_data: OpenStreetMap XML podaci
- osmarender_image: Osmarender slika
output: Izlaz
paste_html: Zalijepi HTML za ubacivanje na webstranicu
scale: Mjerilo
people_mapping_nearby: obližnji ljudi koji mapiraju
subject: Tema
title: Dolazna pošta
- you_have: Imate %{new_count} novih poruka i %{old_count} starih poruka
mark:
as_read: Poruka označena pročitanom
as_unread: Poruka označena nepročitanom
subject: Tema
title: Odlazna pošta
to: Za
- you_have_sent_messages: Imate %{count} poslanih poruka
read:
back_to_inbox: Nazad u dolaznu poštu
back_to_outbox: Nazad u odlaznu poštu
title: Korisnici
login:
account not active: Žao nam je, Vaš korisnički račun još nije aktivan. <br /> Molimo vas da koristite link u e-pošti potvrde da biste aktivirali svoj račun, ili <a href="%{reconfirm}">zatražiti novu e-poštu potvrde</a> .
- account suspended: Žao nam je, Vaš račun je suspendiran zbog sumnjive aktivnosti. <br /> Molimo kontaktirajte %{webmaster}, ako želite razgovarati o tome.
auth failure: Žao mi je, ne mogu prijaviti s ovim detaljima.
create account minute: Otvorite korisnički račun. To traje samo minutu.
email or username: "Email adresa ili korisničko ime:"
remember: "Zapamti me:"
title: Prijava
to make changes: Da bi napravili izmjene na OpenStreetMap podacima, morate imati korisnički račun.
- webmaster: webmaster
logout:
heading: Odjava iz OpenStreetMap
logout_button: Odjava
list:
description: Aktualne změny
description_bbox: Sadźby změnow znutřka %{bbox}
+ description_friend: Změny twojich přećelow
+ description_nearby: Sadźby změnow wužiwarjow w bliskosći
description_user: Sadźby změnow wot %{user}
description_user_bbox: Sadźby změnow wot %{user} znutřka %{bbox}
heading: Sadźby změnow
heading_bbox: Sadźby změnow
+ heading_friend: Sadźby změnow
+ heading_nearby: Sadźby změnow
heading_user: Sadźby změnow
heading_user_bbox: Sadźby změnow
title: Sadźby změnow
title_bbox: Sadźby změnow znutřka %{bbox}
+ title_friend: Změny twojich přećelow
+ title_nearby: Sadźby změnow wužiwarjow w bliskosći
title_user: Sadźby změnow wot %{user}
title_user_bbox: Sadźby změnow wot %{user} znutřka %{bbox}
timeout:
sorry: Bohužel je předołho trało, skupiny změny, kotrež sy požadał, wotwołać.
diary_entry:
+ comments:
+ ago: před %{ago}
+ comment: Komentar
+ has_commented_on: "%{display_name} je slědowace dźenikowe zapiski komentował"
+ newer_comments: Nowše komentary
+ older_comments: Starše komentary
+ post: Powěsć
+ when: Časowy dypk
diary_comment:
comment_from: Komentar wot %{link_user} spisany dnja %{comment_created_at}
confirm: Wobkrućić
older_entries: Starše zapiski
recent_entries: "Najnowše dźenikowe zapiski:"
title: Dźeniki wužiwarjow
+ title_friends: Dźeniki přećelow
+ title_nearby: Dźeniki wužiwarjow w bliskosći
user_title: dźenik wužiwarja %{user}
location:
edit: Wobdźěłać
licence: Licenca
longitude: "Dołhostnik:"
manually_select: Druhi wobłuk manuelnje wubrać
- mapnik_image: Wobraz Mapnik
+ map_image: Kartowy wobraz (pokazuje standardnu runinu)
max: maks.
options: Opcije
osm_xml_data: OpenStreetMap XML-daty
- osmarender_image: Wobraz Osmarender
output: Wudaće
paste_html: HTML-kod kopěrować, zo by so do websydła zasunył
scale: Měritko
veterinary: Zwěrjacy lěkar
village_hall: Gmejnski centrum
waste_basket: Wotpadkowe sudobjo
- wifi: WLAN-přistup
+ wifi: WiFi-přistup
youth_centre: Centrum za młodostnych
boundary:
administrative: Zarjadniska hranica
base:
cycle_map: Kolesowa karta
mapquest: MapQuest Open
+ standard: Standard
transport_map: Wobchadna karta
site:
edit_disabled_tooltip: Za wobdźěłowanje karty powjetšić
english_link: jendźelskim originalom
text: W padźe konflikta mjez přełoženej stronje a %{english_original_link}, jendźelska strona dyrbi prioritatu měć
title: Wo tutym přełožku
- legal_babble: "<h2>Awtorske prawo a licenca</h2>\n<p> \nOpenStreetMap wobsteji ze <i>zjawnych datow</i>, licencowanych pod licencu <a href=\"http://creativecommons.org/licenses/by-sa/2.0/\">Creative Commons Attribution-ShareAlike 2.0</a> (CC-BY-SA). </p> <p> Móžeš naše karty a daty kopěrować, rozdźělić, přenjesć a přiměrić, tak dołho kaž OpenStreetMap a jich sobuskutkowacych naspominaš. Jeli změniš naše karty abo daty abo zepěraš so na nje, móžeš wuslědk jenož pod samsnej licencu rozdźělić. Dospołny <a href=\"http://creativecommons.org/licenses/by-sa/2.0/legalcode\">prawniski kod</a> wujasnja twoje prawa a zamołwitosće.</p>\n\n<h3>Kak awtorstwo OpenStreetMap naspomnić</h3>\n<p> Jeli kartowe wobrazy z OpenStreetMap wužiwaš, žadamy sej, zo znajmjeńša podawaš “© OpenStreetMap a sobuskutkowacych, CC-BY-SA”. Jeli jenož kartowe daty wužiwaš, dyrbiš “kartowe daty © OpenStreetMap a sobuskutkowacych, CC-BY-SA” podać. </p> <p> Hdźež je móžno, OpenStreetMap měł wotkaz do <a href=\"http://www.openstreetmap.org/\">http://www.openstreetmap.org/</a> a CC-BY-SA do <a href=\"http://creativecommons.org/licenses/by-sa/2.0/\">http://creativecommons.org/licenses/by-sa/2.0/</a> měć. Jeli medij wužiwaš, hdźež wotkazy móžno njejsu (na př. wućišćane dźěło), namjetujemy, zo pokazuješ swojich čitarjow na www.openstreetmap.org a na www.creativecommons.org.</p>\n\n<h3>Dalše informacije</h3>\n<p>Čitaj wjace wo wužiwanju našich datow <a href=\"http://wiki.openstreetmap.org/wiki/Legal_FAQ\">Huste prawniske prašenja</a>.</p><p> Přinošowarjow OSM namołwjamy, zo ženje daty ze žórłow njepřidawaja, kotrež su přez awtorske prawo škitane (na př. z Google Maps abo z wućišćanych kartow) bjez wurazneje dowolnosće awtorow. </p> <p> Hačrunjež OpenStreetMap wobsteji ze zjawnych datow, njemóžemy darmotny kartowy API za wuwiwarjow třećich poskićić. \n\nHlej naše <a href=\"http://wiki.openstreetmap.org/wiki/API_usage_policy\">prawidła za wužiwanje API</a>, <a href=\"http://wiki.openstreetmap.org/wiki/Tile_usage_policy\">Prawidła za wužiwanje polow</a> a <a href=\"http://wiki.openstreetmap.org/wiki/Nominatim#Usage_Policy\">Prawidła za wužiwanje Nominatim</a>. </p> \n\n<h3>Naši sobuskutkowacy</h3>\n<p> Naša licenca CC-BY-SA žada sej, zo “daš prěnjotnemu awtorej dźak přiměrjeny medijej abo srědkej, kotryž wužiwaš”. Jednotliwi kartěrowarjo OSM nježadaja sej přidatne dźakprajenje k “sobuskutkowarjam OpenStreetMap”, ale hdyž so daty z narodneho kartěrowanskeho předewzaća abo z druheho wuznamneho žórła w OpenStreetMap zapřijimaja, je přiměrjene, jim přez direktne přewzaće jich dźakprajenja abo přez wotkazowanje na njo na tutej stronje dźak prajić. </p>\n\n<!-- Information for page editors The following lists only those organisations who require attribution as a condition of their data being used in OpenStreetMap. It is not a general catalogue of imports, and must not be used except when attribution is required to comply with the licence of the imported data. Any additions here must be discussed with OSM sysadmins first. --> \n<ul id=\"contributors\"><li><strong>Awstralska</strong>: Wobsahuje předměšćanske daty na zakładźe datow Awstralskeho zarjada za statistiku (Australian Bureau of Statistics).</li>\n<li><strong>Awstriska</strong>: Wobsahuje daty z <a href=\"http://data.wien.gv.at/\">Stadt Wien</a> pod <a href=\"http://creativecommons.org/licenses/by/3.0/at/deed.de\">CC-BY</a>.</li>\n <li><strong>Kanada</strong>: Wobsahuje daty z GeoBase®, GeoGratis (© Department of Natural Resources Canada), CanVec (© Department of Natural Resources Canada), a StatCan (Geography Division, Statistics Canada).</li>\n<li><strong>Francoska</strong>: Wobsahuje daty z Direction Générale des Impôts.</li>\n<li><strong>Nowoseelandska</strong>: Wobsahuje daty ze žórłow wot Land Information New Zealand. Awtorske prawo wuměnjene.</li> \n<li><strong>Pólska</strong>: Wobsahuje daty z <a\n href=\"http://ump.waw.pl/\">UMP-pcPL maps</a>. Awtorske prawo sobuskutkowacych UMP-pcPL.</li>\n<li><strong>Zjednoćene kralestwo</strong>: Wobsahuje daty z Ordnance Survey (Zarjadniske krajměrjenstwo) © Awtorske prawo a prawo za datowe banki 2010.</li> </ul>\n\n<p> Zapřijimanje datow do OpenStreetMap njerěka, zo poskićowar originalnych datow OpenStreetMap připóznawa, někajku garantiju dodawa abo rukowanje přewozmje. </p>"
+ legal_babble: "<h2>Awtorske prawo a licenca</h2>\n<p> \nOpenStreetMap wobsteji ze <i>zjawnych datow</i>, licencowanych pod licencu <a href=\"http://creativecommons.org/licenses/by-sa/2.0/\">Creative Commons Attribution-ShareAlike 2.0</a> (CC BY-SA).\n</p>\n<p>\nMóžeš naše karty a daty kopěrować, rozdźělić, přenjesć a přiměrić, tak dołho kaž OpenStreetMap a jich sobuskutkowacych naspominaš. Jeli změniš naše karty abo daty abo zepěraš so na nje, móžeš wuslědk jenož pod samsnej licencu rozdźělić. Dospołny <a href=\"http://creativecommons.org/licenses/by-sa/2.0/legalcode\">prawniski kod</a> wujasnja twoje prawa a zamołwitosće.</p>\n\n<h3>Kak awtorstwo OpenStreetMap naspomnić</h3>\n<p>\nJeli kartowe wobrazy z OpenStreetMap wužiwaš, žadamy sej, zo znajmjeńša podawaš “© OpenStreetMap a sobuskutkowacych, CC BY-SA”. Jeli jenož kartowe daty wužiwaš, dyrbiš “kartowe daty © OpenStreetMap a sobuskutkowacych, CC BY-SA” podać.\n</p>\n<p>Hdźež je móžno, OpenStreetMap měł wotkaz do <a href=\"http://www.openstreetmap.org/\">http://www.openstreetmap.org/</a> a CC BY-SA do <a href=\"http://creativecommons.org/licenses/by-sa/2.0/\">http://creativecommons.org/licenses/by-sa/2.0/</a> měć. Jeli medij wužiwaš, hdźež wotkazy móžno njejsu (na př. wućišćane dźěło), namjetujemy, zo pokazuješ swojich čitarjow na www.openstreetmap.org a na www.creativecommons.org.\n</p>\n\n<h3>Dalše informacije</h3>\n<p>\nČitaj wjace wo wužiwanju našich datow <a href=\"http://wiki.openstreetmap.org/wiki/Legal_FAQ\">Huste prawniske prašenja</a>.\n</p>\n<p>\nSobuskutkowacych OSM namołwjamy, zo ženje daty ze žórłow, kotrež su přez awtorske prawo škitane (na př. z Google Maps abo z wućišćanych kartow) bjez wurazneje dowolnosće awtorow njepřidawaja.</p>\n<p>\nHačrunjež OpenStreetMap wobsteji ze zjawnych datow, njemóžemy darmotny kartowy API za wuwiwarjow třećich poskićić. \n\nHlej naše <a href=\"http://wiki.openstreetmap.org/wiki/API_usage_policy\">prawidła za wužiwanje API</a>, <a href=\"http://wiki.openstreetmap.org/wiki/Tile_usage_policy\">Prawidła za wužiwanje polow</a> a <a href=\"http://wiki.openstreetmap.org/wiki/Nominatim#Usage_Policy\">Prawidła za wužiwanje Nominatim</a>. </p> \n\n<h3>Naši sobuskutkowacy</h3>\n<p>\nNaša licenca CC BY-SA žada sej, zo “daš prěnjotnemu awtorej dźak přiměrjeny medijej abo srědkej, kotryž wužiwaš”. Jednotliwi kartěrowarjo OSM nježadaja sej přidatne dźakprajenje k “sobuskutkowarjam OpenStreetMap”, ale hdyž so daty z narodneho kartěrowanskeho předewzaća abo z druheho wuznamneho žórła w OpenStreetMap zapřijimaja, je přiměrjene, jim přez direktne přewzaće jich dźakprajenja abo přez wotkazowanje na njo na tutej stronje dźak prajić.\n</p>\n\n<!--\nInformation for page editors\n\nThe following lists only those organisations who require attribution as a condition of their data being used in OpenStreetMap. It is not a general catalogue of imports, and must not be used except when attribution is required to comply with the licence of the imported data.\n\nAny additions here must be discussed with OSM sysadmins first.\n-->\n \n<ul id=\"contributors\">\n <li><strong>Awstralska</strong>: Wobsahuje předměšćanske daty na zakładźe datow Awstralskeho zarjada za statistiku (Australian Bureau of Statistics).</li>\n <li><strong>Awstriska</strong>: Wobsahuje daty z <a href=\"http://data.wien.gv.at/\">Stadt Wien</a> pod <a href=\"http://creativecommons.org/licenses/by/3.0/at/deed.de\">CC BY</a>.</li>\n <li><strong>Kanada</strong>: Wobsahuje daty z GeoBase®, GeoGratis (© Department of Natural Resources Canada), CanVec (© Department of Natural Resources Canada), a StatCan (Geography Division, Statistics Canada).</li>\n <li><strong>Francoska</strong>: Wobsahuje daty z Direction Générale des Impôts.</li>\n <li><strong>Nowoseelandska</strong>: Wobsahuje daty ze žórłow wot Land Information New Zealand. Awtorske prawo wuměnjene.</li> \n <li><strong>Pólska</strong>: Wobsahuje daty z <a\n href=\"http://ump.waw.pl/\">UMP-pcPL maps</a>. Awtorske prawo sobuskutkowacych UMP-pcPL. \n <a href=\"http://wiki.openstreetmap.org/wiki/UMP2OSM_Importing\">\n Wjace wo wužiwanju UMP-datow w OSM</a></li>\n <li><strong>South Africa</strong>: Wobsahuje daty z <a href=\"http://www.ngi.gov.za/\">Chief Directorate:\n National Geo-Spatial Information</a>, Statne awtorske prawo wuměnjene.</li>\n <li><strong>United Kingdom</strong>: Wobsahuje daty z Ordnance\n Survey © Crown copyright and database right\n 2010.</li></li>\n <li><strong>Zjednoćene kralestwo</strong>: Wobsahuje daty z Ordnance Survey (Zarjadniske krajměrjenstwo) © Awtorske prawo a prawo za datowe banki 2010.</li>\n</ul>\n\n<p>\nZapřijimanje datow do OpenStreetMap njerěka, zo poskićowar originalnych datow OpenStreetMap připóznawa, někajku garantiju dodawa abo rukowanje přewozmje.\n</p>"
native:
mapping_link: kartěrowanje započeć
native_link: hornjoserbskej wersiji
inbox:
date: Datum
from: Wot
+ messages: Maš %{new_messages} a %{old_messages}
my_inbox: Mój póst
+ new_messages:
+ one: "%{count} nowa powěsć"
+ other: "%{count} nowej powěsći"
no_messages_yet: Hišće nimaš powěsće. Staj da so z jednym z %{people_mapping_nearby_link}, do zwiska.
+ old_messages:
+ one: "%{count} stara powěsć"
+ other: "%{count} starej powěsći"
outbox: pósłany
people_mapping_nearby: ludźi, kotřiž w bliskosći kartěruja
subject: Temowe nadpismo
title: Póstowy kašćik
- you_have: Maš %{new_count} nowych powěsćow a %{old_count} starych powěsćow
mark:
as_read: Powěsć jako přečitany markěrowana
as_unread: Powěsć jako njepřečitany markěrowana
outbox:
date: Datum
inbox: póstowy kašćik
+ messages:
+ one: Sy %{count} powěsć pósłał
+ other: Sy %{count} powěsći pósłał
my_inbox: Mój %{inbox_link}
no_sent_messages: Hišće njejsy powěsće pósłał. Staj da so z jednym z %{people_mapping_nearby_link}, do zwiska.
outbox: pósłany
subject: Temowe nadpismo
title: Pósłany
to: Komu
- you_have_sent_messages: Sy %{count} pósłanych powěsćow
read:
back_to_inbox: Wróćo k póstowemu kašćikej
back_to_outbox: Wróćo k pósłanym powěsćam
summary_no_ip: "%{name} dnja %{date} wutworjeny"
title: Wužiwarjo
login:
+ account is suspended: Twoje konto bu bohužel podhladneje aktiwity dla wupowědźene.<br />Stajće so prošu z <a href="%{webmaster}">webmasterom</a> do zwiska, jeli chceš wo tym diskutować.
account not active: Bohužel je twoje konto hišće aktiwne njeje.<br />Prošu klikń na wotkaz w e-mejlu kontoweho wubkrućenja, zo by swoje konto aktiwizował, abo <a href="%{reconfirm}">proš wo nowu wobkrućensku e-mejl</a>.
- account suspended: Twoje konto bu bohužel podhladneje aktiwity dla wupowědźene.<br />Stajće so prošu z %{webmaster} do zwiska, jeli chceš wo tym diskutować.
auth failure: Bohužel přizjewjenje z tutymi podaćemi móžno njeje.
create account minute: Załož konto. Traje jenož chwilku.
email or username: "E-mejlowa adresa abo wužiwarske mjeno:"
login_button: Přizjewjenje
lost password link: Swoje hesło zabył?
new to osm: Nowy w OpenStreetMap?
+ no account: Nimaš žane konto?
notice: <a href="http://www.osmfoundation.org/wiki/License/We_Are_Changing_The_License">Wjace wo bórzomnej licencnej změnje OpenStreetMap</a> (<a href="http://wiki.openstreetmap.org/wiki/ODbL/We_Are_Changing_The_License">přełožki</a>) (<a href="http://wiki.openstreetmap.org/wiki/Talk:ODbL/Upcoming">diskusija</a>)
+ notice_terms: OpenStreetMap přeńdźe 1. apryla 2012 k nowej licency. Je tež swobodna kaž aktualna, ale prawniske wuměnjenja hodźa so lěpje k našej kartowej datowej bance. Bychmy rady twoje přinoški w OpenStreetMap wobchowali, ale móžemy to jenož činić, jeli sy přezjedny, zo twoje přinoški pod nowej licencu rozšěrjemy. Hewak dyrbimy je z datoweje banki wotstronić.<br /><br />Prošu wozjew so, bjer sej potom něšto sekundow časa, zo by nowe wuměnjenja přepruwował a akceptował. Wulki dźak!
openid: "%{logo} OpenID:"
openid invalid: Zda so, zo twój OpenID je njepłaćiwy
openid missing provider: Bohužel njemóžachmy z twojim OpenID-poskićowarjom zwjazać.
remember: "Spomjatkować sej:"
title: Přizjewjenje
to make changes: Zo by daty OpenStreetMap změnił, dyrbiš konto měć.
- webmaster: webmišter
with openid: "Hewak wužij prošu swój OpenID, zo by so přizjewił:"
with username: "Maš hižo konto pola OpenStreetMap? Prošu přizjew so z wužiwarskim mjenom a hesłom:"
logout:
block_history: Dóstane blokowanja pokazać
blocks by me: blokowanja wote mnje
blocks on me: blokowanja přećiwo mi
+ comments: Komentary
confirm: Wobkrućić
confirm_user: tutoho wužiwarja wobkrućić
create_block: tutoho wužiwarja blokować
created from: "Wutworjeny z:"
+ ct accepted: Před %{ago} akceptowany
+ ct declined: Wotpokazany
+ ct status: "Wuměnjenja za sobuskutkowarjow:"
+ ct undecided: Njerozsudźeny
deactivate_user: tutoho wužiwarja znjemóžnić
delete_user: tutoho wužiwarja zničić
description: Wopisanje
diary: dźenik
edits: změny
email address: "E-mejlowa adresa:"
+ friends_changesets: Sadźby změnow twojich přećelow přepytać
+ friends_diaries: Wšě dźenikowe zapiski přećelow přepytać
hide_user: tutoho wužiwarja schować
if set location: Jeli sy swoje stejnišćo podał, budźetej so deleka rjana karta a druhe material jewić. Móžeš swoje domjace stejnišćo na swojej stronje %{settings_link} nastajić.
km away: "%{count} km zdaleny"
m away: "%{count} m zdaleny"
mapper since: "Kartěrowar wot:"
moderator_history: Date blokowanja pokazać
+ my comments: moje komentary
my diary: mój dźenik
my edits: moje změny
my settings: moje nastajenja
my traces: moje ćěrje
nearby users: Druzy wužiwarjo w bliskosći
+ nearby_changesets: Wšě sadźby změnow wužiwarjow w bliskosći přepytać
+ nearby_diaries: Wšě dźenikowe zapiski wužiwarjow w bliskosći přepytać
new diary entry: nowy dźenikowy zapisk
no friends: Hišće njejsy přećelow přidał.
no nearby users: Njejsu druzy wužiwarjo, kotřiž w bliskosći kartěruja.
# Export driver: syck-pecl
# Author: City-busz
# Author: Dani
+# Author: Dj
# Author: Glanthor Reviol
# Author: Leiric
# Author: Misibacsi
+# Author: Sucy
hu:
activerecord:
attributes:
list:
description: Legutóbbi módosítások
description_bbox: "Módosításcsomagok ezen belül: %{bbox}"
+ description_friend: Ismerőseid módosításcsomagjai
+ description_nearby: Közeli felhasználók módosításcsomagjai
description_user: "%{user} módosításcsomagjai"
description_user_bbox: "%{user} módosításcsomagjai ezen belül: %{bbox}"
heading: Módosításcsomagok
heading_bbox: Módosításcsomagok
+ heading_friend: Módosításcsomagok
+ heading_nearby: Módosításcsomagok
heading_user: Módosításcsomagok
heading_user_bbox: Módosításcsomagok
title: Módosításcsomagok
title_bbox: "Módosításcsomagok ezen belül: %{bbox}"
+ title_friend: Ismerőseid módosításcsomagjai
+ title_nearby: Közeli felhasználók módosításcsomagjai
title_user: "%{user} módosításcsomagjai"
title_user_bbox: "%{user} módosításcsomagjai ezen belül: %{bbox}"
timeout:
older_entries: Régebbi bejegyzések
recent_entries: "Legutóbbi naplóbejegyzések:"
title: Felhasználók naplói
+ title_friends: Ismerősök naplói
+ title_nearby: Közeli felhasználók naplói
user_title: "%{user} naplója"
location:
edit: Szerkesztés
licence: Licenc
longitude: "Földrajzi hosszúság:"
manually_select: Más terület kézi kijelölése
- mapnik_image: Mapnik kép
max: max.
options: Beállítások
osm_xml_data: OpenStreetMap XML adat
- osmarender_image: Osmarender kép
output: Kimenet
paste_html: Webhelyekbe való beágyazáshoz illeszd be a HTML kódot
scale: Méretarány
foundation_title: Az „OpenStreetMap Foundation”
gps_traces: Nyomvonalak
gps_traces_tooltip: GPS nyomvonalak kezelése
- help: Sugó
+ help: Súgó
help_centre: Súgóközpont
help_title: A projekt sugóoldala
history: Előzmények
inbox:
date: Érkezett
from: Feladó
+ messages: "%{new_messages} és %{old_messages} van"
my_inbox: Beérkezett üzenetek
+ new_messages:
+ one: egy új üzenet
+ other: "%{count} új üzenet"
no_messages_yet: Nincs még üzeneted. Miért nem veszed fel a kapcsolatot néhány %{people_mapping_nearby_link}vel?
+ old_messages:
+ one: egy régi üzeneted
+ other: "%{count} régi üzeneted"
outbox: Elküldött üzenetek
people_mapping_nearby: közeli térképszerkesztő
subject: Tárgy
title: Beérkezett üzenetek
- you_have: "%{new_count} új üzeneted és %{old_count} régi üzeneted van"
mark:
as_read: Üzenet megjelölve olvasottként
as_unread: Üzenet megjelölve olvasatlanként
outbox:
date: Elküldve
inbox: Beérkezett üzenetek
+ messages:
+ one: Egy elküldött üzeneted van
+ other: "%{count} elküldött üzeneted van"
my_inbox: "%{inbox_link}"
no_sent_messages: Nincs még elküldött üzeneted. Miért nem veszed fel a kapcsolatot néhány %{people_mapping_nearby_link}vel?
outbox: Elküldött üzenetek
subject: Tárgy
title: Elküldött üzenetek
to: Címzett
- you_have_sent_messages: "%{count} elküldött üzeneted van"
read:
back_to_inbox: Vissza a beérkezett üzenetekhez
back_to_outbox: Vissza az elküldött üzenetekhez
title: Felhasználók
login:
account not active: Sajnálom, a felhasználói fiókod még nincs aktiválva.<br />Fiókod aktiválásához kérlek, használd a fiókodat megerősítő emailben található hivatkozást, vagy <a href="%{reconfirm}">kérj egy új megerősítő emailt</a>.
- account suspended: Sajnálom, felhasználói fiókod felfüggesztésre került gyanús tevékenységed miatt.<br />Kérlek, lépj kapcsolatba a %{webmaster}rel, ha meg szeretnéd vitatni ezt.
auth failure: Sajnálom, ilyen adatokkal nem tudsz bejelentkezni.
create account minute: Hozz létre egy felhasználói fiókot. Csak egy percet vesz igénybe.
email or username: "E-mail cím vagy felhasználónév:"
lost password link: Elfelejtetted a jelszavad?
new to osm: Új vagy az OpenStreetMapnál?
notice: <a href="http://www.osmfoundation.org/wiki/License/We_Are_Changing_The_License">Tudj meg többet az OpenStreetMap közelgő licencváltozásáról</a> (<a href="http://wiki.openstreetmap.org/wiki/ODbL/We_Are_Changing_The_License">fordítások</a>) (<a href="http://wiki.openstreetmap.org/wiki/Talk:ODbL/Upcoming">vita</a>)
+ notice_terms: Az OpenStreetMap 2012. április 1-jén új licencre vált. Ez pont olyan szabad lesz, mint a jelenlegi licencünk, de a jogi részek sokkal jobban illeszkednek a mi térképi adatbázisunkhoz. Mi szeretnénk, ha megtartanád hozzájárulásaidat az OpenStreetMapban, de ez csak akkor lehetséges, ha beleegyezel abba, hogy hozzájárulásaidat az új licenc alatt terjesszük. Különben el kell távolítanunk azokat az adatbázisból.<br /><br />Kérünk, jelenkezz be, majd szánj néhány percet az új feltételek áttekintésére és elfogadására. Köszönjük!
openid: "%{logo} OpenID:"
openid invalid: Sajnos úgy tűnik, hogy az OpenID azonosítód hibás
openid missing provider: Sajnos nem sikerült kapcsolódni az OpenID szolgáltatódhoz
remember: "Emlékezz rám:"
title: Bejelentkezés
to make changes: Ahhoz, hogy módosíthasd az OpenStreetMap-adatokat, rendelkezned kell egy felhasználói fiókkal.
- webmaster: webmester
with openid: "A bejelentkezéshez az OpenID azonosítódat is használhatod:"
with username: "Már van OpenStreetMap fiókod? Jelentkezz be a felhasználóneveddel és jelszavaddal:"
logout:
confirm_user: felhasználó megerősítése
create_block: ezen felhasználó blokkolása
created from: "Készítve innen:"
+ ct accepted: Elfogadva %{ago} óta
+ ct declined: Elutasítva
+ ct status: "Hozzájárulási feltételek:"
+ ct undecided: Nem eldöntött
deactivate_user: felhasználó deaktiválása
delete_user: ezen felhasználó törlése
description: Leírás
diary: napló
edits: szerkesztések
email address: "E-mail cím:"
+ friends_changesets: Ismerőseid módosításcsomagjainak tallózása
hide_user: ezen felhasználó elrejtése
if set location: Ha beállítod a helyedet, egy szép térkép fog megjelenni alább. Az otthonodat a %{settings_link}nál állíthatod be.
km away: "%{count} km-re innen"
list:
description: Modificationes recente
description_bbox: Gruppos de modificationes intra %{bbox}
+ description_friend: Gruppos de modificationes per tu amicos
+ description_nearby: Gruppos de modificationes per usatores vicin
description_user: Gruppos de modificationes per %{user}
description_user_bbox: Gruppos de modificationes per %{user} intra %{bbox}
heading: Gruppos de modificationes
heading_bbox: Gruppos de modificationes
+ heading_friend: Gruppos de modificationes
+ heading_nearby: Gruppos de modificationes
heading_user: Gruppos de modificationes
heading_user_bbox: Gruppos de modificationes
title: Gruppos de modificationes
title_bbox: Gruppos de modificationes intra %{bbox}
+ title_friend: Gruppos de modificationes per tu amicos
+ title_nearby: Gruppos de modificationes per usatores vicin
title_user: Gruppos de modificationes per %{user}
title_user_bbox: Gruppos de modificationes per %{user} intra %{bbox}
timeout:
older_entries: Entratas plus ancian
recent_entries: "Entratas recente de diario:"
title: Diarios de usatores
+ title_friends: Diarios de amicos
+ title_nearby: Diarios de usatores vicin
user_title: Diario de %{user}
location:
edit: Modificar
licence: Licentia
longitude: "Lon:"
manually_select: Seliger manualmente un altere area
- mapnik_image: Imagine Mapnik
max: max
options: Optiones
osm_xml_data: Datos XML de OpenStreetMap
- osmarender_image: Imagine Osmarender
output: Resultato
paste_html: Colla HTML pro incorporar in sito web
scale: Scala
english_link: le original in anglese
text: In caso de un conflicto inter iste pagina traducite e %{english_original_link}, le pagina in anglese prevalera.
title: A proposito de iste traduction
- legal_babble: "<h2>Copyright e Licentia</h2>\n<p>\n OpenStreetMap es <i>datos aperte</i>, disponibile sub le licentia\n <a href=\"http://creativecommons.org/licenses/by-sa/2.0/\">Creative\n Commons Attribution-ShareAlike 2.0</a> (CC-BY-SA).\n</p>\n<p>\n Vos es libere de copiar, distribuer, transmitter e adaptar nostre cartas\n e datos, a condition que vos da recognoscentia a OpenStreetMap e su\n contributores. Si vos altera o extende nostre cartas e datos, vos\n pote distribuer le resultato solmente sub le mesme licentia. Le\n complete <a\n href=\"http://creativecommons.org/licenses/by-sa/2.0/legalcode\">codice\n legal</a> explica vostre derectos e responsabilitates.\n</p>\n\n<h3>Como dar recognoscentia a OpenStreetMap</h3>\n<p>\n Si vos usa imagines del cartas de OpenStreetMap, nos requesta que\n vostre recognoscentia indica al minus “© Contributores de\n OpenStreetMap, CC-BY-SA”. Si vos usa solmente datos cartographic,\n nos requesta “Datos cartographic © Contributores de OpenStreetMap,\n CC-BY-SA”.\n</p>\n<p>\n Si possibile, le parola OpenStreetMap debe esser un hyperligamine a <a\n href=\"http://www.openstreetmap.org/\">http://www.openstreetmap.org/</a>\n e le termino CC-BY-SA debe ligar a <a\n href=\"http://creativecommons.org/licenses/by-sa/2.0/\">http://creativecommons.org/licenses/by-sa/2.0/</a>. Si\n vos usa un medio de communication in le qual le ligamines non es possibile (p.ex. un\n obra imprimite), nos suggere que vos dirige vostre lectores a\n www.openstreetmap.org (possibilemente per expander\n ‘OpenStreetMap’ a iste adresse complete) e a\n www.creativecommons.org.\n</p>\n\n<h3>Pro saper plus</h3>\n<p>\n Lege plus super le uso de nostre datos al <a\n href=\"http://wiki.openstreetmap.org/wiki/Legal_FAQ\">FAQ\n Legal</a>.\n</p>\n<p>\n Le contributores de OSM es recordate de nunquam adder datos de alcun\n fonte subjecte al derecto de autor (p.ex. Google Maps o cartas imprimite)\n sin explicite permission del titulares del derecto de autor.\n</p>\n<p>\n Ben que OpenStreetMap es datos aperte, nos non pote fornir un\n API cartographic gratuite pro altere disveloppatores.\n\n Vide nostre <a href=\"http://wiki.openstreetmap.org/wiki/API_usage_policy\">politica pro le uso del API</a>,\n <a href=\"http://wiki.openstreetmap.org/wiki/Tile_usage_policy\">politica pro le uso de tegulas</a>\n e <a href=\"http://wiki.openstreetmap.org/wiki/Nominatim#Usage_Policy\">politica pro le uso de Nominatim</a>.\n</p>\n\n<h3>Nostre contributores</h3>\n<p>\n Nostre licentia CC-BY-SA require que vos “da al Autor\n Original recognoscentia rationabile pro le medio que Vos\n utilisa”. Le cartographos individual de OSM non requesta un\n recognoscentia excedente illo del “Contributores de\n OpenStreetMap”, sed ubi datos de un agentia cartographic\n national o altere fonte major ha essite includite in\n OpenStreetMap, il pote esser rationabile dar les recognoscentia per\n directemente reproducer lor recognoscentia o per ligar a illo in iste pagina.\n</p>\n\n<!--\nInformation pro redactores de iste pagina\n\nIn le sequente lista figura solmente le organisationes que require attribution\ncomo condition pro le uso de lor datos in OpenStreetMap. Isto non es un\ncatalogo general de datos importate, e non debe esser usate salvo si\nattribution es requirite pro conformitate con le licentia del datos\nimportate.\n\nOmne additiones hic debe esser discutite primo con le administratores de OSM.\n-->\n\n<ul id=\"contributors\">\n <li><strong>Australia</strong>: Contine datos de suburbios a base\n de datos del Australian Bureau of Statistics.</li>\n <li><strong>Austria</strong>: Contine datos ab le\n <a href=\"http://data.wien.gv.at/\">Citate de Vienna</a> licentiate sub\n <a href=\"http://creativecommons.org/licenses/by/3.0/at/deed.de\">CC-BY</a>.</li>\n <li><strong>Canada</strong>: Contine datos ab\n GeoBase®, GeoGratis (© Department of Natural\n Resources Canada), CanVec (© Department of Natural\n Resources Canada), e (Geography Division,\n Statistics Canada).</li>\n <li><strong>Francia</strong>: Contine datos colligite del\n Direction Générale des Impôts.</li>\n <li><strong>Nove Zelandia</strong>: Contine datos obtenite ex\n Land Information New Zealand. Crown Copyright reservate.</li>\n <li><strong>Polonia</strong>: Contine datos cartographic ex <a\n href=\"http://ump.waw.pl/\">UMP-pcPL</a>. Copyright\n contributores de UMP-pcPL.</li>\n <li><strong>Regno Unite</strong>: Contine datos de Ordnance\n Survey © Crown copyright e derecto de base de datos\n 2010.</li>\n</ul>\n\n<p>\n Le inclusion de datos in OpenStreetMap non implica que le fornitor\n original del datos indorsa OpenStreetMap, forni alcun garantia, o\n accepta alcun responsabilitate.\n</p>"
+ legal_babble: "<h2>Copyright e Licentia</h2>\n<p>\n OpenStreetMap es <i>datos aperte</i>, disponibile sub le licentia\n <a href=\"http://creativecommons.org/licenses/by-sa/2.0/\">Creative\n Commons Attribution-ShareAlike 2.0</a> (CC-BY-SA).\n</p>\n<p>\n Vos es libere de copiar, distribuer, transmitter e adaptar nostre cartas\n e datos, a condition que vos da recognoscentia a OpenStreetMap e su\n contributores. Si vos altera o extende nostre cartas e datos, vos\n pote distribuer le resultato solmente sub le mesme licentia. Le\n complete <a\n href=\"http://creativecommons.org/licenses/by-sa/2.0/legalcode\">codice\n legal</a> explica vostre derectos e responsabilitates.\n</p>\n\n<h3>Como dar recognoscentia a OpenStreetMap</h3>\n<p>\n Si vos usa imagines cartographic de OpenStreetMap, nos requesta que\n vostre recognoscentia indica al minus “© Contributores de\n OpenStreetMap, CC-BY-SA”. Si vos usa solmente datos cartographic,\n nos requesta “Datos cartographic © Contributores de OpenStreetMap,\n CC-BY-SA”.\n</p>\n<p>\n Si possibile, le parola OpenStreetMap debe esser un hyperligamine a <a\n href=\"http://www.openstreetmap.org/\">http://www.openstreetmap.org/</a>\n e le termino CC-BY-SA debe ligar a <a\n href=\"http://creativecommons.org/licenses/by-sa/2.0/\">http://creativecommons.org/licenses/by-sa/2.0/</a>. Si\n vos usa un medio de communication in le qual le ligamines non es possibile (p.ex. un\n obra imprimite), nos suggere que vos dirige vostre lectores a\n www.openstreetmap.org (possibilemente per expander\n ‘OpenStreetMap’ a iste adresse complete) e a\n www.creativecommons.org.\n</p>\n\n<h3>Pro saper plus</h3>\n<p>\n Lege plus super le uso de nostre datos al <a\n href=\"http://wiki.openstreetmap.org/wiki/Legal_FAQ\">FAQ\n Legal</a>.\n</p>\n<p>\n Nos rememora al contributores de OSM de nunquam adder datos de alcun\n fonte subjecte al derecto de autor (p.ex. Google Maps o cartas imprimite)\n sin explicite permission del titulares del derecto de autor.\n</p>\n<p>\n Ben que OpenStreetMap es datos aperte, nos non pote fornir un\n API cartographic gratuite pro altere disveloppatores.\n\n Vide nostre <a href=\"http://wiki.openstreetmap.org/wiki/API_usage_policy\">politica pro le uso del API</a>,\n <a href=\"http://wiki.openstreetmap.org/wiki/Tile_usage_policy\">politica pro le uso de tegulas</a>\n e <a href=\"http://wiki.openstreetmap.org/wiki/Nominatim#Usage_Policy\">politica pro le uso de Nominatim</a>.\n</p>\n\n<h3>Nostre contributores</h3>\n<p>\n Nostre licentia CC-BY-SA require que vos “recognosce le Autor\n Original de maniera rationabile pro le medio que Vos\n utilisa”. Le cartographos individual de OSM non requesta un\n recognoscentia excedente illo del “Contributores de\n OpenStreetMap”, sed ubi datos de un agentia cartographic\n national o altere fonte major ha essite includite in\n OpenStreetMap, il pote esser rationabile recognoscer les per\n directemente reproducer lor recognoscentia o per ligar a illo in iste pagina.\n</p>\n\n<!--\nInformation pro redactores de iste pagina\n\nIn le sequente lista figura solmente le organisationes que require attribution\ncomo condition pro le uso de lor datos in OpenStreetMap. Isto non es un\ncatalogo general de datos importate, e non debe esser usate salvo si\nattribution es requirite pro conformitate con le licentia del datos\nimportate.\n\nOmne additiones hic debe esser discutite primo con le administratores de OSM.\n-->\n\n<ul id=\"contributors\">\n <li><strong>Australia</strong>: Contine datos de suburbios a base\n de datos del Australian Bureau of Statistics.</li>\n <li><strong>Austria</strong>: Contine datos ab le\n <a href=\"http://data.wien.gv.at/\">Citate de Vienna</a> licentiate sub\n <a href=\"http://creativecommons.org/licenses/by/3.0/at/deed.de\">CC-BY</a>.</li>\n <li><strong>Canada</strong>: Contine datos ab\n GeoBase®, GeoGratis (© Department of Natural\n Resources Canada), CanVec (© Department of Natural\n Resources Canada), e StatCan (Geography Division,\n Statistics Canada).</li>\n <li><strong>Francia</strong>: Contine datos colligite del\n Direction Générale des Impôts.</li>\n <li><strong>Nove Zelandia</strong>: Contine datos obtenite ex\n Land Information New Zealand. Crown Copyright reservate.</li>\n <li><strong>Polonia</strong>: Contine datos cartographic ex <a\n href=\"http://ump.waw.pl/\">UMP-pcPL</a>. Copyright\n contributores de UMP-pcPL.</li>\n <li><strong>Regno Unite</strong>: Contine datos de Ordnance\n Survey © Crown copyright e derecto de base de datos\n 2010.</li>\n</ul>\n\n<p>\n Le inclusion de datos in OpenStreetMap non implica que le fornitor\n original del datos indorsa OpenStreetMap, forni alcun garantia, o\n accepta alcun responsabilitate.\n</p>"
native:
mapping_link: comenciar le cartographia
native_link: version in interlingua
inbox:
date: Data
from: De
+ messages: Tu ha %{new_messages} e %{old_messages}
my_inbox: Mi cassa de entrata
+ new_messages:
+ one: "%{count} nove message"
+ other: "%{count} nove messages"
no_messages_yet: Tu non ha ancora messages. Proque non contactar alcun %{people_mapping_nearby_link}?
+ old_messages:
+ one: "%{count} ancian message"
+ other: "%{count} ancian messages"
outbox: cassa de exito
people_mapping_nearby: cartographos vicin
subject: Subjecto
title: Cassa de entrata
- you_have: Tu ha %{new_count} nove messages e %{old_count} vetule messages
mark:
as_read: Message marcate como legite
as_unread: Message marcate como non legite
outbox:
date: Data
inbox: cassa de entrata
+ messages:
+ one: Tu ha %{count} message inviate
+ other: Tu ha %{count} messages inviate
my_inbox: Mi %{inbox_link}
no_sent_messages: Tu non ha ancora inviate alcun message. Proque non contactar alcun %{people_mapping_nearby_link}?
outbox: cassa de exito
subject: Subjecto
title: Cassa de exito
to: A
- you_have_sent_messages: Tu ha %{count} messages inviate
read:
back_to_inbox: Retornar al cassa de entrata
back_to_outbox: Retornar al cassa de exito
summary_no_ip: "%{name} create le %{date}"
title: Usatores
login:
+ account is suspended: Le tue conto ha essite suspendite a causa de activitate suspecte.<br />Per favor contacta le <a href="%{webmaster}">webmaster</a> si tu vole discuter isto.
account not active: Pardono, tu conto non es ancora active.<br />Per favor clicca super le ligamine in le e-mail de confirmation pro activar tu conto, o <a href="%{reconfirm}">requesta un nove message de confirmation.</a>.
- account suspended: Pardono, tu conto ha essite suspendite debite a activitate suspecte.<br />Per favor contacta le %{webmaster} si tu vole discuter isto.
auth failure: Pardono, non poteva aperir un session con iste detalios.
create account minute: Crea un conto. Isto dura solmente un minuta.
email or username: "Adresse de e-mail o nomine de usator:"
lost password link: Tu perdeva le contrasigno?
new to osm: Nove a OpenStreetMap?
notice: <a href="http://www.osmfoundation.org/wiki/License/We_Are_Changing_The_License">Informa te super le imminente cambio de licentia de OpenStreetMap</a> (<a href="http://wiki.openstreetmap.org/wiki/ODbL/We_Are_Changing_The_License">traductiones</a>) (<a href="http://wiki.openstreetmap.org/wiki/Talk:ODbL/Upcoming">discussion</a>)
+ notice_terms: OpenStreetMap cambia a un nove licentia le 1 de april 2012. Iste licentia es tanto aperte como le actual, ma le stipulationes legal es multo plus apte pro nostre base de datos cartographic. Nos appreciarea multo poter retener tu contributiones in OpenStreetMap, ma nos pote facer isto solmente si tu consenti a lor distribution sub le nove licentia. Alteremente, nos debera remover los del base de datos.<br /><br />Per favor aperi session, e prende alcun secundas pro revider e acceptar le nove conditiones. Gratias!
openid: "OpenID de %{logo}:"
openid invalid: Infortunatemente tu OpenID pare esser mal formate.
openid missing provider: Infortunatemente nos non poteva contactar tu providitor de OpenID.
remember: "Memorar me:"
title: Aperir session
to make changes: Pro facer modificationes in le datos de OpenStreetMap, es necessari haber un conto.
- webmaster: webmaster
with openid: "Es anque possibile aperir session con tu OpenID:"
with username: "Ha tu jam un conto de OpenStreetMap? Per favor aperi session con tu nomine de usator e contrasigno:"
logout:
confirm_user: confirmar iste usator
create_block: blocar iste usator
created from: "Create ex:"
+ ct accepted: Acceptate %{ago} retro
+ ct declined: Declinate
+ ct status: "Conditiones de contributor:"
+ ct undecided: Indecise
deactivate_user: disactivar iste usator
delete_user: deler iste usator
description: Description
diary: diario
edits: modificationes
email address: "Adresse de e-mail:"
+ friends_changesets: Percurrer tote le gruppos de modificationes per amicos
+ friends_diaries: Navigar per tote le articulos de diario per amicos
hide_user: celar iste usator
if set location: Si tu ha definite tu position, il apparera ci infra un elegante carta e altere cosas. Tu pote definir tu position de origine in tu pagina de %{settings_link}.
km away: a %{count} km de distantia
my settings: mi configurationes
my traces: mi tracias
nearby users: Altere usatores vicin
+ nearby_changesets: Navigar per tote le gruppos de modificationes per usatores vicin
+ nearby_diaries: Navigar per tote le articulos de diario per usatores vicin
new diary entry: nove entrata de diario
no friends: Tu non ha ancora addite alcun amico.
no nearby users: Il non ha ancora altere cartographos in le vicinitate.
# Messages for Icelandic (Íslenska)
# Exported from translatewiki.net
# Export driver: syck-pecl
+# Author: Snævar
# Author: Ævar Arnfjörð Bjarmason
is:
activerecord:
licence: Leyfi
longitude: "Breiddargráða:"
manually_select: Velja annað svæði á kortinu
- mapnik_image: Mapnik mynd
max: hámark
options: Valmöguleikar
osm_xml_data: OpenStreetMap XML gögn
- osmarender_image: Osmarender mynd
output: Úttak
paste_html: Notaðu þennan HTML kóða til að bæta kortinu á vefsíðu
scale: Skali
+ too_large:
+ body: Svæðið sem þú ert að reyna að setja inn á OpenStreetMap á XML formi er of stórt. Vinsamlegast þysjaðu inn eða veldu smærra svæði.
+ heading: Svæðið er of stórt
zoom: Þys
start_rjs:
add_marker: Bæta við punkt á kortið
amenity:
airport: Flugvöllurinn
atm: Hraðbankinn
+ auditorium: Áheyrandasalur
bank: Bankinn
bar: Barinn
bench: Bekkur
+ bicycle_parking: Hjólastæði
bicycle_rental: Reiðhjólaleigan
brothel: Hóruhúsið
bureau_de_change: Gjaldeyrisskipti
cafe: Kaffihúsið
car_rental: Bílaleigan
car_wash: Bílaþvottastöðin
+ casino: Spilavíti
cinema: Kvikmyndarhúsið
+ clinic: Heilsugæsla
+ club: Skemmtistaður
+ college: Framhaldskóli
+ community_centre: Samfélagsmiðstöð
+ courthouse: Dómshús
+ crematorium: Bálstofa
dentist: Tannlæknirinn
+ doctors: Læknar
+ dormitory: Heimavist
driving_school: Ökuskóli
embassy: Sendiráðið
emergency_phone: Neyðarsími
fire_station: Slökkvistöð
fountain: Gosbrunnur
fuel: Bensínstöð
+ grave_yard: Kirkjugarður
+ gym: Líkamsræktarstöð
hospital: Sjúkrahúsið
hotel: Hótelið
+ ice_cream: Ís
+ kindergarten: Leikskóli
library: Bókasafnið
market: Markaður
+ marketplace: Markaður
+ mountain_rescue: Fjallabjörgun
nightclub: Næturklúbbur
office: Skrifstofa
+ park: Almenningsgarður
parking: Bílastæði
+ pharmacy: Apótek
police: Lögreglustöð
post_box: Póstkassinn
post_office: Pósthúsið
prison: Fangelsið
pub: Pöbbinn
+ public_building: Opinber bygging
restaurant: Veitingastaðurinn
+ retirement_home: Elliheimili
sauna: Gufubaðið
school: Skólinn
+ shelter: Skýli
shop: Verslunin
+ studio: Stúdíó íbúð
+ supermarket: Stórmarkaður
taxi: Leigubílastöð
+ telephone: Almenningssími
theatre: Leikhúsið
+ toilets: Klósett
university: Háskóli
vending_machine: Sjálfsali
+ veterinary: Dýraspítali
+ waste_basket: Ruslafata
building:
+ apartments: Háhýsi
chapel: Kapellan
church: Kirkjan
+ city_hall: Ráðhús borgarinnar
+ commercial: Verslunarhús
+ dormitory: Heimavist
+ entrance: Inngangur
+ farm: Bóndabær
+ garage: Bílskúr
+ hospital: Sjúkrahús
+ hotel: Hótel
+ house: Hús
+ industrial: Iðnaðarhús
+ office: Skrifstofuhús
+ public: Opinber bygging
+ residential: Íbúðarhús
+ school: Skóli
+ shop: Verslun
+ stadium: Íþróttavöllur
highway:
+ bus_stop: Stoppustöð
+ cycleway: Hjólastígur
+ footway: Göngustígur
ford: Vaðið
+ gate: Hlið
living_street: Vistgata
motorway: Hraðbraut
+ primary: Stofnvegur
+ primary_link: Stofnvegur
residential: Íbúðargatan
service: Þjónustuvegur
historic:
castle: Kastalinn
+ church: Kirkja
+ house: Hús
+ memorial: Minnismerki
landuse:
military: Hersvæðið
leisure:
map:
base:
cycle_map: Hjólakort
- mapnik: Aðalkort (Mapnik)
overlays:
maplint: Villulag
site:
zero: Það eru engin skilaboð í innhólfinu þínu
intro_1: OpenStreetMap er frjálst heimskort sem hver sem er getur breytt. Líka þú!
intro_2: OpenStreetMap gerir þér kleift að skoða, breyta og nota kortagögn í samvinnu við aðra.
- intro_3: Hýsíng verkefnisins er studd af %{ucl} og %{bytemark}.
+ intro_3: Hýsing verkefnisins er studd af %{ucl}, %{ic} og %{bytemark}. Aðrir stuðningsaðilar verkefnisins eru skráðir í %{partners}.
license:
title: OpenStreetMap gögnin eru gefin út undir Creative Commons Attribution-Share Alike 2.0 leyfinu
log_in: innskrá
english_link: ensku útgáfuna
text: "Stangist þessi þýðing á við %{english_original_link} gildir\nhin síðari fram yfir íslenskuna."
title: Um þessa þýðingu
- legal_babble: "<h2>Höfundaréttur og leyfi</h2>\n\n<p>\n OpenStreetMap er <i>frjáls kortagrunnur</i> undir <a\n href=\"http://creativecommons.org/licenses/by-sa/2.0/\">Creative\n Commons Attribution-ShareAlike 2.0</a> leyfinu. (CC-BY-SA).\n</p>\n\n<h2>Frekari upplýsingar</h2>\n\n<p>\n Frekari upplýsingar má nálgast <a href=\"/copyright/en\">í ensku\n útgáfu</a> þessa skjals.\n</p>"
+ legal_babble: "<h2>Höfundaréttur og leyfi</h2>\n<p>\n OpenStreetMap er <i>frjáls kortagrunnur</i> undir <a\n href=\"http://creativecommons.org/licenses/by-sa/2.0/\">Creative\n Commons Attribution-ShareAlike 2.0</a> leyfi. (CC-BY-SA).\n</p>\n<p>\n Þér er frjálst að afrita, dreifa, senda og aðlaga kortagrunninnn\n og gögn hans, gegn því að þú viðurkennir rétt OpenStreetMap\n og sjálfboðaliða þess. Ef þú breytir eða byggir á kortagrunninum\n eða gögnum hans, þá verður þú að gefa niðurstöðuna út með\n sama leyfi. <a\n href=\"http://creativecommons.org/licenses/by-sa/2.0/legalcode\">Leyfistextinn</a>\n útskýrir réttindi þín og skyldur.\n</p>\n<h2>Frekari upplýsingar</h2>\n\n<p>\n Frekari upplýsingar má nálgast <a href=\"/copyright/en\">í ensku\n útgáfu</a> þessa skjals.\n</p>"
native:
mapping_link: farið að kortleggja
native_link: íslensku útgáfuna
people_mapping_nearby: nálæga notendur
subject: Titill
title: Innhólf
- you_have: Þú hefur %{new_count} ólesin skilaboð og %{old_count} lesin skilaboð
mark:
as_read: Skilaboðin voru merkt sem lesin
as_unread: Skilaboðin voru merkt sem ólesin
send_message_to: Senda skilaboð til %{name}
subject: Titill
title: Senda skilaboð
+ no_such_message:
+ body: Því miður er ekkert skilaboð með þetta auðkenni.
+ heading: Engin slík skilaboð til
+ title: Engin slík skilaboð til
no_such_user:
- body: Það eru engin skilaboð eða notandi til með nafni
- heading: Notandi eða skilaboð ekki til
- title: Notandi eða skilaboð ekki til
+ body: Það er enginn notandi til með þessu nafni.
+ heading: Notandi ekki til
+ title: Notandi ekki til
outbox:
date: Dags
inbox: innhólf
+ messages:
+ one: Þú hefur sent %{count} skilaboð
+ other: Þú hefur sent %{count} skilaboð
my_inbox: Mitt %{inbox_link}
no_sent_messages: Þú hefur ekki seint nein skeyti, hví ekki að hafa samband við einhverja %{people_mapping_nearby_link}?
outbox: úthólf
subject: Titill
title: Úthólf
to: Til
- you_have_sent_messages: Þú hefur sent %{count} skeyti
read:
back_to_inbox: Aftur í innhólf
back_to_outbox: Aftur í úthólf
trackable: REKJANLEGUR
view_map: Sjá kort
trace_form:
- description: Lýsing
+ description: "Lýsing:"
help: Hjálp
help_url: http://wiki.openstreetmap.org/index.php?title=Upload&uselang=is
tags: Tögg
tags_help: aðskilin með kommum
upload_button: Senda
- upload_gpx: Senda inn GPX skrá
+ upload_gpx: "Hlaða inn GPX skrá:"
visibility: Sýnileiki
visibility_help: hvað þýðir þetta
trace_header:
go_public:
flash success: Allar breytingar þínar eru nú opinberar, og þú getur breytt gögnum.
login:
- account not active: Þessi reikningur er ekki virkur.<br />Vinsamlegast smelltu á tengilinn í staðfestingarpóstinum sem þú fékkst til að virkja reikninginn.
- account suspended: Reikningnum þínum hefur verið lokað vegna grunsamlegrar hegðunar.<br />Hafðu samband við %{webmaster} ef þú vilt fá hann opnaðan aftur.
+ account not active: Þessi reikningur er ekki virkur.<br />Vinsamlegast smelltu á tengilinn í staðfestingarpóstinum sem þú fékkst til að virkja reikninginn, eða <a href="%{reconfirm}">óskaðu eftir nýjum staðfestingarpósti</a>.
auth failure: Þetta notandanafn eða lykilorð er rangt.
email or username: "Netfang eða notandanafn:"
heading: Innskrá
password: "Lykilorð:"
remember: "Muna innskráninguna:"
title: Innskrá
- webmaster: vefstjóra
logout:
heading: Útskrá
logout_button: Útskrá
# Author: LucioGE
# Author: McDutchie
# Author: Od1n
+# Author: Raoli
# Author: Rippitippi
+# Author: ZioNicco
it:
activerecord:
attributes:
list:
description: Modifiche recenti
description_bbox: Gruppi di modifiche all'interno di %{bbox}
+ description_friend: Insieme di modifiche dei tuoi amici
+ description_nearby: Gruppi di modifiche da parte di utenti nelle vicinanze
description_user: Modifiche dell'utente %{user}
description_user_bbox: Gruppi di modifiche dell'utente %{user} all'interno di %{bbox}
heading: Gruppi di modifiche
heading_bbox: Gruppi di modifiche
+ heading_friend: Gruppi di modifiche
+ heading_nearby: Gruppi di modifiche
heading_user: Gruppi di modifiche
heading_user_bbox: Gruppi di modifiche
title: Gruppi di modifiche
title_bbox: Modifiche all'interno di %{bbox}
+ title_friend: Insieme di modifiche dei tuoi amici
+ title_nearby: Gruppi di modifiche da parte di utenti nelle vicinanze
title_user: Gruppi di modifiche di %{user}
title_user_bbox: Modifiche dell'utente %{user} all'interno di %{bbox}
timeout:
older_entries: Voci più vecchie
recent_entries: "Voci del diario recenti:"
title: Diari degli utenti
+ title_friends: Diari degli amici
+ title_nearby: Diari degli utenti nelle vicinanze
user_title: Diario dell'utente %{user}
location:
edit: Modifica
licence: Licenza
longitude: "Lon:"
manually_select: Seleziona manualmente un'area differente
- mapnik_image: Immagine Mapnik
max: max
options: Opzioni
osm_xml_data: Dati XML OpenStreetMap
- osmarender_image: Immagine Osmarender
output: Risultato
paste_html: Incolla l'HTML per incapsulare nel sito web
scale: Scala
commercial: Uffici
dormitory: Dormitorio
entrance: Entrata dell'edificio
+ faculty: Palazzo della Facoltà
farm: Edificio rurale
flats: Appartamenti
garage: Autorimessa
nature_reserve: Riserva naturale
park: Parco
piste: Piste
+ plaza: Piazza
quarry: Cava
railway: Ferrovia
recreation_ground: Area di svago
reservoir: Riserva idrica
residential: Area Residenziale
retail: Negozi
+ village_green: Parco urbano
vineyard: Vigneto
wetland: Zona umida
wood: Bosco
hostel: Ostello
hotel: Hotel
information: Informazioni
+ lean_to: Tettoia
motel: Motel
museum: Museo
picnic_site: Area picnic
map:
base:
cycle_map: Open Cycle Map
+ mapquest: MapQuest Open
transport_map: Mappa dei trasporti
site:
edit_disabled_tooltip: Zooma per modificare la mappa
english_link: l'originale in inglese
text: In caso di incoerenza fra questa pagina di traduzione e %{english_original_link}, fa fede la pagina in inglese
title: A proposito di questa traduzione
+ legal_babble: "<h2>Copyright e licenza</h2>\n<p>\n OpenStreetMap è un <i>database aperto</i>, sotto la licenza <a\n href=\"http://creativecommons.org/licenses/by-sa/2.0/\">\n Creative Commons Attribuzione-Condividi allo stesso modo 2.0</a> (CC-BY-SA).\n</p>\n<p>\n Sei libero di copiare, distribuire, trasmettere e adattare le nostre mappe\n e dati, finchè lo attribuisci a OpenStreetMap e i suoi\n contributori. Se tu alteri o ti basi sulle nostre mappe o dati,\n è possibile distribuire il risultato solo sotto la stessa licenza. Il \n codice legale completo <a\n href=\"http://creativecommons.org/licenses/by-sa/2.0/legalcode\">legale\n illustra i tuoi diritti e le tue responsabilità.\n<p>\n\n<h3>Come si attribuisce a OpenStreetMap</h3>\n<p>\n Se utilizzi le immagini della mappa di OpenStreetMap, si richiede che\n l'attribuzione abbia almeno scritto “© OpenStreetMap\n contributors, CC-BY-SA”. Se utilizzi solo i dati della mappa\n si richiede “Map data © OpenStreetMap contributors,\n CC-BY-SA”.\n</p>\n<p>\n Ove possibile, OpenStreetMap dovrebbe essere un collegamento ipertestuale a <a\n href=\"http://www.openstreetmap.org/\">http://www.openstreetmap.org/</a>\n e CC-BY-SA a <a\n href=\"http://creativecommons.org/licenses/by-sa/2.0/\">http://creativecommons.org/licenses/by-sa/2.0/</a>. Se\n utilizzi un mezzo dove il link non sono possibili (per esempio un\n opera stampata), suggeriamo di indirizzare i lettori a\n www.OpenStreetMap.org (forse scrivendo\n ‘OpenStreetMap’ a questo indirizzo completo) e a\n www.creativecommons.org.\n<p>\n\n<h3>Per saperne di più</h3>\n<p>\n Approfonisci su come utilizzare i nostri dati presso le <a\n href=\"http://wiki.openstreetmap.org/wiki/Legal_FAQ\">Domande\n legali frequenti</a>.\n<p>\n<p>\n Ai contributori OSM si ricorda di non aggiungere dati da qualsiasi\n fonte protetta da copyright (ad esempio Google Maps o mappe stampate) senza\n esplicita autorizzazione dei titolare del copyright.\n</p>\n<p>\n Anche se i dati OpenStreetMap sono aperti, non possiamo fornire una\n mappa API esente dalle tasse per gli sviluppatori di terze parti.\n\n Vedi la nostra <a href=\"http://wiki.openstreetmap.org/wiki/API_usage_policy\">Politica di utilizzo API</a>, la\n <a href=\"http://wiki.openstreetmap.org/wiki/Tile_usage_policy\">Politica di utilizzo dei riquadri mappa</a>\n e la <a href=\"http://wiki.openstreetmap.org/wiki/Nominatim#Usage_Policy\">Politica di utilizzo Nominatim</a>.\n</p>\n\n<h3>Nostri collaboratori</h3>\n<p>\n La nostra licenza CC-BY-SA richiede di “dare la ragionevole\n attribuzione dell'autore originale al mezzo o ai mezzi che stai\n utilizzando\"”. I mappatori individuali OSM non richiedono\n un'attribuzione al di là che per i “contributori\n OpenStreetMap”, ma, dove i dati forniti da un' agenzia cartografica\n nazionale o altra fonte importante sono stati inclusi in OpenStreetMap,\n può essere congrua l'attribuzione a loro, riproducendo direttamente\n la loro attribuzione o l'indirizzamento a questa pagina.\n</p>\n\n<!--\nInformazioni per gli editor della pagina\n\nDi seguito sono elencate solo le organizzazioni che necessitano di attribuzione\ncome condizione che i loro dati vengano utilizzati in OpenStreetMap. Non è un\ncatalogo generale delle importazioni, e non devono essere utilizzati, tranne quando\nl'attribuzione è tenuto a rispettare la licenza di importazione\ndei dati.\n\nEventuali aggiunte qui devono essere prima discusse con gli amministratori di sistema OSM .\n-->\n\n<ul id=\"contributors\">\n <li><strong>Australia</strong>: Contiene i dati della periferia basati\n sui dati dell'Australian Bureau of Statistics.</li>\n <li><strong>Austria</strong>: Contiene i dati della\n <a href=\"http://data.wien.gv.at/\">Stadt Wien</a> sotto\n <a href=\"http://creativecommons.org/licenses/by/3.0/at/deed.de\">CC-BY</a>.</li>\n <li><strong>Canada</strong>: Contiene i dati della\n GeoBase®, GeoGratis (© Department of Natural\n Resources Canada), CanVec (© Department of Natural\n Resources Canada), e della StatCan (Geography Division,\n Statistics Canada).</li>\n <li><strong>Francia</strong>: Contiene dati provenienti dalla\n Direction Générale des Impôts.</li>\n <li><strong>Nuova Zelanda</strong>: Contiene i dati provenienti dalla\n Land Information New Zealand. Crown Copyright reserved.</li>\n <li><strong>Polonia</strong>: Contiene i dati dalle <a\n href=\"http://ump.waw.pl/\">mappe UMP-pcPL</a>. Copyright dei\n contributori di UMP-pcPL.</li>\n <li><strong>Regno Unito</strong>: Contiene i dati della\n Ordnance Survey © Crown copyright and database right\n 2010.</li>\n</ul>\n\n<p>\n L'inserimento dei dati in OpenStreetMap non implica che l'originale\n provider di dati appoggi OpenStreetMap, fornisca alcuna garanzia o\n accetti qualsiasi responsabilità.\n</p>"
native:
mapping_link: inizia a mappare
native_link: versione in italiano
inbox:
date: Data
from: Da
+ messages: Hai %{new_messages} e %{old_messages}
my_inbox: I miei messaggi in arrivo
+ new_messages:
+ one: "%{count} nuovo messaggio"
+ other: "%{count} nuovi messaggi"
no_messages_yet: Non ci sono ancora messaggi. Perché non contatti qualcuna di queste %{people_mapping_nearby_link}?
+ old_messages:
+ one: "%{count} vecchio messaggio"
+ other: "%{count} messaggi vecchi"
outbox: in uscita
people_mapping_nearby: persone che mappano nelle vicinanze
subject: Oggetto
title: In arrivo
- you_have: Hai %{new_count} nuovi messaggi e %{old_count} vecchi messaggi
mark:
as_read: Messaggio marcato come letto
as_unread: Messaggio marcato come non letto
outbox:
date: Data
inbox: in arrivo
+ messages:
+ one: Hai %{count} messaggio inviato
+ other: Hai %{count} messaggi inviati
my_inbox: Messaggi %{inbox_link}
no_sent_messages: Non ci sono ancora messaggi inviati. Perché non contatti qualcuno di questi %{people_mapping_nearby_link}?
outbox: in uscita
subject: Oggetto
title: In uscita
to: A
- you_have_sent_messages: Hai %{count} messaggi inviati
read:
back_to_inbox: Ritorna ai messaggi in arrivo
back_to_outbox: Ritorna ai messaggi in uscita
summary_no_ip: "%{name} creato il %{date}"
title: Utenti
login:
+ account is suspended: Siamo spiacenti, il tuo account è stato sospeso a causa di attività sospette.<br />Se desideri discuterne, puoi contattare il <a href="%{webmaster}">webmaster</a>.
account not active: Spiacenti, il tuo profilo non è ancora attivo.<br />Si prega di utilizzare il collegamento presente nell'email di conferma per attivare il proprio profilo, oppure <a href="%{reconfirm}">richiedere l'invio di una nuova email di conferma</a>.
- account suspended: Siamo spiacenti, il tuo account è stato sospeso a causa di attività sospette.<br />Contatta il %{webmaster} se desideri discuterne.
auth failure: Spiacenti, non si può accedere con questi dettagli.
create account minute: Crea un account. Richiede solo un minuto.
email or username: "Indirizzo email o nome utente:"
lost password link: Persa la password?
new to osm: Sei nuovo su OpenStreetMap?
notice: <a href="http://www.osmfoundation.org/wiki/License/We_Are_Changing_The_License">Leggi i dettagli sull'imminente cambio di licenza di OpenStreetMap</a> ( <a href="http://wiki.openstreetmap.org/wiki/ODbL/We_Are_Changing_The_License">traduzioni</a>) (<a href="http://wiki.openstreetmap.org/wiki/Talk:ODbL/Upcoming">discussione</a> )
+ notice_terms: OpenStreetMap si sta muovendo per avere una nuova licenza per il 1° aprile 2012. È ''open'' come quella attuale, ma le restrizioni legali sono molto più indicate per il nostro database cartografico. Ci piacerebbe mantenere i vostri contributi in OpenStreetMap, ma possiamo farlo solo se accosentite a farceli redistribuire sotto una nuova licenza. In caso contrario, purtroppo, dovremo rimuoverli dal database.<br/><br/>Per favore accedi, poi prenditi pochi secondi per leggere e ad accettare i nuovi termini. Grazie!
openid: "%{logo} OpenID:"
openid invalid: Spiacente, sembra il che tuo OpenID non sia valido
openid missing provider: Siamo spiacenti, impossibile contattare il provider OpenID
remember: "Ricordati di me:"
title: Entra
to make changes: Per apportare modifiche ai dati di OpenStreetMap, è necessario disporre di un account.
- webmaster: webmaster
with openid: "In alternativa utilizza il tuo OpenID per entrare:"
with username: "Possiedi già un profilo OpenStreetMap? Entra con il tuo nome utente e password:"
logout:
confirm_user: conferma questo utente
create_block: blocca questo utente
created from: "Creato da:"
+ ct accepted: Accettato da %{ago}
+ ct declined: Non accetto
+ ct status: "Termini di collaborazione:"
+ ct undecided: Indeciso
deactivate_user: disattiva questo utente
delete_user: elimina questo utente
description: Descrizione
diary: diario
edits: modifiche
email address: "Indirizzo email:"
+ friends_changesets: Visualizza tutti i gruppi di modifica degli amici
+ friends_diaries: Sfoglia tutte le note dei diari degli amici
hide_user: nascondi questo utente
if set location: Se si imposta una propria posizione, una bella mappa ed altre informazioni compariranno di seguito. E' possibile impostare la propria posizione sulla pagina delle %{settings_link}.
km away: distante %{count} km
my settings: impostazioni personali
my traces: tracciati personali
nearby users: Altri utenti nelle vicinanze
+ nearby_changesets: Sfoglia tutti i gruppi di modifiche da parte degli utenti nelle vicinanze
+ nearby_diaries: Sfoglia tutte le note dei diari degli utenti nelle vicinanze
new diary entry: nuova voce del diario
no friends: Non ci sono ancora amici.
no nearby users: Non ci sono ancora altri utenti che ammettono di mappare nelle vicinanze.
# Author: Iwai.masaharu
# Author: Mage Whopper
# Author: Miya
+# Author: Nabetaro
# Author: Nazotoko
# Author: Schu
# Author: Wrightbus
show_area_box: 領域範囲表示
common_details:
changeset_comment: "コメント:"
+ deleted_at: "削除日:"
+ deleted_by: "削除者:"
edited_at: "編集日:"
edited_by: "編集者:"
in_changeset: "変更セット:"
relation: リレーション
way: ウェイ
paging_nav:
+ of: 中
showing_page: ページ表示
relation:
download: "%{download_xml_link} または %{view_history_link}"
list:
description: 最新の変更
description_bbox: "%{bbox} 内の変更セット"
+ description_friend: 友達による変更セット
description_user: "%{user} による変更セット"
description_user_bbox: "%{bbox} 範囲内の %{user} の変更セット"
heading: 変更セット
heading_bbox: 変更セット
+ heading_friend: 変更セット
heading_user: 変更セット
heading_user_bbox: 変更セット
title: 変更セット
title_bbox: "%{bbox} 範囲内の変更セット"
+ title_friend: 友達による変更セット
title_user: "%{user} の変更セット"
title_user_bbox: "%{bbox}内の%{user}による変更セット"
timeout:
licence: ライセンス
longitude: "経度:"
manually_select: 別の領域を指定する
- mapnik_image: Mapnik 画像
max: 最大
options: オプション
osm_xml_data: OSM XMLデータ
- osmarender_image: Osmarender 画像
output: 出力
paste_html: 以下の HTML をあなたのサイトに埋め込んでください
scale: 縮尺
too_large:
+ body: このエリアは OpenStreetMap XML データとしてエクスポートするには大きすぎます。拡大するか、もっと小さなエリアを選択してください。
heading: エリアが大きすぎます
zoom: ズーム
start_rjs:
bicycle_parking: 駐輪場
bicycle_rental: レンタサイクル
brothel: 売春宿
+ bureau_de_change: 両替
bus_station: バス停
cafe: 喫茶店
car_rental: レンタカー
+ car_sharing: カーシェアリング
car_wash: 洗車
casino: 賭場
cinema: 映画館
health_centre: 保健所
hospital: 病院
hotel: ホテル
+ hunting_stand: ハンティングスタンド
ice_cream: アイスクリーム販売店
kindergarten: 幼稚園
library: 図書館
public_building: 公共建築物
public_market: 公設市場
reception_area: レセプションエリア
+ recycling: リサイクル場所
restaurant: レストラン
retirement_home: 老人ホーム
sauna: サウナ
university: 大学
vending_machine: 自動販売機
veterinary: 獣医外科
+ village_hall: 役場
+ waste_basket: ごみ箱
wifi: WiFiアクセスポイント
youth_centre: 青少年センター
boundary:
commercial: 商業ビル
dormitory: 寮
entrance: ビル入口
+ faculty: 学部棟
farm: 農舎
flats: アパート
garage: 車庫
terrace: テラス
tower: 塔
train_station: 鉄道駅
+ university: 大学の建物
highway:
bridleway: 乗馬道
bus_stop: バス停
tram: 路面軌道
tram_stop: トラム停留所
shop:
+ apparel: 服屋
art: アートショップ
bakery: パン屋
beauty: 美容室
car_parts: 自動車部品販売店
carpet: カーペットショップ
clothes: 洋服店
+ computer: コンピューターショップ
cosmetics: 化粧品販売店
department_store: デパート
discount: 安売り店
+ doityourself: 日曜大工
drugstore: ドラッグストア
dry_cleaning: クリーニング
electronics: 電気製品販売店
gift: ギフトショップ
greengrocer: 八百屋
grocery: 食料品店
+ hairdresser: 美容室
insurance: 保険
jewelry: 宝石店
kiosk: キオスク
organic: 有機食材店
outdoor: アウトドアショップ
pet: ペットショップ
- salon: 美容店
+ salon: サロン
shoes: 靴屋
shopping_centre: ショッピングセンター
sports: スポーツ用品専門店
tourism:
artwork: 芸術作品
attraction: アトラクション
+ bed_and_breakfast: 民宿(B&B)
+ cabin: 山小屋
camp_site: キャンプ場
+ caravan_site: オートキャンプ場
chalet: 別荘
guest_house: 民宿
hostel: ホステル
canal: 運河
dam: ダム
derelict_canal: 遺棄運河
+ ditch: 溝
dock: 埠頭
drain: 排水溝
lock: 岩場
export_tooltip: 地図データのエクスポート
foundation: 財団法人
foundation_title: OpenStreetMap 財団法人
- gps_traces: GPS トレース
+ gps_traces: GPSトレース
gps_traces_tooltip: トレースの管理
help: ヘルプ
help_centre: ヘルプセンター
intro_1: OpenStreetMap は自由に編集できる世界地図です。あなたのような人々が作りました。
intro_2: OpenStreetMap は地球上の誰でも、どこからでもこの共同作業の結果である地図データを編集、閲覧することを可能にしています。
intro_3: OpenStreetMap は %{ucl} 、%{ic} 、%{bytemark} によってホスティングされています。%{partners} には協賛組織の一覧があります。
+ intro_3_ic: インペリアル・カレッジ・ロンドン
intro_3_partners: ウィキ
intro_3_ucl: ユニヴァーシティ・カレッジ・ロンドン (UCL) VR センター
license:
osm_read_only: OpenStreetMap のデータベースはメンテナンスのため一時的に読み込み専用モードになっています。
sign_up: 登録
sign_up_tooltip: 編集のためのアカウントを作成
+ sotm2011: 2011年 OpenStreetMap カンファレンス State of the Map は 9月9日-11日 デンバーで開かれます。おいでください!
tag_line: 自由なウィキ世界地図
- user_diaries: ユーザの日記
+ user_diaries: 日記
user_diaries_tooltip: ユーザの日記を見る
view: 閲覧
view_tooltip: 地図を見る
welcome_user: "%{user_link} さん、ようこそ。"
welcome_user_link_tooltip: あなたの個人ページ
+ wiki: ウィキ
wiki_title: プロジェクトの Wiki サイト
license_page:
foreign:
people_mapping_nearby: 近所でマッピングしている人々
subject: タイトル
title: 受信箱
- you_have: あなた宛の新しいメッセージが %{new_count}件、以前のメッセージが %{old_count}件あります。
mark:
as_read: 既読メッセージ
as_unread: 未読メッセージ
subject: 件名
title: 送信箱
to: 宛先
- you_have_sent_messages: "%{count}この送信済みメッセージがあります"
read:
back_to_inbox: 受信箱に戻る
back_to_outbox: 送信箱に戻る
subject: "[OpenStreetMap] パスワードリセットの要求"
lost_password_html:
greeting: こんにちは、
- hopefully_you: (たぶんあなたがですが、)誰かがこのEメールアドレスの openstreetmap.org アカウントのパスワードをリセットするように頼みました。
+ hopefully_you: 誰か(たぶんあなた)が、このEメールアドレスの openstreetmap.org アカウントに対して、パスワードをリセットするように依頼しました。
lost_password_plain:
greeting: こんにちは、
+ hopefully_you_1: 誰か(たぶんあなた)が、この openstreetmap.org アカウントのEメールアドレスに対する
+ hopefully_you_2: パスワードをリセットするように依頼しました。
message_notification:
- footer1: "% {Readurl} でメッセージを読むこともできます。"
- footer2: また、% {replyurl} で返信することができます。
+ footer1: "%{readurl} でメッセージを読むこともできます。"
+ footer2: また、%{replyurl} で返信することができます。
hi: やあ %{to_user}、
signup_confirm:
subject: "[OpenStreetMap] あなたのEメールアドレスの確認"
allow_write_prefs: あなたの利用者設定を変更する。
request_access: アプリケーション %{app_name} があなたのアカウント、%{user} への接続許可を求めています。そのアプリケーションに許可してもよいかどうかを確認してください。複数のアプリケーションに許可を与える事もできます。
revoke:
- flash: "%{application} へのトークンを無効にしました。"
+ flash: "%{application} へのトークンを失効しました。"
oauth_clients:
create:
flash: 正常に登録完了しました。
support_url: サポートURL
url: メインアプリケーションのURL
index:
- application: アプリケーション
+ application: アプリケーション名
issued_at: 発行
list_tokens: 以下のアプリケーションに対してあなたのユーザー名でトークンが許可されています。
my_apps: クライアントアプリケーション
my_tokens: 認証を許可したアプリケーション
no_apps: OSMのサイトで使用するアプリケーションを新しく %{oauth} で登録するにはOAuthリクエストの前にあらかじめwebから登録しておく必要があります。
register_new: アプリケーションの登録
- revoke: 取消し
+ registered_apps: 以下のクライアントアプリケーションを登録しています。
+ revoke: 失効!
title: OAuthの詳細
new:
submit: 登録
authorize_url: "承認URL:"
edit: 詳細の編集
key: "コンシューマーキー:"
+ secret: "コンシューマーシークレット:"
title: "%{app_name} の OAuth 詳細"
url: "リクエストトークンURL:"
update:
centre: スポーツセンター
commercial: 商業地域
common:
- 1: 牧草地
+ - 共有地
+ - 牧草地
construction: 建設中の道路
cycleway: 自転車道
destination: 目的通行
sidebar:
close: 閉じる
search_results: 検索結果
+ time:
+ formats:
+ friendly: "%Y年 %B %e日 %H:%M"
trace:
create:
trace_uploaded: GPX ファイルがアップロードされました。データベースへの登録に多少時間がかかります。通常この作業は30分ほどで完了し、そのことをお知らせするメールをあなたに送信します。
upload_trace: GPS トレースのアップロード
delete:
- scheduled_for_deletion: 削除予定のトラック
+ scheduled_for_deletion: トラックの削除準備を行いました
edit:
description: "詳細:"
download: ダウンロード
tagged_with: "%{tags}でタグ付けされた"
your_traces: あなたのGPSトレース
make_public:
- made_public: 公開されたトラック
+ made_public: トラックを公開しました
no_such_user:
body: "%{user} という名前のユーザは存在しません。スペルをチェックしてください。もしくはリンク元が誤っています。"
heading: "%{user} というユーザは存在しません。"
visibility: "可視性:"
visibility:
identifiable: 識別可能 (トレースリストに公表していて、常に持ち主を識別可能な状態。点の順序がタイムスタンプ付きでわかる。)
- private: プライベート (匿名でデータを共有する。点の順序もわからない。)
- public: パブリック (トレースリストに公表する。匿名の状態では点の順序はわからない。)
+ private: 非公開 (匿名、順不同の点としての共有のみ)
+ public: 公開 (トレースリストに表示する。匿名の状態では点の順序はわからない。)
trackable: 追跡可能 (匿名でのみ共有されるが、点の順序はタイムスタンプ付きでわかる。)
user:
account:
new image: 画像を追加
no home location: あなたはまだ活動地域を登録していません。
openid:
+ link text: これは何ですか?
openid: OpenID:
preferred editor: 優先エディタ:
preferred languages: "言語設定:"
login_button: ログイン
lost password link: パスワードを忘れましたか?
new to osm: OpenStreetMapは初めてですか?
+ notice: <a href="http://www.osmfoundation.org/wiki/License/We_Are_Changing_The_License">今後行う OpenStreetMap のライセンス変更についてお読みください</a> (<a href="http://wiki.openstreetmap.org/wiki/JA:ODbL/We_Are_Changing_The_License">翻訳</a>) (<a href="http://wiki.openstreetmap.org/wiki/Talk:ODbL/Upcoming">議論</a>)
openid: "%{logo} OpenID:"
openid invalid: 申し訳ありません、OpenID は不正な形式と思われます。
openid missing provider: 申し訳ありません、OpenID プロバイダに接続できませんでした。
remember: パスワードを記憶する。
title: ログイン
to make changes: OpenStreetMap データを変更するには、アカウントが必要です。
- webmaster: ウェブマスター
with username: 既に OpenStreetMap のアカウントをお持ちですか? ユーザー名とパスワードを入力してログインしてください:
logout:
heading: OpenStreetMapからログアウトする
openid: "%{logo} OpenID:"
password: "パスワード:"
terms accepted: 新しい投稿規約を承諾して頂き、ありがとうございます。
+ terms declined: 新しい投稿規約を承諾して頂けず残念です。詳しい情報は、<a href="%{url}">このウィキページ</a>をごらんください。
title: アカウント作成
no_such_user:
body: "%{user}. という名前のユーザは存在しません。スペルミスが無いかチェックしてください。もしくはリンク元が間違っています。"
consider_pd: 私の投稿をパブリックドメインとします(著作権、著作隣接権を放棄し、著作人格権の行使を行いません)
consider_pd_why: これは何ですか?
decline: 拒否
+ guidance: この規約を理解するための情報として、<a href="%{summary}">要約(英語)</a> や <a href="%{translations}">非公式の翻訳</a> をごらんください。
heading: 投稿規約(Contributor terms)
legale_names:
france: フランス
rest_of_world: それ以外の国
legale_select: "お住まいの国もしくは地域を選択してください:"
read and accept: 下記の同意書を読み、あなたの既存および将来の投稿のために本同意書の条項を承諾することを確認するために同意ボタンを押してください。
+ title: 投稿規約(Contributor terms)
view:
activate_user: このユーザーを有効にする
add as friend: 友達に追加
confirm_user: このユーザーを確認する
create_block: このユーザーをブロック
created from: "作成日:"
+ ct accepted: "%{ago}前に承認"
+ ct declined: 拒否
+ ct status: "投稿規約:"
+ ct undecided: 未決定
deactivate_user: このユーザーを無効にする
delete_user: このユーザーを消す
description: 詳細
diary: 日記
edits: 編集
email address: 電子メールアドレス:
+ friends_changesets: 友達によるすべての変更セットを参照
hide_user: このユーザーを隠す
if set location: 活動地域を指定すると、この下に周辺の地図と、近くで活動するマッパーが表示されます。%{settings_link} から設定をしてください。
km away: 距離 %{count}km
latest edit: "最終編集 %{ago}:"
- m away: 距離 %{count}メートル
+ m away: 距離 %{count}m
mapper since: "マッパー歴:"
my diary: 私の日記
my edits: 私の編集
licence: ლიცენზია
longitude: "გრძედი:"
manually_select: სხვა რეგიონის გამოყოფა ხელით
- mapnik_image: Mapnik–ის სურათი
max: მაქს.
options: პარამეტრები
osm_xml_data: OpenStreetMap XML–ის მონაცემები
uk_postcode: <a href="http://www.npemap.org.uk/">NPEMap / FreeThe Postcode</a>–ის შედეგები
us_postcode: <a href="http://geocoder.us/">Geocoder.us</a>–ის შედეგები
search_osm_namefinder:
- suffix_place: ", %{მანძილი} %{მიმართულება} %{ადგილის დასახელება}–დან"
+ suffix_place: ", %{distance} %{direction} %{placename}–დან"
search_osm_nominatim:
prefix:
amenity:
changesets:
area: Beräich
comment: Bemierkung
+ saved_at: Gespäichert de(n)
user: Benotzer
list:
description: Rezent Ännerungen
format: Format
image_size: "Gréisst vum Bild:"
licence: Lizenz
+ max: max
options: Optiounen
scale: Maassstab
+ too_large:
+ heading: Beräich ze grouss
zoom: Zoom
start_rjs:
export: Exportéieren
townhall: Stadhaus
university: Universitéit
vending_machine: Verkaafsautomat
+ veterinary: Déiereklinik
building:
bunker: Bunker
chapel: Kapell
museum: Musée
ruins: Ruinen
tower: Tuerm
+ wreck: Wrack
landuse:
cemetery: Kierfecht
farm: Bauerenhaff
town: Stad
village: Duerf
railway:
+ abandoned: Fréier Eisebunn
disused: Fréier Eisebunn
station: Gare (Eisebunn)
subway: Metro-Statioun
chemist: Apdikt
clothes: Kleedergeschäft
dry_cleaning: Botzerei
+ fish: Fëschgeschäft
florist: Fleurist
furniture: Miwwelgeschäft
gallery: Galerie
chalet: Chalet
hotel: Hotel
information: Informatioun
+ motel: Motel
museum: Musée
picnic_site: Piknikplaz
valley: Dall
waterfall: Waasserfall
javascripts:
site:
+ edit_disabled_tooltip: Erazoomen fir d'Kaart z'änneren
edit_tooltip: Kaart änneren
layouts:
copyright: Copyright & Lizenz
documentation_title: Dokumentatioun vum Projet
donate_link_text: Don
edit: Änneren
+ export: Exportéieren
foundation: Fondatioun
help: Hëllef
home: Doheem
footer1: Dir kënnt de Message och op %{readurl} liesen
hi: Salut %{to_user},
signup_confirm_html:
+ greeting: Bonjour !
more_videos: Et gëtt nach méi %{more_videos_link}.
more_videos_here: méi Videoen hei
signup_confirm_plain:
submit: Änneren
form:
name: Numm
+ required: Obligatoresch
new:
submit: Registréieren
show:
login_button: Umellen
lost password link: Hutt Dir Äert Passwuert vergiess?
new to osm: Nei bäi OpenStreetMap?
+ openid_providers:
+ google:
+ title: Alogge mat Google
+ openid:
+ title: Alogge mat OpenID
password: "Passwuert:"
register now: Elo aschreiwen
title: Umellen
- webmaster: Webmaster
logout:
heading: Vun OpenStreetMap ofmellen
logout_button: Ofmellen
user_block:
blocks_by:
title: Späre vum %{name}
+ blocks_on:
+ empty: "%{name} gouf bis elo nach net gespaart."
edit:
back: All Späre weisen
show: Dës Spär weisen
submit: Spär aktualiséieren
index:
+ empty: Et goufe nach keng Späre gemaach.
heading: Lëscht vu gespaarte Benotzer
title: Benotzerspären
new:
display_name: Gespaarte Benotzer
edit: Änneren
reason: Grond fir d'Spär
+ revoke: Ophiewen!
show: Weisen
period:
one: 1 Stonn
other: "%{count} Stonnen"
+ revoke:
+ revoke: Ophiewen!
show:
back: All Späre weisen
confirm: Sidd Dir sécher?
edit: Änneren
heading: "%{block_on} gespaart vum %{block_by}"
reason: "Grond fir d'Spär:"
+ revoke: Ophiewen!
show: Weisen
title: "%{block_on} gespaart vum %{block_by}"
update:
already_has_role: De Benotzer huet d'Roll %{role} schonn.
doesnt_have_role: De Benotzer huet d'Roll %{role} net.
not_a_role: D'Zeechen '%{role}' ass keng valabel Roll.
- not_an_administrator: Nëmmen Adminstrateure kënnen d'Gstioun vun de Rolle maachen, an Dir sidd net Administrateur.
+ not_an_administrator: Nëmmen Administrateure kënnen d'Gestioun vun de Rolle maachen, an Dir sidd net Administrateur.
grant:
are_you_sure: Sidd Dir sécher datt Dir dem Benotzer '%{name}' d'Roll '%{role}' zoudeele wëllt?
confirm: Confirméieren
licence: Licencija
longitude: "Ilg:"
manually_select: Rankiniu būdu parinkti kitą sritį
- mapnik_image: Mapnik vaizdas
max: maksimalus
options: Parinktys
osm_xml_data: OpenStreetMap XML duomenys
- osmarender_image: Osmarender vaizdas
output: Rezultatas
paste_html: Įkelkite šį HTML į svetainę
scale: Mastelis
people_mapping_nearby: netoliese žyminčiais naudotojais
subject: Tema
title: Gautieji
- you_have: Jūs turite %{new_count} naujus pranešimus ir %{old_count} senus
mark:
as_read: Pranešimas pažymėtas kaip skaitytas
as_unread: Pranešimas pažymėtas kaip neskaitytas
subject: Tema
title: Išsiųstieji
to: Kam
- you_have_sent_messages: Jūs turite %{count} išsiųstų žinučių
read:
back_to_inbox: Atgal į gautus
back_to_outbox: Atgal į išsiųstus
node: Skatīt punktu lielākā kartē
relation: Skatīt relāciju lielākā kartē
way: Skatīt līniju lielākā kartē
- loading: Notiek ielāde...
+ loading: Ielādē…
navigation:
all:
next_changeset_tooltip: Nākošā izmaiņu kopa
hide_areas: Paslēpt zonas
history_for_feature: Vēsture [[feature]]
load_data: Ielādēt datus
- loading: Notiek ielāde...
+ loading: Ielādē…
object_list:
back: Parādīt objektu sarakstu
details: Sīkāka informācija
older_entries: Vecāki ieraksti
recent_entries: "Pēdējie dienasgrāmatas ieraksti:"
title: Lietotāju dienasgrāmatas
+ title_friends: Draugu dienasgrāmatas
+ title_nearby: Tuvumā esošu lietotāju dienasgrāmatas
user_title: "%{user} dienasgrāmata"
location:
edit: Rediģēt
licence: Licence
longitude: "Garums:"
manually_select: Manuāli izvēlēties citu teritoriju
- mapnik_image: Mapnik attēls
max: līdz
osm_xml_data: OpenStreetMap XML dati
- osmarender_image: Osmarender attēls
output: Izvade
scale: Mērogs
too_large:
description:
title:
geonames: Atrašanās vieta no <a href="http://www.geonames.org/">GeoNames</a>
+ osm_nominatim: Atrašanās vieta no <a href="http://nominatim.openstreetmap.org/">OpenStreetMap Nominatim</a>
types:
cities: Pilsētas
places: Vietas
marketplace: Tirgus
mountain_rescue: Kalnu glābēji
nightclub: Naktsklubs
+ nursery: Pirmsskolas mācību iestāde
nursing_home: Pansionāts
office: Birojs
park: Parks
byway: Blakusceļš
construction: Automaģistrāle būvniecības stadijā
cycleway: Veloceliņš
+ distance_marker: Attāluma stabiņš
emergency_access_point: Ārkārtas piekļuves punkts
footway: Taka
gate: Vārti
wood: Mežs
leisure:
beach_resort: Pludmales kūrorts
+ common: Koplietošanas zeme
fishing: Zvejas apgabals
garden: Dārzs
golf_course: Golfa laukums
waterfall: Ūdenskritums
weir: Dambis
javascripts:
+ map:
+ base:
+ cycle_map: Velokarte
+ transport_map: Transporta karte
site:
edit_tooltip: Rediģēt karti
layouts:
people_mapping_nearby: cilvēkiem, kuri zīmē karti tavā apkaimē
subject: Temats
title: iesūtne
- you_have: Jums ir %{new_count} jaunas ziņas un %{old_count} lasītas ziņas
mark:
as_read: Ziņa atzīmēta kā lasīta
as_unread: Ziņa atzīmēta kā nelasīta
subject: Temats
title: izsūtne
to: Kam
- you_have_sent_messages: Jums ir %{count} nosūtītās ziņas
read:
back_to_inbox: Atpakaļ uz iesūtni
back_to_outbox: Atpakaļ uz izsūtni
admin: Administratīvā robeža
allotments: Mazdārziņi
apron:
- 1: termināls
+ - Lidostas rampa
+ - termināls
bridge: Tilts
bridleway: Izjādes taka
brownfield: Nekopta vieta
centre: Sporta centrs
commercial: Tirdzniecības zona
common:
- 1: Pļava
+ - Koplietošanas zeme
+ - Pļava
construction: Ceļi būvniecības stadijā
cycleway: Veloceliņš
destination: Galamērķa pieeja
wood: Pirmatnējs mežs
search:
search: Meklēt
- submit_text: Meklēt
+ search_help: "piemēri: 'Valmiera', 'Mazā kalna iela, Rīga', 'LV-1010' vai 'post offices near Liepāja' <a href='http://wiki.openstreetmap.org/wiki/Search'>vairāk piemēru...</a>"
+ submit_text: OK
where_am_i: Kur es esmu?
where_am_i_title: Aprakstiet pašreizējo atrašanās vietu izmantojot meklētāju
sidebar:
remember: "Atcerēties mani:"
title: Ieiet
to make changes: Lai veiktu izmaiņas OpenStreetMap datos, jums jābūt savam kontam.
- webmaster: webmaster
logout:
heading: Iziet no OpenStreetMap
logout_button: Iziet
confirm_user: apstiprināt šo lietotāju
create_block: bloķēt šo lietotāju
created from: "Izveidota no:"
+ ct accepted: Akceptēts %{ago} iepriekš
+ ct declined: Noraidīti
+ ct status: "Dalībnieka noteikumi:"
+ ct undecided: Nav izlēmis
deactivate_user: deaktivizēt šo lietotāju
delete_user: dzēst šo lietotāju
description: Apraksts
confirm: Vai esat pārliecināts?
edit: Rediģēt
reason: "Bloķēšanas iemesls:"
+ show: Rādīt
status: Statuss
user_role:
grant:
confirm: Apstiprināt
+ revoke:
+ confirm: Apstiprināt
list:
description: Скорешни промени
description_bbox: Измени во рамките на %{bbox}
+ description_friend: Измени на ваши пријатели
+ description_nearby: Измени од соседни корисници
description_user: Измени на %{user}
description_user_bbox: Измени на %{user} во рамките на %{bbox}
heading: Измени
heading_bbox: Измени
+ heading_friend: Измени
+ heading_nearby: Измени
heading_user: Измени
heading_user_bbox: Измени
title: Измени
title_bbox: Измени во рамките на %{bbox}
+ title_friend: Измени на ваши пријатели
+ title_nearby: Измени од соседни корисници
title_user: Измени на %{user}
title_user_bbox: Измени на %{user} во рамките на %{bbox}
timeout:
sorry: За жал, на списокот на измени што го побаравте му требаше предолго за да се преземе.
diary_entry:
+ comments:
+ ago: пред %{ago}
+ comment: Коментар
+ has_commented_on: "%{display_name} коментираше на следниве дневнички записи"
+ newer_comments: Понови коментари
+ older_comments: Постари коментари
+ post: Објава
+ when: Кога
diary_comment:
comment_from: Коментар од %{link_user} во %{comment_created_at}
confirm: Потврди
older_entries: Постари ставки
recent_entries: "Скорешни дневнички записи:"
title: Дневници на корисници
+ title_friends: Дневници на пријателите
+ title_nearby: Дневници на соседните корисници
user_title: Дневник на %{user}
location:
edit: Уреди
licence: Лиценца
longitude: Г.Д.
manually_select: Рачно изберете друга површина
- mapnik_image: Mapnik-слика
+ map_image: Слика на картата (прикажува стандарден слој)
max: макс.
options: Нагодувања
osm_xml_data: OpenStreetMap XML податоци
- osmarender_image: Osmarender-слика
output: Излезни податоци
paste_html: Ископирајте го HTML кодот за да го вметнете во страницата.
scale: Размер
airport: Аеродром
city: Град
country: Земја
- county: Ð\93Ñ\80оÑ\84овиÑ\98а
+ county: Ð\9eкÑ\80Ñ\83г
farm: Фарма
hamlet: Селце
house: Куќа
base:
cycle_map: Велосипедска карта
mapquest: MapQuest Open
+ standard: Стандардна
transport_map: Сообраќајна карта
site:
edit_disabled_tooltip: Приближете за да ја уредите картата
foundation: Фондација
foundation_title: Фондацијата OpenStreetMap
gps_traces: GPS-траги
- gps_traces_tooltip: Работа со GPS траги
+ gps_traces_tooltip: Работа со GPS-траги
help: Помош
help_centre: Центар за помош
help_title: Помошна страница за проектот
intro_1: OpenStreetMap е слободна уредлива карта на целиот свет. Ја прават луѓе како вас.
intro_2: OpenStreetMap ви овозможува да разгледувате, уредувате и користите гоеографски податоци на колаборативен начин од било кое место на Земјината топка.
intro_3: Вдомувањето на OpenStreetMap го овозможија %{ucl}, %{ic} и %{bytemark}. Другите поддржувачи на проектот се наведени на %{partners}.
- intro_3_bytemark: bytemark
+ intro_3_bytemark: Вдомување Bytemark
intro_3_ic: Империјалниот колеџ - Лондон
intro_3_partners: викито
intro_3_partners_url: http://wiki.openstreetmap.org/wiki/Partners?uselang=mk
english_link: англискиот оригинал
text: Во случај на конфликт помеѓу оваа преведена страница и %{english_original_link}, предност има англиската страница
title: За овој превод
- legal_babble: "<h2>Авторски права и лиценца</h2>\n<p>\n OpenStreetMap има <i>отворени податоци</i>, и е лиценциран со <a\n href=\"http://creativecommons.org/licenses/by-sa/2.0/deed.mk\">Криејтив\n комонс НаведиИзвор-СподелиПодИстиУслови 2.0</a> (CC-BY-SA).\n</p>\n<p>\n Слободно можете да ги копирате, распространувате, јавно прикажувате и адаптирате нашите карти\n и податоци, под услов да го наведете OpenStreetMap и неговите\n учесници. Ако ги менувате или темелите дела врз нашите карти и податоци\n резултатите можете да ги распространувате само под истата лиценца.\n Во полниот <a\n href=\"http://creativecommons.org/licenses/by-sa/2.0/legalcode\">законски\n правилник</a> се објаснети вашите права и должности.\n</p>\n\n<h3>Како да го наведувате OpenStreetMap</h3>\n<p>\n Доколку користите слики од карти на OpenStreetMap, бараме\n наводот да содржи барем “© Учесници на\n OpenStreetMap, CC-BY-SA”. Ако користите само податоци од картите,\n бараме наводот да гласи “Картографски податоци © Учесници на OpenStreetMap,\n CC-BY-SA”.\n</p>\n<p>\n Кадешто е можно, OpenStreetMap треба да има хиперврска <a\n href=\"http://www.openstreetmap.org/\">http://www.openstreetmap.org/</a>\n и CC-BY-SA до <a\n href=\"http://creativecommons.org/licenses/by-sa/2.0/deed.mk\">http://creativecommons.org/licenses/by-sa/2.0/deed.mk</a>. Доколку\n користите медиум кадешто не може да се ставаат врски (како на пр.\n печатено издание), ви препорачуваме да ги наведете корисниците на\n www.openstreetmap.org (на пр. со проширување на\n ‘OpenStreetMap’ со полнава адреса) и до\n www.creativecommons.org.\n</p>\n\n<h3>Како да дознаете повеќе</h3>\n<p>\n Прочитајте повеќе за користењето на нашите податоци на <a\n href=\"http://wiki.openstreetmap.org/wiki/Legal_FAQ\">Правните\n ЧПП</a>.\n</p>\n<p>\n Учесниците во OSM се потсетуваат никогаш да не ставаат податоци од\n извори заштитени со авторски права (на пр. Google Карти или печатени карти) без\n јасна дозвола од имателите на авторските права.\n</p>\n<p>\n Иако OpenStreetMap има отворени податоци, ние сепак не можеме бесплатно да \n го нудиме картографскиот програм на развивачи кои се трети лица.\n\n Погледајте ги нашите <a href=\"http://wiki.openstreetmap.org/wiki/API_usage_policy\">Правила на користење на програмот</a>,\n <a href=\"http://wiki.openstreetmap.org/wiki/Tile_usage_policy\">Правила на користење на полињата</a>\n и <a href=\"http://wiki.openstreetmap.org/wiki/Nominatim#Usage_Policy\">Правила на користење на Nominatim</a>.\n</p>\n\n<h3>Нашите учесници</h3>\n<p>\n Нашата лиценца CC-BY-SA бара да “го наведете изворниот\n автор разумно за медиумот или средството што го\n користите”. Поединечните картографи на OSM не бараат да\n бидат наведувани посебно, туку само како “Учесници на\n OpenStreetMap”, но онаму кадешто OpenStreetMap содржи податоци\n од некоја државна картографска установа или друг важен извор,\n веројатно би било разумно да ги наведете нив директно,\n наведувајќи ги како што тие обично се наведуваат, или ставајќи врска до нивната страница.\n</p>\n\n<!--\nИнформации за уредниците на страници\n\nТука се наведени само оние организации кои бараат да бидат наведени\nкако предуслов за користење на нивните податоци на OpenStreetMap. Ова не е\nопшт каталог на увезени податоци, и не смее да се користи, освен кога\nсе бара навод за да се задоволат условите на лиценцата на увезените\nподатоци.\n\nСите дополнувања мора најпрвин да се продискутираат со систем-администраторите на OSM.\n-->\n\n<ul id=\"contributors\">\n <li><strong>Австралија</strong>: Содржи податоци за населби засновани на\n податоци на Австралиската служба за статистика.</li>\n<li><strong>Австрија</strong>: Содржи податоци од\n <a href=\"http://data.wien.gv.at/\">Град Виена</a> под лиценцата\n <a href=\"http://creativecommons.org/licenses/by/3.0/at/deed.mk\">CC-BY</a>.</li>\n <li><strong>Канада</strong>: Содржи податоци од\n GeoBase®, GeoGratis (© Министерство за природни ресурси\n Канада), CanVec (© Министерство за природни ресурси\n Канада) и StatCan (Географско одделение,\n Статистика Канада).</li>\n <li><strong>Франција</strong>: Содржи податоци преземени од\n Главната даночна управа.</li>\n <li><strong>Нов Зеланд</strong>: Содржи податоци преземени од\n Land Information New Zealand. Крунски авторски права задржани.</li>\n <li><strong>Полска</strong>: Содржи податоци од <a\n href=\"http://ump.waw.pl/\">UMP-pcPL карти</a>. Авторски права на\n учесниците на UMP-pcPL.</li>\n <li><strong>Обединето Кралство</strong>: Содржи геодетски податоци\n © Крунски авторски права и права врз базата на податоци\n 2010.</li>\n</ul>\n\n<p>\n Поставањето на податоци во OpenStreetMap не подразбира дека изворниот \n добавувач на податоци го поддржува и застапува OpenStreetMap, дека дава било каква гаранција, или пак\n дека прифаќа било каква одговорност.\n</p>"
+ legal_babble: "<h2>Авторски права и лиценца</h2>\n<p>\n OpenStreetMap има <i>отворени податоци</i>, и е лиценциран со <a\n href=\"http://creativecommons.org/licenses/by-sa/2.0/deed.mk\">Криејтив\n комонс НаведиИзвор-СподелиПодИстиУслови 2.0</a> (CC BY-SA).\n</p>\n<p>\n Слободно можете да ги копирате, распространувате, јавно прикажувате и адаптирате нашите карти\n и податоци, под услов да го наведете OpenStreetMap и неговите\n учесници. Ако ги менувате или темелите дела врз нашите карти и податоци\n резултатите можете да ги распространувате само под истата лиценца.\n Во полниот <a\n href=\"http://creativecommons.org/licenses/by-sa/2.0/legalcode\">законски\n правилник</a> се објаснети вашите права и должности.\n</p>\n\n<h3>Како да го наведувате OpenStreetMap</h3>\n<p>\n Доколку користите слики од карти на OpenStreetMap, бараме\n наводот да содржи барем “© Учесници на\n OpenStreetMap, CC BY-SA”. Ако користите само податоци од картите,\n бараме наводот да гласи “Картографски податоци © Учесници на OpenStreetMap,\n CC BY-SA”.\n</p>\n<p>\n Кадешто е можно, OpenStreetMap треба да има хиперврска <a\n href=\"http://www.openstreetmap.org/\">http://www.openstreetmap.org/</a>\n и CC BY-SA до <a\n href=\"http://creativecommons.org/licenses/by-sa/2.0/deed.mk\">http://creativecommons.org/licenses/by-sa/2.0/deed.mk</a>. Доколку\n користите медиум кадешто не може да се ставаат врски (како на пр.\n печатено издание), ви препорачуваме да ги наведете корисниците на\n www.openstreetmap.org (на пр. со проширување на\n ‘OpenStreetMap’ со полнава адреса) и до\n www.creativecommons.org.\n</p>\n\n<h3>Како да дознаете повеќе</h3>\n<p>\n Прочитајте повеќе за користењето на нашите податоци на <a\n href=\"http://wiki.openstreetmap.org/wiki/Legal_FAQ\">Правните\n ЧПП</a>.\n</p>\n<p>\n Учесниците во OSM се потсетуваат никогаш да не ставаат податоци од\n извори заштитени со авторски права (на пр. Google Карти или печатени карти) без\n јасна дозвола од имателите на авторските права.\n</p>\n<p>\n Иако OpenStreetMap има отворени податоци, ние сепак не можеме бесплатно да \n го нудиме картографскиот програм на развивачи кои се трети лица.\n\n Погледајте ги нашите <a href=\"http://wiki.openstreetmap.org/wiki/API_usage_policy\">Правила на користење на програмот</a>,\n <a href=\"http://wiki.openstreetmap.org/wiki/Tile_usage_policy\">Правила на користење на полињата</a>\n и <a href=\"http://wiki.openstreetmap.org/wiki/Nominatim#Usage_Policy\">Правила на користење на Nominatim</a>.\n</p>\n\n<h3>Нашите учесници</h3>\n<p>\n Нашата лиценца CC BY-SA бара да “го наведете изворниот\n автор разумно за медиумот или средството што го\n користите”. Поединечните картографи на OSM не бараат да\n бидат наведувани посебно, туку само како “Учесници на\n OpenStreetMap”, но онаму кадешто OpenStreetMap содржи податоци\n од некоја државна картографска установа или друг важен извор,\n веројатно би било разумно да ги наведете нив директно,\n наведувајќи ги како што тие обично се наведуваат, или ставајќи врска до нивната страница.\n</p>\n\n<!--\nИнформации за уредниците на страници\n\nТука се наведени само оние организации кои бараат да бидат наведени\nкако предуслов за користење на нивните податоци на OpenStreetMap. Ова не е\nопшт каталог на увезени податоци, и не смее да се користи, освен кога\nсе бара навод за да се задоволат условите на лиценцата на увезените\nподатоци.\n\nСите дополнувања мора најпрвин да се продискутираат со систем-администраторите на OSM.\n-->\n\n<ul id=\"contributors\">\n <li><strong>Австралија</strong>: Содржи податоци за населби засновани на\n податоци на Австралиската служба за статистика.</li>\n<li><strong>Австрија</strong>: Содржи податоци од\n <a href=\"http://data.wien.gv.at/\">Град Виена</a> под лиценцата\n <a href=\"http://creativecommons.org/licenses/by/3.0/at/deed.mk\">CC BY</a>.</li>\n <li><strong>Канада</strong>: Содржи податоци од\n GeoBase®, GeoGratis (© Министерство за природни ресурси\n Канада), CanVec (© Министерство за природни ресурси\n Канада) и StatCan (Географско одделение,\n Статистика Канада).</li>\n <li><strong>Франција</strong>: Содржи податоци преземени од\n Главната даночна управа.</li>\n <li><strong>Нов Зеланд</strong>: Содржи податоци преземени од\n Land Information New Zealand. Крунски авторски права задржани.</li>\n <li><strong>Полска</strong>: Содржи податоци од <a\n href=\"http://ump.waw.pl/\">UMP-pcPL карти</a>. Авторски права на\n учесниците на UMP-pcPL.\n <a href=\"http://wiki.openstreetmap.org/wiki/UMP2OSM_Importing\">\n Повеќе за употребата на податоци од UMP во OSM</a></li>\n <li><strong>ЈАР</strong>: Содржи податоци преземени од\n <a href=\"http://www.ngi.gov.za/\">Главниот директорат:\n Национални геопросторни информации</a>, Државни права задржани.</li>\n <li><strong>Обединето Кралство</strong>: Податоци од Ordnance Survey \n © Крунски авторски права и права врз базата на податоци\n 2010.</li>\n</ul>\n\n<p>\n Поставањето на податоци во OpenStreetMap не подразбира дека изворниот \n добавувач на податоци го поддржува и застапува OpenStreetMap, дека дава било каква гаранција, или пак\n дека прифаќа било каква одговорност.\n</p>"
native:
mapping_link: почнете со изработка на карти
native_link: македонската верзија
inbox:
date: Датум
from: Од
+ messages: Имате %{new_messages} и %{old_messages}
my_inbox: Моето сандаче
+ new_messages:
+ one: "%{count} нова порака"
+ other: "%{count} нови пораки"
no_messages_yet: Сè уште немате пораки. Зошто не се поврзете со некој од %{people_mapping_nearby_link}?
+ old_messages:
+ one: "%{count} стара порака"
+ other: "%{count} стари пораки"
outbox: за праќање
people_mapping_nearby: картографите во вашата близина
subject: Наслов
title: Примени
- you_have: Имате %{new_count} нови пораки и %{old_count} стари пораки
mark:
as_read: Пораката е означена како прочитана
as_unread: Пораката е означена како непрочитана
outbox:
date: Датум
inbox: примени пораки
+ messages:
+ one: Имате %{count} испратена порака
+ other: Имате %{count} испратени пораки
my_inbox: Моите %{inbox_link}
no_sent_messages: Сè уште немате испратено пораки. Зошто да не исконтактирате некои %{people_mapping_nearby_link}?
outbox: за праќање
subject: Наслов
title: За праќање
to: До
- you_have_sent_messages: Имате %{count} испратени пораки
read:
back_to_inbox: Назад во добиени
back_to_outbox: Назад во „за праќање“
wiki_signup_url: http://wiki.openstreetmap.org/index.php?title=Special:UserLogin&type=signup&returnto=MK%3AMain_Page&uselang=mk
oauth:
oauthorize:
- allow_read_gpx: ви ги чита вашите приватни GPS траги.
+ allow_read_gpx: ви ги чита вашите приватни GPS-траги.
allow_read_prefs: ви ги чита корисничките прилагодувања.
allow_to: "Дозволи му на клиентскиот програм да:"
allow_write_api: ја менува картата.
allow_write_diary: создава ставки во дневникот, пишува коментари и да се спријателува.
- allow_write_gpx: подига GPS траги.
+ allow_write_gpx: подига GPS-траги.
allow_write_prefs: ги менува вашите кориснички прилагодувања.
request_access: Програмскиот прилог %{app_name} бара пристап до вашата сметка, %{user}. Видете дали би сакале прилогот да ги има следните можности. Можете да одберете колку што сакате.
revoke:
submit: Уреди
title: Уредете ја апликацијата
form:
- allow_read_gpx: им ги чита приватните GPS траги
+ allow_read_gpx: им ги чита приватните GPS-траги.
allow_read_prefs: им ги чита корисничките прилагодувања.
allow_write_api: ја менува картата.
allow_write_diary: создава ставки во дневници, да коментира, и да се спријателува.
- allow_write_gpx: подига GPS траги.
+ allow_write_gpx: подига GPS-траги.
allow_write_prefs: им ги менува корисничките прилагодувања.
callback_url: URL адреса за обратен одзив
name: Име
sorry: Нажалост, тој %{type} не е пронајден.
show:
access_url: "URL адреса на пристапниот жетон:"
- allow_read_gpx: им ги чита приватните GPS траги.
+ allow_read_gpx: им ги чита приватните GPS-траги.
allow_read_prefs: им ги чита корисничките прилагодувања.
allow_write_api: ја менува картата.
allow_write_diary: прави ставки во дневници, да коментира и да се сптијателува.
- allow_write_gpx: подига GPS траги.
+ allow_write_gpx: подига GPS-траги.
allow_write_prefs: им ги менува корисничките прилагодувања.
authorize_url: "Дозволи URL адреса:"
edit: Детали од уредувањето
trace:
create:
trace_uploaded: Вашата GPX податотека е подигната и чека да биде вметната во базата на податоци. Ова обично се врши во рок од половина час, и откога ќе заврши, ќе ви биде испратена порака по е-пошта.
- upload_trace: Подигни GPS трага
+ upload_trace: Подигни GPS-трага
delete:
scheduled_for_deletion: Трагата е закажана за бришење
edit:
visibility_help: што значи ова?
visibility_help_url: http://wiki.openstreetmap.org/wiki/Visibility_of_GPS_traces?uselang=mk
list:
- public_traces: Јавни GPS траги
- public_traces_from: Јавни GPS траги од %{user}
+ public_traces: Јавни GPS-траги
+ public_traces_from: Јавни GPS-траги од %{user}
tagged_with: " означено со %{tags}"
- your_traces: Ваши GPS траги
+ your_traces: Ваши GPS-траги
make_public:
made_public: Трагата е објавена
no_such_user:
agreed: Се согласивте на новите Услови за учество.
agreed_with_pd: Исто така изјавивте дека вашите уредувања ги сметате за јавнодоменски.
heading: "Услови за учество:"
+ link: http://www.osmfoundation.org/wiki/License/Contributor_Terms?uselang=mk
link text: што е ова?
not yet agreed: Сè уште се немате согласено со новите Услови за учество.
review link text: Проследете ја врската кога ќе сакате за да ги прегледате и прифатите новите Услови за учество
summary_no_ip: "%{name} создадено на %{date}"
title: Корисници
login:
+ account is suspended: Нажалост, вашата сметка е закочена поради сомнителна активност.<br />Обратете се кај <a href="%{webmaster}">раководителот</a> ако сакате да продискутирате за проблемот.
account not active: Жалиме, но сметката сè уште не е активна.<br />Кликнете на врската наведена во пораката со која ви ја потврдуваме сметката за да ја активирате, или пак <a href="%{reconfirm}">побарајте нова потврдна порака</a>.
- account suspended: Нажалост, вашата сметка е закочена поради сомнителна активност.<br />Обратете се кај %{webmaster} ако сакате да продискутирате за проблемот.
auth failure: Жалиме, не можевме да ве најавиме со тие податоци.
create account minute: Направете сметка. Ова трае само една минута.
email or username: Е-пошта или корисничко име
login_button: Најава
lost password link: Ја заборавивте лозинката?
new to osm: За новодојденци на OpenStreetMap
+ no account: Немате сметка?
notice: <a href="http://www.osmfoundation.org/wiki/License/We_Are_Changing_The_License">Дознајте повеќе за престојната промена на лиценцата на OpenStreetMap</a> (<a href="http://wiki.openstreetmap.org/wiki/ODbL/We_Are_Changing_The_License">преводи</a>) (<a href="http://wiki.openstreetmap.org/wiki/Talk:ODbL/Upcoming">разговор</a>)
+ notice_terms: OpenStreetMap добива нова лиценца на 1 април 2012. Оваа лиценца е отворена исто како сегашната, но правните подробности се многу посоодветни на нашата картографска база на податоци. Со задоволство би ги задржале сите ваши придонеси на OpenStreetMap, но ова е можно само доколку согласувате да бидат објавени под условите на новата лиценца. Во спротивно ќе мораме да ги отстраниме од базата.<br /><br />Најавете се, прочитајте ги новите услови и видете дали се согласувате со нив. Ви благодариме!
openid: "%{logo} OpenID:"
openid invalid: Нажалост, вашиот OpenID е погрешно обликуван
openid missing provider: Нажалост, не можев да се поврзам со вашиот добавувач на OpenID
remember: "Запомни ме:"
title: Најава
to make changes: Мора да имате сметка за да можете да правите измени на податоците на OpenStreetMap.
- webmaster: мреж. управник
with openid: "Во друг случај, најавете се со вашиот OpenID:"
with username: "Веќе имате сметка на OpenStreetMap? Најавете се со корисничкото име и лозинката:"
logout:
agree: Се согласувам
consider_pd: Покрај горенаведената согласност, сметам дека мојот придонес е јавнодоменски
consider_pd_why: Што е ова?
+ consider_pd_why_url: http://www.osmfoundation.org/wiki/License/Why_would_I_want_my_contributions_to_be_public_domain?uselang=mk
decline: Одбиј
declined: http://wiki.openstreetmap.org/wiki/Contributor_Terms_Declined?uselang=mk
guidance: "Информации што ќе ви помогнат да ги разберете овие услови: a <a href=\"%{summary}\">краток опис</a> и некои <a href=\"%{translations}\">неформали преводи</a>"
block_history: погледај добиени блокови
blocks by me: извршени болокови
blocks on me: добиени блокови
+ comments: коментари
confirm: Потврди
confirm_user: потврди го корисников
create_block: блокирај го корисников
created from: "Создадено од:"
+ ct accepted: Прифатен пред %{ago} дена
+ ct declined: Одбиен
+ ct status: "Услови за учество:"
+ ct undecided: Неодлучено
deactivate_user: деактивирај го корисников
delete_user: избриши го корисников
description: Опис
diary: дневник
edits: уредувања
email address: Е-пошта
+ friends_changesets: Сите измени на пријателите
+ friends_diaries: Прелистување на сите дневнички записи на пријателите
hide_user: скриј го корисников
if set location: Ако ја наместите вашата местоположба, под ова ќе ви се појави убава карта и други работи. Матичната местоположба можете да си ја наместите на страницата %{settings_link}.
km away: "%{count} км од вас"
m away: "%{count} м од вас"
mapper since: "Картограф од:"
moderator_history: погледај добиени блокови
+ my comments: мои коментари
my diary: мојот дневник
my edits: мои уредувања
my settings: мои прилагодувања
my traces: мои траги
nearby users: Други соседни корисници
+ nearby_changesets: Прелистување на сите измени на соседните корисници
+ nearby_diaries: Прелистување на сите дневнички записи на соседните корисници
new diary entry: нова ставка во дневникот
no friends: Сè уште немате додадено пријатели.
no nearby users: Сè уште нема други корисници во вашата околина што признаваат дека работат на карти.
old_relation: Hubungan Lama
old_relation_member: Anggota Hubungan Lama
old_relation_tag: Tag Hubungan Lama
- old_way: Arah Lama
- old_way_node: Nod Arah Lama
- old_way_tag: Tag Arah Lama
+ old_way: Jalan Lama
+ old_way_node: Nod Jalan Lama
+ old_way_tag: Tag Jalan Lama
relation: Hubungan
relation_member: Anggota Hubungan
relation_tag: Tag Hubungan
user: Pengguna
user_preference: Keutamaan Pengguna
user_token: Token Pengguna
- way: Arah
- way_node: Nod Arah
- way_tag: Tag Arah
+ way: Jalan
+ way_node: Nod Jalan
+ way_tag: Tag Jalan
application:
require_cookies:
cookies_needed: Nampaknya cookies anda belum dihidupkan - sila hidupkan cookies dalam pelayar anda, kemudian sambung.
created_at: "Dibuat pada:"
has_nodes: "Mempunyai %{count} nodus yang berikut:"
has_relations: "Mempunyai %{count} hubungan yang berikut:"
- has_ways: "Mempunyai %{count} arah yang berikut:"
+ has_ways: "Mempunyai %{count} jalan yang berikut:"
no_bounding_box: Tiada petak pembatasan telah ditetapkan untuk set ubah ini.
show_area_box: Tunjukkan Petak Kawasan
common_details:
area: Sunting kawasan
node: Sunting nod
relation: Sunting hubungan
- way: Sunting arah
+ way: Sunting jalan
larger:
area: Lihat kawasan pada peta yang lebih besar
node: Lihat nod pada peta yang lebih besar
relation: Lihat hubungan pada peta yang lebih besar
- way: Lihat arah pada peta yang lebih besar
+ way: Lihat jalan pada peta yang lebih besar
loading: Memuatkan...
navigation:
all:
next_changeset_tooltip: Set ubah berikutnya
next_node_tooltip: Nod berikutnya
next_relation_tooltip: Hubungan berikutnya
- next_way_tooltip: Arah berikutnya
+ next_way_tooltip: Jalan berikutnya
prev_changeset_tooltip: Set ubah sebelumnya
prev_node_tooltip: Nod sebelumnya
prev_relation_tooltip: Hubungan sebelumnya
- prev_way_tooltip: Arah sebelumnya
+ prev_way_tooltip: Jalan sebelumnya
user:
name_changeset_tooltip: Lihat suntingan oleh %{user}
next_changeset_tooltip: Suntingan berikutnya oleh %{user}
changeset: set ubah
node: nod
relation: hubungan
- way: arah
+ way: jalan
paging_nav:
of: daripada
showing_page: Memaparkan laman
type:
node: Nod
relation: Hubungan
- way: Arah
+ way: Jalan
start:
manually_select: Pilih kawasan yang lain secara insani
view_data: Lihat data untuk paparan peta semasa
history:
type:
node: Nod [[id]]
- way: Arah [[id]]
+ way: Jalan [[id]]
selected:
type:
node: Nod [[id]]
- way: Arah [[id]]
+ way: Jalan [[id]]
type:
node: Nod
- way: Arah
+ way: Jalan
private_user: pengguna persendirian
show_areas: Tunjukkan kawasan
show_history: Tunjukkan Sejarah
changeset: set ubah
node: nod
relation: hubungan
- way: arah
+ way: jalan
way:
download: "%{download_xml_link}, %{view_history_link} atau %{edit_link}"
download_xml: Muat Turun XML
edit: sunting
view_history: lihat sejarah
- way: Arah
- way_title: "Arah: %{way_name}"
+ way: Jalan
+ way_title: "Jalan: %{way_name}"
way_details:
also_part_of:
- one: juga sebahagian daripada arah %{related_ways}
- other: juga sebahagian daripada arah-arah %{related_ways}
+ one: juga sebahagian daripada jalan %{related_ways}
+ other: juga sebahagian daripada jalan-jalan %{related_ways}
nodes: "Nod:"
part_of: "Sebahagian:"
way_history:
download: "%{download_xml_link} atau %{view_details_link}"
download_xml: Muat Turun XML
view_details: lihat butiran
- way_history: Sejarah Arah
- way_history_title: "Sejarah Arah: %{way_name}"
+ way_history: Sejarah Jalan
+ way_history_title: "Sejarah Jalan: %{way_name}"
changeset:
changeset:
anonymous: Tanpa nama
list:
description: Perubahan terkini
description_bbox: Set Ubah di dalam %{bbox}
+ description_friend: Set ubah oleh kawan anda
+ description_nearby: Set ubah pengguna berdekatan
description_user: Set Ubah oleh %{user}
description_user_bbox: Set Ubah oleh %{user} di dalam %{bbox}
heading: Set Ubah
heading_bbox: Set Ubah
+ heading_friend: Set Ubah
+ heading_nearby: Set ubah
heading_user: Set Ubah
heading_user_bbox: Set Ubah
title: Set Ubah
title_bbox: Set Ubah di dalam %{bbox}
+ title_friend: Set ubah oleh kawan anda
+ title_nearby: Set ubah pengguna berdekatan
title_user: Set Ubah oleh %{user}
title_user_bbox: Set Ubah oleh %{user} di dalam %{bbox}
timeout:
sorry: Maaf, senarai set ubah yang anda pohon itu mengambil masa yang terlalu lama untuk diambil.
diary_entry:
+ comments:
+ ago: "%{ago} lalu"
+ comment: Komen
+ has_commented_on: "%{display_name} mengulas tentang entri-entri diari yang berikut"
+ newer_comments: Komen Terbaru
+ older_comments: Komen Terlama
+ post: Hantar
+ when: Bila
diary_comment:
comment_from: Ulasan %{link_user} terhadap %{comment_created_at}
confirm: Sahkan
older_entries: Catatan Terdahulu
recent_entries: "Catatan diari terkini:"
title: Diari pengguna
+ title_friends: Diari kawan
+ title_nearby: Diari pengguna berdekatan
user_title: Diari %{user}
location:
edit: Sunting
licence: Lesen
longitude: "GB:"
manually_select: Pilih kawasan yang lain secara insani
- mapnik_image: Imej Mapnik
+ map_image: Imej Peta (memaparkan paparan piawai)
max: maks
options: Pilihan
osm_xml_data: Data XML OpenStreetMap
- osmarender_image: Imej Osmarender
output: Output
paste_html: Tampalkan HTML untuk dibenamkan dalam tapak web
scale: Skala
base:
cycle_map: Peta Basikal
mapquest: MapQuest Dibuka
+ standard: Piawai
transport_map: Peta Pengangkutan
site:
edit_disabled_tooltip: Zum dekat untuk menyunting peta
title: Perihal laman ini
message:
delete:
- deleted: Pesanan dibuang
+ deleted: Pesanan dihapuskan
inbox:
date: Tarikh
from: Daripada
+ messages: Anda ada %{new_messages} dan %{old_messages}
my_inbox: Peti masuk saya
+ new_messages: "%{count} pesanan baru"
no_messages_yet: Anda belum ada pesanan. Apa kata anda berhubung dengan %{people_mapping_nearby_link}?
+ old_messages: "%{count} pesanan lama"
outbox: peti keluar
people_mapping_nearby: pemeta-pemeta yang berdekatan
subject: Subjek
title: Peti Masuk
- you_have: Anda mempunyai %{new_count} pesanan baru dan %{old_count} pesanan lama
mark:
as_read: Pesanan ditandai sebagai sudah dibaca
as_unread: Pesanan ditandai sebagai belum dibaca
outbox:
date: Tarikh
inbox: Peti masuk
+ messages: Anda ada %{count} pesanan terhantar
my_inbox: "%{inbox_link} saya"
no_sent_messages: Anda belum menghantar pesanan. Apa kata anda berhubung dengan %{people_mapping_nearby_link}?
outbox: peti keluar
subject: Subjek
title: Peti Keluar
to: Kepada
- you_have_sent_messages: Anda mempunyai %{count} pesanan terhantar
read:
back_to_inbox: Kembali ke peti masuk
back_to_outbox: Kembali ke peti keluar
previous: "« Sebelumnya"
showing_page: Memaparkan halaman %{page}
view:
- delete_track: Hapsukan jejak ini
+ delete_track: Hapuskan jejak ini
description: "Keterangan:"
download: muat turun
edit: sunting
summary_no_ip: "%{name} diwujudkan pada %{date}"
title: Pengguna
login:
+ account is suspended: Maaf, akaun anda digantung disebabkan perbuatan yang mencurigakan.<br />Sila hubungi <a href="%{webmaster}">pentadbir web</a> jika anda ingin membincangkan perkara ini.
account not active: Maaf, akaun anda belum aktif.<br />Sila ikuti pautan dalam pesanan e-mel pengesahan akaun untuk menghidupkan akaun anda, atau <a href="%{reconfirm}">pohon pesanan e-mel pengesahan yang baru</a>.
- account suspended: Maaf, akaun anda telah digantung disebabkan kegiatan.<br />Sila hubungi %{webmaster} jika anda ingin membincangkan perkara ini.
auth failure: Maaf, log masuk tidak dapat dibenarkan dengan butiran-butiran itu.
create account minute: Bukalah satu akaun. Seminit sahaja masa untuk membuatnya.
email or username: "Alamat E-mel atau Nama Pengguna:"
login_button: Log masuk
lost password link: Lupa kata laluan anda?
new to osm: Baru kenal OpenStreetMap?
+ no account: Belum buka akaun?
notice: <a href="http://www.osmfoundation.org/wiki/License/We_Are_Changing_The_License">Ketahui lebih lanjut tentang perubahan lesen OpenStreetMap yang akan datang</a> (<a href="http://wiki.openstreetmap.org/wiki/ODbL/We_Are_Changing_The_License">terjemahan</a>) (<a href="http://wiki.openstreetmap.org/wiki/Talk:ODbL/Upcoming">perbincangan</a>)
+ notice_terms: OpenStreetMap akan beralih kepada lesen baru pada 1 April 2012. Ia sama terbukanya dengan lesen yang kami ada sekarang, cuma butiran undang-undangnya lebih sesuai dengan pangkalan data peta kami. Kami teringin untuk menyimpan sumbangan-sumbangan anda di OpenStreetMap, cuma asalkan anda membenarkan kami untuk mengedarkannya di bawah lesen baru itu. Jika tidak, kami terpaksa membuangnya daripada pangkalan data.<br /><br />Sila log masuk, kemudian luangkan sedikit masa untuk meneliti dan menerima syarat-syarat baru ini. Terima kasih!
openid: "OpenID %{logo}:"
openid invalid: Maaf, OpenID anda nampaknya tidak betul formatnya
openid missing provider: Maaf, pembekal OpenID anda tidak dapat dihubungi
remember: "Ingati saya:"
title: Log masuk
to make changes: Untuk membuat perubahan pada data OpenStreetMap, anda mesti mempunyai akaun.
- webmaster: pentadbir web
with openid: "Ataupun, sila gunakan OpenID anda untuk log masuk:"
with username: "Sudah ada akaun OpenStreetMap? Sila log masuk dengan nama pengguna dan kata laluan anda:"
logout:
block_history: lihat sekatan yang diterima
blocks by me: sekatan oleh saya
blocks on me: sekatan ke atas saya
+ comments: komen
confirm: Sahkan
confirm_user: sahkan pengguna ini
create_block: sekat pengguna ini
created from: "Dibuat daripada:"
+ ct accepted: Diterima %{ago} dahulu
+ ct declined: Ditolak
+ ct status: "Terma-terma penyumbang:"
+ ct undecided: Belum diputuskan
deactivate_user: nyahaktifkan pengguna ini
delete_user: hapuskan pengguna ini
description: Keterangan
diary: diari
edits: suntingan
email address: "Alamat e-mel:"
+ friends_changesets: Semak seimbas semua set ubah kawan-kawan
+ friends_diaries: Semak seimbas semua catatan diari kawan-kawan
hide_user: sorokkan pengguna ini
if set location: Jika anda menetapkan lokasi anda, peta yang cantik dan sebagainya akan muncul di sini. Anda boleh menetapkan lokasi rumah anda di laman %{settings_link} anda.
km away: "%{count}km jauhnya"
m away: "%{count}m jauhnya"
mapper since: "Pemeta sejak:"
moderator_history: lihat sekatan yang dikenakan
+ my comments: komen saya
my diary: diari saya
my edits: suntingan saya
my settings: tetapan saya
my traces: jejak saya
nearby users: Pengguna lain yang berdekatan
+ nearby_changesets: Semak seimbas semua set ubah pengguna berdekatan
+ nearby_diaries: Semak seimbas semua catatan diari pengguna berdekatan
new diary entry: catatan diari baru
no friends: Anda belum mencari kawan lagi.
no nearby users: Belum ada pengguna lain yang mengaku memetakan kawasan berdekatan.
-# Messages for Norwegian (bokmål) (Norsk (bokmål))
+# Messages for Norwegian Bokmål (Norsk (bokmål))
# Exported from translatewiki.net
# Export driver: syck-pecl
# Author: Event
# Author: Gustavf
# Author: Hansfn
-# Author: Jon Harald Søby
# Author: Laaknor
# Author: Nghtwlkr
# Author: Oyvind
# Author: The real emj
-"nb":
+nb:
activerecord:
attributes:
diary_comment:
list:
description: Siste endringer
description_bbox: Endringssett innenfor %{bbox}
+ description_friend: Endringssett av dine venner
description_user: Endringssett av %{user}
description_user_bbox: Endringssett av %{user} innen %{bbox}
heading: Endringssett
heading_bbox: Endringssett
+ heading_friend: Endringssett
heading_user: Endringssett
heading_user_bbox: Endringssett
title: Endringssett
title_bbox: Endringssett innenfor %{bbox}
+ title_friend: Endringssett av dine venner
title_user: Endringssett av %{user}
title_user_bbox: Endringssett av %{user} innen %{bbox}
timeout:
licence: Lisens
longitude: "Len:"
manually_select: Velg et annet område manuelt
- mapnik_image: Mapnik-bilde
max: maks
options: Valg
osm_xml_data: OpenStreetMap XML-data
- osmarender_image: Osmarender-bilde
output: Utdata
paste_html: Lim inn HTML som skal bygges inn i nettsted
scale: Skala
map:
base:
cycle_map: Sykkelkart
- mapnik: Mapnik
mapquest: MapQuest Open
- osmarender: Osmarender
transport_map: Transport-kart
overlays:
maplint: Maplint
people_mapping_nearby: folk i nærheten som lager kart
subject: Emne
title: Innboks
- you_have: Du har %{new_count} ny meldinger og %{old_count} gamle meldinger
mark:
as_read: Melding markert som lest
as_unread: Melding markert som ulest
subject: Emne
title: Utboks
to: Til
- you_have_sent_messages: Du har sendt %{count} meldinger
read:
back_to_inbox: Tilbake til innboks
back_to_outbox: Tilbake til utboks
title: Brukere
login:
account not active: Beklager, kontoen din er ikke aktivert ennå.<br />Bruk lenka i kontobekreftelseseposten for å aktivere kontoen din, eller <a href="%{reconfirm}">be om en ny bekreftelsesepost</a>.
- account suspended: Beklager, kontoen din er deaktivert på grunn av mistenkelig aktivitet.<br />Vennligst kontakt %{webmaster} hvis du ønsker å diskutere dette.
auth failure: Beklager, kunne ikke logge inn med den informasjonen
create account minute: Opprett en konto. Det tar bare ett minutt.
email or username: "E-postadresse eller brukernavn:"
lost password link: Mistet passordet ditt?
new to osm: Ny på OpenStreetMap?
notice: <a href="http://www.osmfoundation.org/wiki/License/We_Are_Changing_The_License">Finn ut mer om OpenStreetMap sitt kommende bytte av lisens</a> (<a href="http://wiki.openstreetmap.org/wiki/ODbL/We_Are_Changing_The_License">oversettelser</a>) (<a href="http://wiki.openstreetmap.org/wiki/Talk:ODbL/Upcoming">diskusjon</a>)
+ notice_terms: OpenStreetMap bytter til en ny lisens den 1. april 2012. Denne er akkurat så åpen som den nåværende, men de juridiske delene er mye bedre tilpasset vår kartdatabase. Vi ønsker å kunne fortsette å beholde dine bidrag til OpenStreetMap, men vi kan bare gjøre det hvis du er enig med oss i å distribuere dem under den nye lisensen. Ellers må vi fjerne dem fra databasen.<br /><br />Vennligst logg inn, og bruk noen sekunder på å gå igjennom og akseptere de nye betingelsene. Takk!
openid: "%{logo} OpenID:"
openid invalid: Beklager, din OpenID ser ut til å være dårlig formatert
openid missing provider: Beklager, fikk ikke kontakt med din OpenID-leverandør
remember: "Huske meg:"
title: Logg inn
to make changes: For å gjøre endringer på OpenStreetMap-data, må du ha en konto.
- webmaster: webmaster
with openid: "Alternativt kan du bruke din OpenID for å logge inn:"
with username: "Har du allerede en OpenStreetMap-konto? Logg inn med brukernavnet og passordet ditt:"
logout:
confirm_user: bekreft denne brukeren
create_block: blokker denne brukeren
created from: "Opprettet fra:"
+ ct accepted: Akseptert %{ago} siden
+ ct declined: Avslått
+ ct status: "Bidragsyters vilkår:"
+ ct undecided: Usikker
deactivate_user: deaktiver denne brukeren
delete_user: slett denne brukeren
description: Beskrivelse
diary: dagbok
edits: redigeringer
email address: "E-postadresse:"
+ friends_changesets: Bla gjennom alle endringssett av venner
hide_user: skjul denne brukeren
if set location: Hvis du setter din posisjon, så vil et fint kart og ting vises her. Du kan sette din hjemmeposisjon på din %{settings_link}-side.
km away: "%{count}km unna"
latitude: "Breed:"
licence: Lizenz
longitude: "Läng:"
- mapnik_image: Mapnik-Bild
max: max.
- osmarender_image: Osmarender-Bild
output: Utgaav
scale: Skaal
zoom: Zoom
reset_password:
confirm password: "प्रवेशशव्द निश्चित गर्ने:"
flash changed: तपाईको प्रवेशशव्द परिवर्तन गरिएको छ।
- heading: " %{name}को लागि प्रवेशशव्द परिवर्तन गर्ने \\"
+ heading: " %{user}को लागि प्रवेशशव्द परिवर्तन गर्ने \\"
password: "प्रवेशशव्द:"
reset: नयाँ प्रवेशशव्द \
title: प्रवेशशव्द परिवर्तन गर्ने
node_history_title: "Nodegeschiedenis: %{node_name}"
view_details: details weergeven
not_found:
- sorry: Sorry, de %{type} met id %{id} kan niet worden gevonden.
+ sorry: De %{type} met id %{id} kan niet worden gevonden.
type:
changeset: set wijzigingen
node: node
start_rjs:
data_frame_title: Gegevens
data_layer_name: Gegevens
- details: Details
- drag_a_box: Sleep een rechthoek op de kaart om een gebied te selecteren
+ details: Gegevens
+ drag_a_box: Teken een rechthoek op de kaart om een gebied te selecteren
edited_by_user_at_timestamp: Bewerkt door [[user]] op [[timestamp]]
hide_areas: Gebieden verbergen
history_for_feature: Geschiedenis voor [[feature]]
big_area: (groot)
no_comment: (geen)
no_edits: (geen bewerkingen)
- show_area_box: toon rechthoek
+ show_area_box: rechthoek weergeven
still_editing: (nog aan het bewerken)
view_changeset_details: Details wijzigingenset weergeven
changeset_paging_nav:
list:
description: Recente wijzigingen
description_bbox: Wijzigingensets binnen %{bbox}
+ description_friend: Wijzigingensets van uw vrienden
+ description_nearby: Wijzigingensets door nabijgelegen gebruikers
description_user: Wijzigingensets door %{user}
description_user_bbox: Wijzigingensets door %{user} binnen %{bbox}
heading: Wijzigingensets
heading_bbox: Wijzigingensets
+ heading_friend: Wijzigingensets
+ heading_nearby: Wijzigingensets
heading_user: Wijzigingensets
heading_user_bbox: Wijzigingensets
title: Wijzigingensets
title_bbox: Wijzigingensets binnen %{bbox}
+ title_friend: Wijzigingensets van uw vrienden
+ title_nearby: Wijzigingensets door de nabijgelegen gebruikers
title_user: Wijzigingensets door %{user}
title_user_bbox: Wijzigingensets door %{user} binnen %{bbox}
timeout:
sorry: Het duurde te lang om de lijst met wijzigingensets die u hebt opgevraagd op te halen.
diary_entry:
+ comments:
+ ago: "%{ago} geleden"
+ comment: Opmerking
+ has_commented_on: "%{display_name} heeft gereageerd op het volgende dagboekbericht"
+ newer_comments: Latere opmerkingen
+ older_comments: Eerder opmerkingen
+ post: Opslaan
+ when: Wanneer
diary_comment:
- comment_from: Reactie van %{link_user} op %{comment_created_at}
+ comment_from: Reactie van %{link_user} op %{comment_created_at}
confirm: Bevestigen
hide_link: Opmerking verbergen
diary_entry:
comment_count:
- one: 1 reactie
+ one: één reactie
other: "%{count} reacties"
comment_link: Reactie plaatsen bij dit bericht
confirm: Bevestigen
- edit_link: Dit bericht bewerken
+ edit_link: Bericht bewerken
hide_link: Bericht verbergen
posted_by: Geplaatst door %{link_user} op %{created} in het %{language_link}
reply_link: Reageren op dit bericht
older_entries: Oudere berichten
recent_entries: "Recente dagboekberichten:"
title: Gebruikersdagboeken
+ title_friends: Dagboeken van vrienden
+ title_nearby: Dagboeken van nabijgelegen gebruikers
user_title: Dagboek van %{user}
location:
edit: Bewerken
new:
title: Nieuw dagboekbericht
no_such_entry:
- body: Sorry, er is geen dagboekbericht of opmerking met het id %{id}. Controleer de spelling, of misschien is de verwijzing waarop u geklikt hebt onjuist.
+ body: Er is geen dagboekbericht of opmerking met het id %{id}. Controleer de spelling, of misschien is de verwijzing waarop u geklikt hebt onjuist.
heading: Een bericht met id %{id} bestaat niet
title: Het opgevraagde dagboekbericht bestaat niet
no_such_user:
- body: Sorry, er is geen gebruiker met de naam %{user}. Controleer de spelling, of misschien is de verwijzing waarop u geklikt hebt onjuist.
+ body: Er is geen gebruiker met de naam %{user}. Controleer de spelling, of misschien is de verwijzing waarop u geklikt hebt onjuist.
heading: De gebruiker %{user} bestaat niet
title: Deze gebruiker bestaat niet
view:
licence: Licentie
longitude: "Lengte:"
manually_select: Handmatig een ander gebied selecteren
- mapnik_image: Mapnik-afbeelding
+ map_image: Kaartafbeelding (geeft de standaard laag weer)
max: max
options: Opties
osm_xml_data: OpenStreetMap XML-gegevens
- osmarender_image: Osmarender-afbeelding
output: Uitvoer
paste_html: Kopieer de HTML-code en voeg deze toe aan uw website
scale: Schaal
base:
cycle_map: Fietskaart
mapquest: MapQuest Open
+ standard: Standaard
transport_map: Transport Map
site:
edit_disabled_tooltip: Zoom in om de kaart te bewerken
export_tooltip: Kaartgegevens exporteren
foundation: Stichting
foundation_title: De OpenStreetMap Foundation
- gps_traces: GPS-tracks
+ gps_traces: GPS-traces
gps_traces_tooltip: GPS-tracks beheren
help: Hulp
help_centre: Helpcentrum
home_tooltip: Naar thuislocatie gaan
inbox: Postvak IN (%{count})
inbox_tooltip:
- one: Uw Postvak IN bevat 1 ongelezen bericht
+ one: Uw Postvak IN bevat één ongelezen bericht
other: Uw Postvak IN bevat %{count} ongelezen berichten
zero: Uw Postvak IN bevat geen nieuwe berichten
intro_1: OpenStreetMap is een vrij bewerkbare kaart van de hele wereld. Hij wordt gemaakt door mensen zoals u.
english_link: Engelstalige origineel
text: In het geval deze taalversie en het %{english_original_link} elkaar tegenspreken, hebben de bepalingen op de Engelstalige pagina voorrang.
title: Over deze vertaling
- legal_babble: "<h2>Auteursrechten en licentie</h2>\n<p>\n OpenStreetMap is <i>open data</i>, gelicenceerd onder de licentie <a\n href=\"http://creativecommons.org/licenses/by-sa/2.0/\">Creative\n Commons Naamsvermelding-Gelijk delen 2.0</a> (CC-BY-SA).\n</p>\n<p>\n Het staat u vrij onze kaarten en gegevens te kopieren, te distribueren,\n weer te geven en aan te passen, zo lang als u OpenStreetMap en haar\n auteurs vermeldt. Als u onze kaarten of gegevens wijzigt of erop verder bouwt,\n mag u de resultaten onder dezelfde licentie distribueren. In de\n volledige <a\n href=\"http://creativecommons.org/licenses/by-sa/2.0/legalcode\">juridische\n tekst</a> worden uw rechten en verantwoordelijkheden uitgelegd.\n</p>\n\n<h3>Hoe OpenStreetMap te vermelden</h3>\n<p>\n Als u kaartmateriaal van OpenStreetMap gebruikt, vragen we u als\n naamsvermelding tenminste op te nemen “© OpenStreetMap-auteurs, CC-BY-SA”.\n Als u alleen kaartgegevens gebruikt, vragen we u te vermelden\n “Kaartgegevens © OpenStreetMap-auteurs,\n CC-BY-SA”.\n</p>\n<p>\n Waar mogelijk moet u verwijzen naar OpenStreetMap met een hyperlink naar <a\n href=\"http://www.openstreetmap.org/\">http://www.openstreetmap.org/</a>\n en CC-BY-SA naar <a\n href=\"http://creativecommons.org/licenses/by-sa/2.0/\">http://creativecommons.org/licenses/by-sa/2.0/</a>. Als\n u een medium gebruikt waarin u niet met hyperlinks kunt verwijzen (bijvoorbeeld in\n drukwerk), dan verzoeken we u uw lezers te verwijzen naar \n www.openstreetmap.org (wellicht door \n ‘OpenStreetMap’ uit te schrijven als het complete webadres) en naar\n www.creativecommons.org.\n</p>\n\n<h3>Meer informatie</h3>\n<p>\n U kunt meer lezen over onze gegevens in de <a\n href=\"http://wiki.openstreetmap.org/wiki/Legal_FAQ\">Veel gestelde juridische\n vragen</a>.\n</p>\n<p>\n OSM-auteurs worden er continu aan herinnerd nooit gebruik te maken van enige\n auteursrechtelijk beschermde bron (zoals bijvoorbeeld Google Maps of gedrukte kaarten) zonder\n expliciete toestemming van de auteursrechthebbenden.\n</p>\n<p>\n Hoewel OpenStreetMap open data is, kunnen we niet om niet een kaart-API\n ter beschikking stellen voor ontwikkelaars van derde partijen.\n\n Zie ons <a href=\"http://wiki.openstreetmap.org/wiki/API_usage_policy\">API-gebruiksbeleid</a>,\n <a href=\"http://wiki.openstreetmap.org/wiki/Tile_usage_policy\">Kaartgebruikbeleid</a>\n en <a href=\"http://wiki.openstreetmap.org/wiki/Nominatim#Usage_Policy\">Nominatimgebruiksbeleid</a>.\n</p>\n\n<h3>Onze gegevensleveranciers</h3>\n<p>\n Door onze CC-BY-SA-licentie moet u “de Originele auteur\n vermelden op een redelijke wijze voor het door U gebruikte medium”.\n Individuele OSM-mappers vragen niet om meer vermelding dan\n “OpenStreetMap-auteurs”, maar daar waar gegevens van\n een nationaal kaartenbureau afkomstig zijn of van een andere belangrijke\n bron, en opgenomen in OpenStreetMap, kan het redelijk zijn om\n die bron direct te vermelden of door naar deze pagina te verwijzen.\n</p>\n\n<!--\nInformatie voor paginabewerkers\n\nIn de volgende lijst zijn alleen organisaties opgenomen die\nvermelding vereisen bij opname van hun gegevens in OpenStreetMap.\nHet is geen algeheel overzicht van geïmporteerde gegevens en mag\nniet gebruikt worden, tenzij naamsvermelding verplicht is om te\nvoldoen aan de licentie van de geïmporteerde gegevens.\n\nToevoegingen op deze plaats moeten eerst met OSM-beheerders\noverlegd worden.\n-->\n\n<ul id=\"contributors\">\n <li><strong>Australië</strong>: Bevat wijkgegevens\n gebaseerd op gegevens van het Australian Bureau of Statistics.</li>\n <li><strong>Austria</strong>: Bevat gegevens van de\n <a href=\"http://data.wien.gv.at/\">Stad Wenen</a> onder\n <a href=\"http://creativecommons.org/licenses/by/3.0/at/deed.de\">CC-BY</a>.</li>\n <li><strong>Canada</strong>: Bevat gegevens van\n GeoBase®, GeoGratis (© Department of Natural\n Resources Canada), CanVec (© Department of Natural\n Resources Canada), en StatCan (Geography Division,\n Statistics Canada).</li>\n <li><strong>Polen</strong>: Bevat gegevens van <a\n href=\"http://ump.waw.pl/\">UMP-pcPL maps</a>. Auteursrechten\n UMP-pcPL-delnemers.</li>\n <li><strong>Frankrijk</strong>: Bevat gegevens van\n Direction Générale des Impôts.</li>\n <li><strong>Nieuw-Zeeland</strong>: Bevat gegevens van\n Land Information New Zealand. Crown Copyright voorbehouden.</li>\n <li><strong>Verenigd Koninkrijk</strong>: Bevat gegevens van\n de Ordnance Survey © Crown Copyright en databaserechten\n 2010.</li>\n</ul>\n\n<p>\n Opname van gegevens in OpenStreetMap betekent niet dat de originele\n gegevensverstrekker OpenStreetMap ondersteunt, enige vorm van garantie geeft, of\n aansprakelijkheid aanvaardt.\n</p>"
+ legal_babble: "<h2>Auteursrechten en licentie</h2>\n<p>\n OpenStreetMap is <i>open data</i>, gelicenceerd onder de licentie <a\n href=\"http://creativecommons.org/licenses/by-sa/2.0/\">Creative\n Commons Naamsvermelding-Gelijk delen 2.0</a> (CC-BY-SA).\n</p>\n<p>\n Het staat u vrij onze kaarten en gegevens te kopieren, te distribueren,\n weer te geven en aan te passen, zo lang als u OpenStreetMap en haar\n auteurs vermeldt. Als u onze kaarten of gegevens wijzigt of erop verder bouwt,\n mag u de resultaten onder dezelfde licentie distribueren. In de\n volledige <a\n href=\"http://creativecommons.org/licenses/by-sa/2.0/legalcode\">juridische\n tekst</a> worden uw rechten en verantwoordelijkheden uitgelegd.\n</p>\n\n<h3>Hoe OpenStreetMap te vermelden</h3>\n<p>\n Als u kaartmateriaal van OpenStreetMap gebruikt, vragen we u als\n naamsvermelding tenminste op te nemen “© OpenStreetMap-auteurs, CC-BY-SA”.\n Als u alleen kaartgegevens gebruikt, vragen we u te vermelden\n “Kaartgegevens © OpenStreetMap-auteurs,\n CC-BY-SA”.\n</p>\n<p>\n Waar mogelijk moet u verwijzen naar OpenStreetMap met een hyperlink naar <a\n href=\"http://www.openstreetmap.org/\">http://www.openstreetmap.org/</a>\n en CC-BY-SA naar <a\n href=\"http://creativecommons.org/licenses/by-sa/2.0/\">http://creativecommons.org/licenses/by-sa/2.0/</a>. Als\n u een medium gebruikt waarin u niet met hyperlinks kunt verwijzen (bijvoorbeeld in\n drukwerk), dan verzoeken we u uw lezers te verwijzen naar \n www.openstreetmap.org (wellicht door \n ‘OpenStreetMap’ uit te schrijven als het complete webadres) en naar\n www.creativecommons.org.\n</p>\n\n<h3>Meer informatie</h3>\n<p>\n U kunt meer lezen over onze gegevens in de <a\n href=\"http://wiki.openstreetmap.org/wiki/Legal_FAQ\">Veel gestelde juridische\n vragen</a>.\n</p>\n<p>\n OSM-auteurs worden er continu aan herinnerd nooit gebruik te maken van enige\n auteursrechtelijk beschermde bron (zoals bijvoorbeeld Google Maps of gedrukte kaarten) zonder\n expliciete toestemming van de auteursrechthebbenden.\n</p>\n<p>\n Hoewel OpenStreetMap open data is, kunnen we niet om niet een kaart-API\n ter beschikking stellen voor ontwikkelaars van derde partijen.\n\n Zie ons <a href=\"http://wiki.openstreetmap.org/wiki/API_usage_policy\">API-gebruiksbeleid</a>,\n <a href=\"http://wiki.openstreetmap.org/wiki/Tile_usage_policy\">Kaartgebruikbeleid</a>\n en <a href=\"http://wiki.openstreetmap.org/wiki/Nominatim#Usage_Policy\">Nominatimgebruiksbeleid</a>.\n</p>\n\n<h3>Onze gegevensleveranciers</h3>\n<p>\n Door onze CC-BY-SA-licentie moet u “de Originele auteur\n vermelden op een redelijke wijze voor het door U gebruikte medium”.\n Individuele OSM-mappers vragen niet om meer vermelding dan\n “OpenStreetMap-auteurs”, maar daar waar gegevens van\n een nationaal kaartenbureau afkomstig zijn of van een andere belangrijke\n bron, en opgenomen in OpenStreetMap, kan het redelijk zijn om\n die bron direct te vermelden of door naar deze pagina te verwijzen.\n</p>\n\n<!--\nInformatie voor paginabewerkers\n\nIn de volgende lijst zijn alleen organisaties opgenomen die\nvermelding vereisen bij opname van hun gegevens in OpenStreetMap.\nHet is geen algeheel overzicht van geïmporteerde gegevens en mag\nniet gebruikt worden, tenzij naamsvermelding verplicht is om te\nvoldoen aan de licentie van de geïmporteerde gegevens.\n\nToevoegingen op deze plaats moeten eerst met OSM-beheerders\noverlegd worden.\n-->\n\n<ul id=\"contributors\">\n <li><strong>Australië</strong>: Bevat wijkgegevens\n gebaseerd op gegevens van het Australian Bureau of Statistics.</li>\n <li><strong>Austria</strong>: Bevat gegevens van de\n <a href=\"http://data.wien.gv.at/\">Stad Wenen</a> onder\n <a href=\"http://creativecommons.org/licenses/by/3.0/at/deed.de\">CC-BY</a>.</li>\n <li><strong>Canada</strong>: Bevat gegevens van\n GeoBase®, GeoGratis (© Department of Natural\n Resources Canada), CanVec (© Department of Natural\n Resources Canada), en StatCan (Geography Division,\n Statistics Canada).</li>\n <li><strong>Polen</strong>: Bevat gegevens van <a\n href=\"http://ump.waw.pl/\">UMP-pcPL maps</a>. Auteursrechten\n UMP-pcPL-deelnemers.</li>\n <a href=\"http://wiki.openstreetmap.org/wiki/UMP2OSM_Importing\">\n Meer over hoe OSM UMP-gegevens gebruikt</a></li>\n <li><strong>Zuid-Afrika</strong>: Bevat gegevens afkomstig uit\n <a href=\"http://www.ngi.gov.za/\">Chief Directorate:\n National Geo-Spatial Information</a>, auteursrechten voor de Staat voorbehouden.</li>\n <li><strong>Frankrijk</strong>: Bevat gegevens van\n Direction Générale des Impôts.</li>\n <li><strong>Nieuw-Zeeland</strong>: Bevat gegevens van\n Land Information New Zealand. Crown Copyright voorbehouden.</li>\n <li><strong>Verenigd Koninkrijk</strong>: Bevat gegevens van\n de Ordnance Survey © Crown Copyright en databaserechten\n 2010.</li>\n</ul>\n\n<p>\n Opname van gegevens in OpenStreetMap betekent niet dat de originele\n gegevensverstrekker OpenStreetMap ondersteunt, enige vorm van garantie geeft, of\n aansprakelijkheid aanvaardt.\n</p>"
native:
mapping_link: gaan mappen
native_link: Nederlandstalige versie
inbox:
date: Datum
from: Van
+ messages: U hebt %{new_messages} en %{old_messages}
my_inbox: Mijn Postvak IN
+ new_messages:
+ one: "%{count} nieuw bericht"
+ other: "%{count} nieuwe berichten"
no_messages_yet: U hebt nog geen berichten. Waarom legt u geen contact met %{people_mapping_nearby_link}?
+ old_messages:
+ one: "%{count} oud bericht"
+ other: "%{count} oude berichten"
outbox: Postvak UIT
people_mapping_nearby: dichtbijzijnde mappers
subject: Onderwerp
title: Postvak IN
- you_have: U hebt %{new_count} nieuwe berichten en %{old_count} oude berichten
mark:
as_read: Gemarkeerd als gelezen
as_unread: Gemarkeerd als ongelezen
limit_exceeded: U hebt recentelijk veel berichten verstuurd. Wacht even voordat u weer berichten kunt versturen.
message_sent: Bericht verzonden
send_button: Verzenden
- send_message_to: Een persoonlijk bericht naar %{name} versturen
+ send_message_to: Een persoonlijk bericht naar %{name} verzenden
subject: Onderwerp
title: Bericht verzenden
no_such_message:
outbox:
date: Datum
inbox: Postvak IN
+ messages:
+ one: U hebt één verzonden bericht
+ other: U hebt%{count} verzonden berichten
my_inbox: Mijn %{inbox_link}
no_sent_messages: U hebt nog geen berichten verzonden. Waarom legt u geen contact met %{people_mapping_nearby_link}?
outbox: Postvak UIT
subject: Onderwerp
title: Postvak UIT
to: Aan
- you_have_sent_messages: U hebt %{count} verzonden berichten
read:
back_to_inbox: Terug naar Postvak IN
back_to_outbox: Terug naar Postvak UIT
notifier:
diary_comment_notification:
footer: U kunt de reactie ook lezen op %{readurl} en u kunt zelf ook reageren op %{commenturl} of antwoorden op %{replyurl}
- header: "%{from_user} heeft een reactie geplaatst bij uw recente OpenStreetMap-dagboekingave met het onderwerp %{subject}:"
+ header: "%{from_user} heeft een reactie geplaatst bij uw recente OpenStreetMap-dagboekbericht met het onderwerp %{subject}:"
hi: Hallo %{to_user},
subject: "[OpenStreetMap] %{user} heeft een reactie bij uw dagboek geplaatst"
email_confirm:
email_confirm_html:
click_the_link: Als u dit bent, klik dan alstublieft op de onderstaande verwijzing om de wijziging te bevestigen.
greeting: Hallo,
- hopefully_you: Iemand - hopelijk u - wil zijn e-mailadres op %{server_url} wijzigen naar %{new_address}.
+ hopefully_you: Iemand - hopelijk u - wil zijn e-mailadres op %{server_url} wijzigen naar %{new_address}.
email_confirm_plain:
click_the_link: Als u dit bent, klik dan alstublieft op de onderstaande verwijzing om de wijziging te bevestigen.
greeting: Hallo,
subject: "[OpenStreetMap] GPX-import mislukt"
greeting: Hallo,
success:
- loaded_successfully: is geladen met %{trace_points} punten van de mogelijke %{possible_points} punten.
+ loaded_successfully: geladen met %{trace_points} punten van de mogelijke %{possible_points} punten.
subject: "[OpenStreetMap] GPX-import afgerond"
with_description: met de beschrijving
your_gpx_file: Het lijkt erop dat uw GPX-bestand
trace_uploaded: Uw track is geüpload en staat te wachten totdat hij in de database wordt opgenomen. Dit gebeurt meestal binnen een half uur. U ontvangt dan een e-mail.
upload_trace: GPS-track uploaden
delete:
- scheduled_for_deletion: Track staat op de lijst voor verwijdering
+ scheduled_for_deletion: Trace staat op de lijst voor verwijdering
edit:
description: "Beschrijving:"
download: downloaden
edit: bewerken
filename: "Bestandsnaam:"
- heading: Track %{name} aan het bewerken
+ heading: Trace %{name} aan het bewerken
map: kaart
owner: "Eigenaar:"
points: "Punten:"
start_coord: "Startcoördinaat:"
tags: "Labels:"
tags_help: kommagescheiden
- title: Track %{name} aan het bewerken
+ title: Trace %{name} aan het bewerken
uploaded_at: "Geüpload op:"
visibility: "Zichtbaarheid:"
visibility_help: wat betekent dit?
list:
- public_traces: Openbare GPS-tracks
- public_traces_from: Openbare GPS-tracks van %{user}
+ public_traces: Openbare GPS-traces
+ public_traces_from: Openbare GPS-traces van %{user}
tagged_with: " gelabeld met %{tags}"
your_traces: Uw GPS-tracks
make_public:
- made_public: Track openbaar gemaakt
+ made_public: Trace openbaar gemaakt
no_such_user:
body: Sorry, er is geen gebruiker %{user}. Controleer de spelling, of misschien is de verwijzing waarop u geklikt hebt onjuist.
heading: De gebruiker %{user} bestaat niet
view_map: Kaart bekijken
trace_form:
description: "Beschrijving:"
- help: Help
+ help: Hulp
help_url: http://wiki.openstreetmap.org/wiki/NL:Upload
tags: "Labels:"
tags_help: kommagescheiden
visibility: "Zichtbaarheid:"
visibility_help: wat betekent dit?
trace_header:
- see_all_traces: Alle tracks zien
+ see_all_traces: Alle traces bekijken
see_your_traces: Al uw tracks weergeven
- traces_waiting: U hebt al %{count} tracks die wachten om geüpload te worden. Overweeg om te wachten totdat die verwerkt zijn, om te voorkomen dat de wachtrij voor andere gebruikers geblokkeerd wordt.
+ traces_waiting: U hebt al %{count} traces die wachten om geüpload te worden. Overweeg om te wachten totdat die verwerkt zijn, om te voorkomen dat de wachtrij voor andere gebruikers geblokkeerd wordt.
upload_trace: Trace uploaden
trace_optionals:
tags: Labels
description: "Beschrijving:"
download: downloaden
edit: bewerken
- edit_track: Deze track bewerken
+ edit_track: Deze trace bewerken
filename: "Bestandsnaam:"
- heading: Track %{name} aan het bekijken
+ heading: Trace %{name} aan het bekijken
map: kaart
none: Geen
owner: "Eigenaar:"
points: "Punten:"
start_coordinates: "Startcoördinaat:"
tags: "Labels:"
- title: Track %{name} aan het bekijken
+ title: Trace %{name} aan het bekijken
trace_not_found: De track is niet gevonden!
uploaded: "Geüpload op:"
visibility: "Zichtbaarheid:"
summary_no_ip: "%{name} aangemaakt op %{date}"
title: Gebruikers
login:
+ account is suspended: Uw gebruiker is automatisch opgeschort vanwege verdachte activiteit.<br />Neem contact op met de <a href="%{webmaster}">webmaster</a> als u deze handeling wilt bespreken.
account not active: Sorry, uw gebruiker is nog niet actief.<br />Klik op de verwijzing in de bevestigingse-mail om deze te activeren of <a href="%{reconfirm}">vraag een nieuwe bevestigingse-mail aan</a>.
- account suspended: Uw gebruiker is automatisch opgeschort vanwege verdachte activiteit.<br />Neem contact op met de %{webmaster} als u deze handeling wilt bespreken.
auth failure: Sorry, met deze gegevens kunt u niet aanmelden.
create account minute: Maak een gebruiker aan. Dat is snel gebeurd.
email or username: "E-mailadres of gebruikersnaam:"
login_button: Aanmelden
lost password link: Wachtwoord vergeten?
new to osm: Is OpenStreetMap nieuw voor u?
+ no account: Hebt u geen geregistreerde gebruiker?
notice: <a href="http://www.osmfoundation.org/wiki/License/We_Are_Changing_The_License">Lees meer over de aanstaande licentiewijziging voor OpenStreetMap</a> (<a href="http://wiki.openstreetmap.org/wiki/ODbL/We_Are_Changing_The_License">vertalingen</a>) (<a href="http://wiki.openstreetmap.org/wiki/Talk:ODbL/Upcoming">overleg</a>)
+ notice_terms: OpenStreetMap gaat vanaf 1 april 2012 een andere licentie gebruiken. Net als op dit moment is dat een open licenties, maar de juridische details zijn beter geschikt voor onze kaartgegevens. We willen uw bijdragen graag in de database houden, maar dat kan alleen als u ons toestemming geeft om ze te verspreiden onder de nieuwe licentie. Gaat u niet akkoord, dan verwijderen we uw bijdragen uit de database.<br /><br />Meld u alstublieft aan en neem dan even de tijd om de nieuwe voorwaarden te lezen en er akkoord mee te gaan. Bedankt!
openid: "%{logo} OpenID:"
openid invalid: Sorry, uw OpenID lijkt misvormd te zijn
openid missing provider: Sorry, we konden geen contact maken met uw OpenID-provider
remember: "Aanmeldgegevens onthouden:"
title: Aanmelden
to make changes: Om wijzigingen in OpenStreetMap te maken, moet u een gebruiker hebben.
- webmaster: webmaster
with openid: "U kunt ook aanmelden met uw OpenID:"
with username: "Hebt u al een gebruiker bij OpenStreetMap? Meld aan met uw gebruikersnaam en wachtwoord:"
logout:
block_history: blokkades voor mij
blocks by me: blokkades door mij
blocks on me: blokkades door mij
+ comments: opmerkingen
confirm: Bevestigen
confirm_user: deze gebruiker bevestigen
create_block: gebruiker blokkeren
created from: "Aangemaakt door:"
+ ct accepted: "%{ago} geleden geaccepteerd"
+ ct declined: Afgewezen
+ ct status: "Voorwaarden voor bijdragen:"
+ ct undecided: Onbeslist
deactivate_user: gebruiker inactief maken
delete_user: gebruiker verwijderen
description: Beschrijving
diary: dagboek
edits: bewerkingen
email address: "E-mailadres:"
+ friends_changesets: Alle wijzigingensets van vrienden bekijken
+ friends_diaries: Alle dagboekberichten van vrienden bekijken
hide_user: gebruikers verbergen
if set location: Als u uw locatie instelt, verschijnt er hieronder een kaart. U kunt de locatie instellen in uw %{settings_link}.
km away: "%{count} km verwijderd"
m away: "%{count} m verwijderd"
mapper since: "Mapper sinds:"
moderator_history: ingestelde blokkades bekijken
+ my comments: mijn opmerkingen
my diary: mijn dagboek
my edits: mijn bewerkingen
my settings: mijn instellingen
- my traces: mijn tracks
+ my traces: mijn traces
nearby users: Andere dichtbijzijnde gebruikers
+ nearby_changesets: Alle wijzigingensets van nabijgelegen gebruikers bekijken
+ nearby_diaries: Alle dagboekberichten van nabijgelegen gebruikers bekijken
new diary entry: nieuw dagboekbericht
no friends: U hebt nog geen vrienden toegevoegd.
no nearby users: Er zijn geen andere gebruikers die hebben aangegeven in de buurt te mappen.
settings_link_text: voorkeuren
spam score: "Spamscore:"
status: "Status:"
- traces: tracks
+ traces: traces
unhide_user: gebruiker weer zichtbaar maken
user location: Gebruikerslocatie
your friends: Uw vrienden
# Author: Gunnernett
# Author: Harald Khan
# Author: Nghtwlkr
+# Author: Njardarlogar
+# Author: Pladask
nn:
activerecord:
attributes:
friend:
friend: Ven
user: Brukar
+ message:
+ body: Brødtekst
+ recipient: Mottakar
+ sender: Sendar
+ title: Tittel
trace:
+ description: Skildring
+ latitude: Breiddegrad
+ longitude: Lengdegrad
+ name: Namn
public: Offentleg
size: Storleik
user: Brukar
+ visible: Synleg
user:
+ active: Aktive
+ description: Skildring
+ display_name: Visningsnamn
email: E-post
languages: Språk
+ pass_crypt: Passord
models:
acl: Tilgangskontrolliste
changeset: Endringssett
+ changeset_tag: Endringssettmerkelapp
country: Land
- diary_comment: Dagbokskommentar
- diary_entry: Dagboksoppføring
+ diary_comment: Dagbokkommentar
+ diary_entry: Dagbokoppføring
friend: Ven
language: Språk
message: Melding
node: Node
+ node_tag: Nodemerkelapp
notifier: Varsling
- old_node: Gamal Node
- old_relation: Gamal Relasjon
- old_way: Gamal Veg
- old_way_node: Gamal Vegnode
+ old_node: Gammal node
+ old_node_tag: Gammal nodemerkelapp
+ old_relation: Gammal relasjon
+ old_relation_member: Gammalt relasjonsmedlem
+ old_relation_tag: Gammal relasjonsmerkelapp
+ old_way: Gammal veg
+ old_way_node: Gammal vegnode
+ old_way_tag: Gammal vegmerkelapp
relation: Relasjon
relation_member: Relasjonsmedlem
+ relation_tag: Relasjonsmerkelapp
session: Økt
trace: Spor
- tracepoint: Sporpunkt
+ tracepoint: Punkt i spor
+ tracetag: Spormerkelapp
user: Brukar
+ user_preference: Brukarinnstillingar
+ user_token: Brukarnøkkel
way: Veg
+ way_node: Vegnode
+ way_tag: Vegmerkelapp
+ application:
+ require_cookies:
+ cookies_needed: Du ser ut til å ha deaktivert informasjonskapsler. Aktivar informasjonskapsler i nettleseren din før du held fram.
+ setup_user_auth:
+ blocked: Tilgjenget ditt til API-eit er blokkert. Logg inn på nettstaden for å finne ut meir.
+ need_to_see_terms: Tilgjenget ditt til API-eit er mellombels stoppa. Logg inn på nettsiden for å lese bidragsytervilkårene. Du treng ikkje godta vilkåra, men du må lese dei.
browse:
+ changeset:
+ changeset: "Endringssett: %{id}"
+ changesetxml: XML for endringssett
+ download: Last ned %{changeset_xml_link} eller %{osmchange_xml_link}
+ feed:
+ title: Endringssett %{id}
+ title_comment: "Endringssett: %{id} - %{comment}"
+ osmchangexml: osmChange XML
+ title: Endringssett
changeset_details:
+ belongs_to: "Tilhøyrer:"
+ bounding_box: "Avgrensingsboks:"
box: boks
+ closed_at: "Lukka:"
+ created_at: "Oppretta:"
+ has_nodes:
+ one: "Har følgjande %{count} node:"
+ other: "Har følgjande %{count} nodar:"
+ has_relations:
+ one: "Har følgjande %{count} relasjon:"
+ other: "Har følgjande %{count} relasjonar:"
+ has_ways:
+ one: "Har følgjande %{count} veg:"
+ other: "Har følgjande %{count} vegar:"
+ no_bounding_box: Ingen avgrensingsboks er lagra for dette endringssettet.
+ show_area_box: Vis boks for område
+ common_details:
+ changeset_comment: "Kommentar:"
+ deleted_at: "Sletta:"
+ deleted_by: "Sletta av:"
+ edited_at: "Redigert:"
+ edited_by: "Redigert av:"
+ in_changeset: "I endringssett:"
+ version: "Versjon:"
+ containing_relation:
+ entry: Relasjon %{relation_name}
+ entry_role: Relasjon %{relation_name} (som %{relation_role})
map:
deleted: Sletta
+ edit:
+ area: Rediger område
+ node: Rediger node
+ relation: Rediger relasjon
+ way: Rediger rute
larger:
- area: Sjå området på eit større kart
- loading: Lastar inn …
+ area: Vis område på større kart
+ node: Vis node på større kart
+ relation: Vis relasjon på større kart
+ way: Vis veg på større kart
+ loading: Lastar...
+ navigation:
+ all:
+ next_changeset_tooltip: Neste endringssett
+ next_node_tooltip: Neste node
+ next_relation_tooltip: Neste relasjon
+ next_way_tooltip: Neste veg
+ prev_changeset_tooltip: Forrige endringssett
+ prev_node_tooltip: Forrige node
+ prev_relation_tooltip: Forrige relasjon
+ prev_way_tooltip: Forrige veg
+ paging:
+ all:
+ next: "%{id} »"
+ prev: « %{id}
+ user:
+ next: "%{id} »"
+ prev: « %{id}
+ user:
+ name_changeset_tooltip: Vis redigeringar av %{user}
+ next_changeset_tooltip: Neste redigering av %{user}
+ prev_changeset_tooltip: Forrige redigering av %{user}
node:
+ download: "%{download_xml_link}, %{view_history_link} eller %{edit_link}"
download_xml: Last ned XML
+ edit: rediger
+ node: Node
+ node_title: "Node: %{node_name}"
view_history: vis historikk
+ node_details:
+ coordinates: "Koordinatar:"
+ part_of: "Del av:"
node_history:
+ download: "%{download_xml_link} eller %{view_details_link}"
download_xml: Last ned XML
+ node_history: Nodehistorik
+ node_history_title: "Nodehistorikk: %{node_name}"
+ view_details: vis detaljar
+ not_found:
+ sorry: Klarte ikkje finne %{type}-ein med ID %{id}.
+ type:
+ changeset: endringssett
+ node: node
+ relation: relasjon
+ way: veg
paging_nav:
of: av
+ showing_page: Viser side
+ relation:
+ download: "%{download_xml_link} eller %{view_history_link}"
+ download_xml: Last ned XML
+ relation: Relasjon
+ relation_title: "Relasjon: %{relation_name}"
+ view_history: vis historikk
relation_details:
members: "Medlemmar:"
+ part_of: "Del av:"
+ relation_history:
+ download: "%{download_xml_link} eller %{view_details_link}"
+ download_xml: Last ned XML
+ relation_history: Relasjonshistorikk
+ relation_history_title: "Relasjonshistorikk: %{relation_name}"
+ view_details: vis detaljar
relation_member:
+ entry: "%{type} %{name}"
entry_role: "%{type} %{name} som %{role}"
type:
- node: Punkt
+ node: Node
relation: Relasjon
way: Veg
+ start:
+ manually_select: Vel eit anna område manuelt
+ view_data: Vis data for gjeldande kartvising
start_rjs:
data_frame_title: Data
data_layer_name: Data
- load_data: Last data
+ details: Detaljar
+ drag_a_box: Dra ein boks på kartet for å velje eit område
+ edited_by_user_at_timestamp: Redigert av [[user]], [[timestamp]]
+ hide_areas: Skjul områder
+ history_for_feature: Historikk for [[feature]]
+ load_data: Last inn data
+ loaded_an_area_with_num_features: Dette området inneheld [[num_features]] objekt. Nokre nettlesarar kan ikkje handtere så mykje data. For å ikkje risikere at nettlesaren låsar seg bør du halde deg til under 100 objekt. Om du er sikker på at du vil sjå informasjonen kan du klikke på knappen nedanfor.
loading: Lastar...
+ manually_select: Vel eit anna område manuelt
object_list:
- back: Syn objektliste
- details: Detaljer
+ api: Hent dette området frå API-et
+ back: Vis objektliste
+ details: Detaljar
heading: Objektliste
- wait: Vent...
+ history:
+ type:
+ node: Node [[id]]
+ way: Veg [[id]]
+ selected:
+ type:
+ node: Node [[id]]
+ way: Veg [[id]]
+ type:
+ node: Node
+ way: Veg
+ private_user: privat brukar
+ show_areas: Vis områder
+ show_history: Vis historikk
+ unable_to_load_size: "Klarte ikkje laste inn: Avgrensingsboks med storleik [[bbox_size]] er for stor (må vere mindre enn %{max_bbox_size})"
+ wait: Vent ...
+ zoom_or_select: Zoom inn eller vel eit område av kartet for vising
+ tag_details:
+ tags: "Merkelapper:"
+ wiki_link:
+ key: Wiki-beskrivelsessiden for %{key}-elementet
+ tag: Wiki-beskrivelsessiden for %{key}=%{value}-elementet
+ wikipedia_link: Artikkelen %{page} på Wikipedia
+ timeout:
+ sorry: Beklagar, data for %{type} med id %{id} tok for lang tid å hente.
+ type:
+ changeset: endringssett
+ node: node
+ relation: relasjon
+ way: veg
way:
download: "%{download_xml_link}, %{view_history_link} eller %{edit_link}"
download_xml: Last ned XML
way_title: "Veg: %{way_name}"
way_details:
also_part_of:
- one: også del av vegen %{related_ways}
- other: også del av vegane %{related_ways}
- nodes: Punkt
+ one: òg del av vegen %{related_ways}
+ other: òg del av vegane %{related_ways}
+ nodes: "Nodar:"
part_of: "Del av:"
way_history:
+ download: "%{download_xml_link} eller %{view_details_link}"
download_xml: Last ned XML
- view_details: syn detaljer
+ view_details: vis detaljar
+ way_history: Veghistorikk
+ way_history_title: "Veghistorikk: %{way_name}"
+ changeset:
+ changeset:
+ anonymous: Anonym
+ big_area: (stor)
+ id: "#%{id}"
+ no_comment: (ingen)
+ no_edits: (ingen redigeringar)
+ show_area_box: vis boks for område
+ still_editing: (redigerer forsatt)
+ view_changeset_details: Vis detaljar for endringssett
+ changeset_paging_nav:
+ next: Neste »
+ previous: « Forrige
+ showing_page: Viser side %{page}
+ changesets:
+ area: Område
+ comment: Kommentar
+ id: ID
+ saved_at: Lagra
+ user: Brukar
+ list:
+ description: Siste endringar
+ description_bbox: Endringssett innanfor %{bbox}
+ description_friend: Endringssett av venene dine
+ description_nearby: Endringssett av næliggande brukarar
+ description_user: Endringssett av %{user}
+ description_user_bbox: Endringssett av %{user} innan %{bbox}
+ heading: Endringssett
+ heading_bbox: Endringssett
+ heading_friend: Endringssett
+ heading_nearby: Endringssett
+ heading_user: Endringssett
+ heading_user_bbox: Endringssett
+ title: Endringssett
+ title_bbox: Endringssett innanfor %{bbox}
+ title_friend: Endringssett av venene dine
+ title_nearby: Endringssett av nærliggande brukarar
+ title_user: Endringssett av %{user}
+ title_user_bbox: Endringssett av %{user} innan %{bbox}
+ timeout:
+ sorry: Lista over endringssett tok for lang tid å hente.
+ diary_entry:
+ comments:
+ ago: "%{ago} sidan"
+ comment: Kommentar
+ has_commented_on: "%{display_name} har kommentert på følgende dagboksoppføring"
+ newer_comments: Nyare kommentarar
+ older_comments: Eldre kommentarar
+ post: Post
+ when: Når
+ diary_comment:
+ comment_from: Kommentar frå %{link_user}, %{comment_created_at}
+ confirm: Stadfest
+ hide_link: Skjul denne kommentaren
+ diary_entry:
+ comment_count:
+ one: 1 kommentar
+ other: "%{count} kommentarar"
+ comment_link: Kommenter denne oppføringa
+ confirm: Stadfest
+ edit_link: Rediger denne oppføringa
+ hide_link: Skjul denne oppføringa
+ posted_by: Skrive av %{link_user} %{created} på %{language_link}
+ reply_link: Svar på denne oppføringa
+ edit:
+ body: "Brødtekst:"
+ language: "Språk:"
+ latitude: "Breiddegrad:"
+ location: "Posisjon:"
+ longitude: "Lengdegrad:"
+ marker_text: Lokasjon for dagbokoppføring
+ save_button: Lagre
+ subject: "Emne:"
+ title: Rediger oppføring i dagboka
+ use_map_link: bruk kart
+ feed:
+ all:
+ description: Nye oppføringar i dagbøkene til OpenStreetMap-brukarar
+ title: Oppføringar OpenStreetMap-dagboka
+ language:
+ description: Nye oppføringar i dagbøkene til OpenStreetMap-brukarar på %{language_name}
+ title: Oppføringar i OpenStreetMap-dagbøker på %{language_name}
+ user:
+ description: Nye oppføringar i OpenStreetMap-dagboka til %{user}
+ title: Oppføringar i OpenStreetMap-dagboka for %{user}
+ list:
+ in_language_title: Dagbokoppføringar på %{language}
+ new: Ny dagbokoppføring
+ new_title: Skriv ei ny oppføring i dagboka di
+ newer_entries: Nyare oppføringar
+ no_entries: Ingen oppføringer i dagboka
+ older_entries: Eldre oppføringar
+ recent_entries: "Nye oppføringer i dagboka:"
+ title: Brukarane sine dagbøker
+ title_friends: Dagbøkene til venene dine
+ title_nearby: Dagbøkene til nærliggande brukarar
+ user_title: "%{user} si dagbok"
+ location:
+ edit: Rediger
+ location: "Posisjon:"
+ view: Vis
+ new:
+ title: Ny dagbokoppføring
+ no_such_entry:
+ body: Det er ingen dagbokinnlegg eller kommentar med ID %{id}. Sjekk om du har skrive feil eller om lenkja er riktig.
+ heading: Inga oppføring med %{id}
+ title: Inga slik dagbokoppføring
+ no_such_user:
+ body: Det finst ingen brukar med namnet %{user}. Sjekk om du har skrive feil eller om lenkja er riktig.
+ heading: Brukaren %{user} finst ikkje
+ title: Ingen brukar funne
+ view:
+ leave_a_comment: Legg igjen ein kommentar
+ login: Logg inn
+ login_to_leave_a_comment: "%{login_link} for å legge igjen ein kommentar"
+ save_button: Lagre
+ title: "%{user} sin dagbok | %{title}"
+ user_title: "%{user} si dagbok"
+ editor:
+ default: Standard (noverande %{name})
+ potlatch:
+ description: Potlatch 1 (rediger i nettlesaren)
+ name: Potlatch 1
+ potlatch2:
+ description: Potlatch 2 (rediger i nettleseran)
+ name: Potlatch 2
+ remote:
+ description: Lokalt installert program (JOSM eller Merkaartor)
+ name: Lokalt installert program
export:
start:
+ add_marker: Legg til ein markør på kartet
+ area_to_export: Område som skal eksporterast
+ embeddable_html: HTML som kan byggjast inn
+ export_button: Eksporter
+ export_details: Data frå OpenStreetMap er lisensiert under <a href="http://creativecommons.org/licenses/by-sa/2.0/deed.no">Creative Commons Navngivelse-Del på same vilkår 2.0</a>.
+ format: Format
+ format_to_export: Format for eksport
+ image_size: Bildestørrelse
+ latitude: "Brei:"
+ licence: Lisens
+ longitude: "Len:"
+ manually_select: Vel eit anna område manuelt
+ map_image: Kartblad (viser standard laget)
+ max: maks
options: Val
+ osm_xml_data: OpenStreetMap XML-data
+ output: Utdata
+ paste_html: Lim inn HTML som skal byggjast inn i nettstad
+ scale: Skala
+ too_large:
+ body: Dette området er for stort for å eksporterast som OpenStreetMap XML-data. Zoom inn eller vel eit mindre område.
+ heading: For stort område
+ zoom: Zoom
+ start_rjs:
+ add_marker: Legg til ein markør på kartet
+ change_marker: Endre markørposisjon
+ click_add_marker: Klikk på kartet for å leggja til ein markør
+ drag_a_box: Dra ein boks på kartet for å velje eit område
+ export: Eksporter
+ manually_select: Vel eit anna område manuelt
+ view_larger_map: Vis større kart
geocoder:
+ description:
+ title:
+ geonames: Posisjon frå <a href="http://www.geonames.org/">GeoNames</a>
+ osm_namefinder: "%{types} frå <a href=\"http://gazetteer.openstreetmap.org/namefinder/\">OpenStreetMap Namefinder</a>"
+ osm_nominatim: Posisjon frå <a href="http://nominatim.openstreetmap.org/">OpenStreetMap Nominatim</a>
+ types:
+ cities: Byar
+ places: Stader
+ towns: Småbyar
+ description_osm_namefinder:
+ prefix: "%{distance} %{direction} av %{type}"
+ direction:
+ east: aust
+ north: nord
+ north_east: nordaust
+ north_west: nordvest
+ south: sør
+ south_east: søraust
+ south_west: sørvest
+ west: vest
distance:
- one: omkring 1 km
- other: omkring %{count}km
+ one: omtrent 1 km
+ other: omtrent %{count} km
zero: mindre enn 1 km
+ results:
+ more_results: Fleire resultat
+ no_results: Ingen resultat funne
+ search:
+ title:
+ ca_postcode: Resultat frå <a href="http://geocoder.ca/">Geocoder.CA</a>
+ geonames: Resultat frå <a href="http://www.geonames.org/">GeoNames</a>
+ latlon: Resultat frå <a href="http://openstreetmap.org/">Internt</a>
+ osm_namefinder: Resultat frå <a href="http://gazetteer.openstreetmap.org/namefinder/">OpenStreetMap Namefinder</a>
+ osm_nominatim: Resultat frå <a href="http://nominatim.openstreetmap.org/">OpenStreetMap Nominatim</a>
+ uk_postcode: Resultat frå <a href="http://www.npemap.org.uk/">NPEMap / FreeThe Postcode</a>
+ us_postcode: Resultat frå <a href="http://geocoder.us/">Geocoder.us</a>
+ search_osm_namefinder:
+ prefix: "%{type}"
+ suffix_parent: "%{suffix} (%{parentdistance} %{parentdirection} av %{parentname})"
+ suffix_place: ", %{distance} %{direction} av %{placename}"
+ suffix_suburb: "%{suffix}, %{parentname}"
+ search_osm_nominatim:
+ prefix:
+ amenity:
+ airport: Flyplass
+ arts_centre: Kunstsenter
+ atm: Minibank
+ auditorium: Auditorium
+ bank: Bank
+ bar: Bar
+ bench: Benk
+ bicycle_parking: Sykkelparkering
+ bicycle_rental: Sykkelutleige
+ brothel: Bordell
+ bureau_de_change: Vekslingskontor
+ bus_station: Busstasjon
+ cafe: Kafé
+ car_rental: Bilutleige
+ car_sharing: Bildeling
+ car_wash: Bilvask
+ casino: Kasino
+ cinema: Kino
+ clinic: Klinikk
+ club: Klubb
+ college: Høgskule
+ community_centre: Samfunnshus
+ courthouse: Rettsbygning
+ crematorium: Krematorium
+ dentist: Tannlege
+ doctors: Legar
+ dormitory: Sovesal
+ drinking_water: Drikkevatn
+ driving_school: Køyreskule
+ embassy: Ambassade
+ emergency_phone: Nødtelefon
+ fast_food: Hurtigmat
+ ferry_terminal: Ferjeterminal
+ fire_hydrant: Brannhydrant
+ fire_station: Brannstasjon
+ fountain: Fontene
+ fuel: Drivstoff
+ grave_yard: Gravlund
+ gym: Treningssenter
+ hall: Spisesal
+ health_centre: Helsesenter
+ hospital: Sjukehus
+ hotel: Hotell
+ hunting_stand: Jaktbod
+ ice_cream: Iskrem
+ kindergarten: Barnehage
+ library: Bibliotek
+ market: Marknad
+ marketplace: Marknadsplass
+ mountain_rescue: Fjellredning
+ nightclub: Nattklubb
+ nursery: Førskule
+ nursing_home: Pleieheim
+ office: Kontor
+ park: Park
+ parking: Parkeringsplass
+ pharmacy: Apotek
+ place_of_worship: Religiøst hus
+ police: Politi
+ post_box: Postboks
+ post_office: Postkontor
+ preschool: Førskule
+ prison: Fengsel
+ pub: Pub
+ public_building: Offentleg bygning
+ public_market: Offentleg marknad
+ reception_area: Oppsamlingsområde
+ recycling: Resirkuleringspunkt
+ restaurant: Restaurant
+ retirement_home: Gamleheim
+ sauna: Sauna
+ school: Skule
+ shelter: Tilfluktsrom
+ shop: Butikk
+ shopping: Handel
+ social_club: Sosial klubb
+ studio: Studio
+ supermarket: Supermarknad
+ taxi: Drosje
+ telephone: Offentleg telefon
+ theatre: Teater
+ toilets: Toalett
+ townhall: Rådhus
+ university: Universitet
+ vending_machine: Vareautomat
+ veterinary: Veterinærklinikk
+ village_hall: Forsamlingshus
+ waste_basket: Søppelkasse
+ wifi: WiFi-tilgangspunkt
+ youth_centre: Ungdomssenter
+ boundary:
+ administrative: Administrativ grense
+ building:
+ apartments: Bustadblokk
+ block: Bygningsblokk
+ bunker: Bunker
+ chapel: Kapell
+ church: Kyrkje
+ city_hall: Rådhus
+ commercial: Kommersiell bygning
+ dormitory: Sovesal
+ entrance: Bygningsinngang
+ faculty: Fakultetsbygning
+ farm: Gårdsbygg
+ flats: Leilegheiter
+ garage: Garasje
+ hall: Spisesal
+ hospital: Sykehusbygg
+ hotel: Hotell
+ house: Hus
+ industrial: Industribygg
+ office: Kontorbygg
+ public: Offentleg bygg
+ residential: Boligbygg
+ retail: Detaljsalgbygg
+ school: Skulebygg
+ shop: Butikk
+ stadium: Stadion
+ store: Butikk
+ terrace: Terrasse
+ tower: Tårn
+ train_station: Jernbanestasjon
+ university: Universitetsbygg
+ highway:
+ bridleway: Rideveg
+ bus_guideway: Leidde bussfelt
+ bus_stop: Busstopp
+ byway: Stikkveg
+ construction: Motorveg under konstruksjon
+ cycleway: Sykkelsti
+ distance_marker: Avstandsmarkør
+ emergency_access_point: Nødtilgangspunkt
+ footway: Gangsti
+ ford: Vadestad
+ gate: Bom
+ living_street: Gatetun
+ minor: Mindre veg
+ motorway: Motorveg
+ motorway_junction: Motorvegkryss
+ motorway_link: Veg til motorveg
+ path: Sti
+ pedestrian: Gangveg
+ platform: Perrong
+ primary: Primær veg
+ primary_link: Primær veg
+ raceway: Racerbane
+ residential: Bustad
+ road: Veg
+ secondary: Sekundær veg
+ secondary_link: Sekundær veg
+ service: Tjenesteveg
+ services: Motorveitjenester
+ steps: Trapper
+ stile: Stige
+ tertiary: Tertiær veg
+ track: Sti
+ trail: Sti
+ trunk: Hovedveg
+ trunk_link: Hovedveg
+ unclassified: Uklassifisert veg
+ unsurfaced: Veg utan dekke
+ historic:
+ archaeological_site: Arkeologisk plass
+ battlefield: Slagmark
+ boundary_stone: Grensestein
+ building: Bygning
+ castle: Slott
+ church: Kyrkje
+ house: Hus
+ icon: Ikon
+ manor: Herregard
+ memorial: Minne
+ mine: Gruve
+ monument: Monument
+ museum: Museum
+ ruins: Ruinar
+ tower: Tårn
+ wayside_cross: Vegkant kross
+ wayside_shrine: Vegkant alter
+ wreck: Vrak
+ landuse:
+ allotments: Kolonihagar
+ basin: Elveområde
+ brownfield: Tidlegare industriområde
+ cemetery: Gravplass
+ commercial: Kommersielt område
+ conservation: Freda
+ construction: Kontruksjon
+ farm: Gard
+ farmland: Jordbruksland
+ farmyard: Gardstun
+ forest: Skog
+ grass: Gras
+ greenfield: Ikkje-utvikla område
+ industrial: Industriområde
+ landfill: Landfylling
+ meadow: Eng
+ military: Militært område
+ mine: Gruve
+ mountain: Fjell
+ nature_reserve: Naturreservat
+ park: Park
+ piste: Løype
+ plaza: Torg
+ quarry: Steinbrot
+ railway: Jernbane
+ recreation_ground: Idrettsplass
+ reservoir: Reservoar
+ residential: Boligområde
+ retail: Detaljsalg
+ village_green: landsbypark
+ vineyard: Vingård
+ wetland: Våtmark
+ wood: Skog
+ leisure:
+ beach_resort: Strandsted
+ common: Allmenning
+ fishing: Fiskeområde
+ garden: Hage
+ golf_course: Golfbane
+ ice_rink: Skøytebane
+ marina: Båthavn
+ miniature_golf: Minigolf
+ nature_reserve: Naturreservat
+ park: Park
+ pitch: Sportsarena
+ playground: Leikeplass
+ recreation_ground: Idrettsplass
+ slipway: Slipp
+ sports_centre: Sportssenter
+ stadium: Stadion
+ swimming_pool: Symjebaseng
+ track: Laupebane
+ water_park: Vannpark
+ natural:
+ bay: Bukt
+ beach: Strand
+ cape: Nes
+ cave_entrance: Holeinngang
+ channel: Kanal
+ cliff: Klippe
+ coastline: Kystlinje
+ crater: Krater
+ feature: Eigenskap
+ fell: Fjellskrent
+ fjord: Fjord
+ geyser: Geysir
+ glacier: Isbre
+ heath: Vidde
+ hill: Ås
+ island: Øy
+ land: Land
+ marsh: Sump
+ moor: Myr
+ mud: Gjørme
+ peak: Topp
+ point: Punkt
+ reef: Rev
+ ridge: Rygg
+ river: Elv
+ rock: Stein
+ scree: Ur
+ scrub: Kratt
+ shoal: Grunning
+ spring: Kjelde
+ strait: Stred
+ tree: Tre
+ valley: Dal
+ volcano: Vulkan
+ water: Vatn
+ wetland: Våtmark
+ wetlands: Våtland
+ wood: Skog
+ place:
+ airport: Flyplass
+ city: By
+ country: Land
+ county: Fylke
+ farm: Gard
+ hamlet: Grend
+ house: Hus
+ houses: Hus
+ island: Øy
+ islet: Holme
+ locality: Plass
+ moor: Myr
+ municipality: Kommune
+ postcode: Postnummer
+ region: Område
+ sea: Hav
+ state: Delstat
+ subdivision: Underavdeling
+ suburb: Forstad
+ town: Tettstad
+ unincorporated_area: Kommunefritt område
+ village: Landsby
+ railway:
+ abandoned: Forlatt jernbane
+ construction: Jernbane under konstruksjon
+ disused: Nedlagt jernbane
+ disused_station: Nedlagt jernbanestasjon
+ funicular: Kabelbane
+ halt: Togstopp
+ historic_station: Historisk jernbanestasjon
+ junction: Jernbanekryss
+ level_crossing: Planovergang
+ light_rail: Bybane
+ monorail: Enskinnebane
+ narrow_gauge: Smalsporjernbane
+ platform: Jernbaneperrong
+ preserved: Verna jernbane
+ spur: Jernbaneforgrening
+ station: Jernbanestasjon
+ subway: T-banestasjon
+ subway_entrance: T-baneinngang
+ switch: Sporveksel
+ tram: Sporveg
+ tram_stop: Trikkestopp
+ yard: Skiftetomt
+ shop:
+ alcohol: Utanfor lisens
+ apparel: Klesbutikk
+ art: Kunstbutikk
+ bakery: Bakeri
+ beauty: Skjønnheitssalong
+ beverages: Drikkevarebutikk
+ bicycle: Sykkelbutikk
+ books: Bokhandel
+ butcher: Slaktar
+ car: Bilbutikk
+ car_dealer: Bilforhandlar
+ car_parts: Bildeler
+ car_repair: Bilverkstad
+ carpet: Teppebutikk
+ charity: Veldedighetsbutikk
+ chemist: Kjemiker
+ clothes: Klesbutikk
+ computer: Databutikk
+ confectionery: Konditori
+ convenience: Nærbutikk
+ copyshop: Kopieringsbutikk
+ cosmetics: Kosmetikkforretning
+ department_store: Varehus
+ discount: Tilbudsbutikk
+ doityourself: Gjer-det-sjølv
+ drugstore: Apotek
+ dry_cleaning: Renseri
+ electronics: Elektronikkforretning
+ estate_agent: Eiendomsmegler
+ farm: Gardsbutikk
+ fashion: Motebutikk
+ fish: Fiskebutikk
+ florist: Blomsterbutikk
+ food: Matbutikk
+ funeral_directors: Begravelsesforretning
+ furniture: Møbler
+ gallery: Galleri
+ garden_centre: Hagesenter
+ general: Landhandel
+ gift: Gavebutikk
+ greengrocer: Grønnsakshandel
+ grocery: Dagligvarebutikk
+ hairdresser: Frisør
+ hardware: Jernvarehandel
+ hifi: Hi-fi
+ insurance: Forsikring
+ jewelry: Gullsmed
+ kiosk: Kiosk
+ laundry: Vaskeri
+ mall: Kjøpesenter
+ market: Marknad
+ mobile_phone: Mobiltelefonbutikk
+ motorcycle: Motorsykkelbutikk
+ music: Musikkbutikk
+ newsagent: Nyhetsbyrå
+ optician: Optiker
+ organic: Organisk matbutikk
+ outdoor: Utandørs butikk
+ pet: Dyrebutikk
+ photo: Fotobutikk
+ salon: Salong
+ shoes: Skobutikk
+ shopping_centre: Kjøpesenter
+ sports: Sportsbutikk
+ stationery: Papirbutikk
+ supermarket: Supermarked
+ toys: Lekebutikk
+ travel_agency: Reisebyrå
+ video: Videobutikk
+ wine: Utanfor lisens
+ tourism:
+ alpine_hut: Fjellhytte
+ artwork: Kunstverk
+ attraction: Attraksjon
+ bed_and_breakfast: Bed and breakfast
+ cabin: Hytte
+ camp_site: Teltplass
+ caravan_site: Campingplass
+ chalet: Fjellhytte
+ guest_house: Gjestehus
+ hostel: Vandrerhjem
+ hotel: Hotell
+ information: Informasjon
+ lean_to: Gapehuk
+ motel: Motell
+ museum: Museum
+ picnic_site: Piknikplass
+ theme_park: Fornøyelsespark
+ valley: Dal
+ viewpoint: Utsiktspunkt
+ zoo: Dyrepark
+ waterway:
+ boatyard: Båtverft
+ canal: Kanal
+ connector: Vannvegforbindelse
+ dam: Demning
+ derelict_canal: Nedlagt kanal
+ ditch: Grøft
+ dock: Dokk
+ drain: Avløp
+ lock: Sluse
+ lock_gate: Sluseport
+ mineral_spring: Mineralkilde
+ mooring: Fortøyning
+ rapids: Bank
+ river: Elv
+ riverbank: Elvebredd
+ stream: Straum
+ wadi: Elveleie
+ water_point: Vannpunkt
+ waterfall: Foss
+ weir: Overløpskant
+ prefix_format: "%{name}"
+ html:
+ dir: ltr
+ javascripts:
+ map:
+ base:
+ cycle_map: Sykkelkart
+ mapquest: MapQuest Open
+ standard: Standard
+ transport_map: Transport-kart
+ overlays:
+ maplint: Maplint
+ site:
+ edit_disabled_tooltip: Zoom inn for å redigere kartet
+ edit_tooltip: Rediger kartet
+ edit_zoom_alert: Du må zoome inn for å redigere kartet
+ history_disabled_tooltip: Zoom inn for å vise redigeringar i dette området
+ history_tooltip: Vis redigeringar for dette området
+ history_zoom_alert: Du må zoome inn for å vise redigeringar i dette området
+ layouts:
+ community_blogs: Fellesskapsblogger
+ community_blogs_title: Bloggar frå medlemmane i OpenStreetMap-felleskapet
+ copyright: Opphavsrett & lisens
+ documentation: Dokumentasjon
+ documentation_title: Dokumentasjon for prosjektet
+ donate: Støytt OpenStreetMap ved %{link} til Hardware Upgrade Fund (eit fond for maskinvareoppgraderinger).
+ donate_link_text: donering
+ edit: Rediger
+ edit_with: Rediger med %{editor}
+ export: Eksporter
+ export_tooltip: Eksporter kartdata
+ foundation: Stiftelse
+ foundation_title: OpenStreetMap stiftelsen
+ gps_traces: GPS-spor
+ gps_traces_tooltip: Handsam GPS-spor
+ help: Hjelp
+ help_centre: Brukerstøtte
+ help_title: Hjelpenettstad for prosjektet
+ help_url: http://help.openstreetmap.org/
+ history: Historikk
+ home: heim
+ home_tooltip: Gå til heimeposisjon
+ inbox: innboks (%{count})
+ inbox_tooltip:
+ one: Din innboks inneheld 1 ulesen melding
+ other: Din innboks inneheld %{count} ulesne meldingar
+ zero: Din innboks inneheld ingen ulesne meldingar
+ intro_1: OpenStreetMap er eit fritt redigerbart kart over heile jorda. Det er laga av folk som deg.
+ intro_2: OpenStreetMap gjer det mogleg å vise, redigere og bruke geografiske data på ein samarbeidande måte frå kvar som helst på jorda.
+ intro_3: OpenStreetMaps vert sponsa av %{ucl}, %{ic} og %{bytemark}. Andre sponsorar av prosjektet er oppført i %{partners}.
+ intro_3_bytemark: Bytemark Hosting
+ intro_3_ic: Imperial College London
+ intro_3_partners: wiki
+ intro_3_partners_url: http://wiki.openstreetmap.org/wiki/Partners
+ intro_3_ucl: UCL VR Senteret
+ license:
+ alt: CC by-sa 2.0
+ title: Data frå OpenStreetMap er lisensierte under lisensen Creative Commons Navngivelse-Del på like vilkår 2.0 Generisk
+ log_in: logg inn
+ log_in_tooltip: Logg inn med ein eksisterande konto
+ logo:
+ alt_text: OpenStreetMap-logo
+ logout: logg ut
+ logout_tooltip: Logg ut
+ make_a_donation:
+ text: Doner
+ title: Støytt OpenStreetMap med ein donasjon
+ osm_offline: OpenStreetMap databasen er for augneblunken utilgjengelig medan essensielt vedlikeholdsarbeid vert utført.
+ osm_read_only: OpenStreetMap databasen er for augneblunken i berre-lese-modus medan essensielt vedlikeholdsarbeid vert utført.
+ project_name:
+ h1: OpenStreetMap
+ title: OpenStreetMap
+ sign_up: registrer
+ sign_up_tooltip: Opprett ein konto for redigering
+ sotm2011: Kom til 2011 OpenStreetMap-konferansen, «Tilstanden til kartet», 11.9. september i Denver!
+ tag_line: Fritt Wiki-verdenskart
+ user_diaries: Brukardagbok
+ user_diaries_tooltip: Vis brukaren si dagbok
+ view: Vis
+ view_tooltip: Vis kartet
+ welcome_user: Velkomen, %{user_link}
+ welcome_user_link_tooltip: Din brukarside
+ wiki: Wiki
+ wiki_title: Wikinettstad for prosjektet
+ wiki_url: http://wiki.openstreetmap.org/
+ license_page:
+ foreign:
+ english_link: den engelske originalen
+ text: I tilfellet konflikt mellom denne omsette sida og %{english_original_link} har den engelske presedensen
+ title: Om denne omsetjinga
+ legal_babble: "<h2>Opphavsrett og lisensar</h2>\n<p>\n OpenStreetMap er <i>opne data</i>, lisensiert under <a href=\"http://creativecommons.org/licenses/by-sa/2.0/\">Creative\n Commons Navngivelse-DelPåSammeVilkår 2.0</a> (CC BY-SA).\n</p>\n<p>\n Du er fri til å kopiere, distribuere, overføre og tilpasse karta våre og dataa, så lenge du krediterer OpenStreetMap og bidragsytarane\n deira. Dersom du endrar eller byggjer på karta våre eller dataa, kan du berre distribuere resultatet under same lisens. \n Den fulle <a href=\"http://creativecommons.org/licenses/by-sa/2.0/legalcode\">juridiske\n teksten</a> forklarer rettane og ansvaret.\n</p>\n\n<h3>Korleis kreditere OpenStreetMap</h3>\n<p>\n Dersom du brukar OpenStreetMap kartbilder, ber me om at din kreditering minst inneheld \n «© OpenStreetMap-bidragsytarar, CC BY-SA». Viss du berre brukar kartdata, ber me om \n «Kartdata © OpenStreetMap-bidragsytarar, CC BY-SA».\n</p>\n<p>\n Der det er mogleg, bør OpenStreetMap lenkjast til <a href=\"http://www.openstreetmap.org/\">http://www.openstreetmap.org/</a>\n og CC BY-SA til <a href=\"http://creativecommons.org/licenses/by-sa/2.0/\">http://creativecommons.org/licenses/by-sa/2.0/</a>. Viss\n du brukar eit medium der lenkjer ikkje er mogleg (t.d. i utskrivne arbeid), foreslår me at du viser lesarane til\n www.openstreetmap.org (kanskje ved å utvide 'OpenStreetMap' til denne fullstendige adressa) og til\n www.creativecommons.org.\n</p>\n\n<h3>Finn ut meir</h3>\n<p>\n Les meir om korleis du brukar dataa våre i den <a href=\"http://wiki.openstreetmap.org/wiki/Legal_fAQ\">juridiske\n FAQ-en</a>.\n</p>\n<p>\n OSM-bidragsytarar vert minna på å aldri leggje til data frå opphavsrettsbeskytta kjelder (t.d. Google Maps eller utskrivne kart) utan\n uttrykkeleg løyve frå rettighetshavere.\n</p>\n<p>\n Sjølv om OpenStreetMap er åpne data kan me ikkje gje eit\n gratis kart-API til tredjepartsutviklere.\n\n Sjå våre retningslinjer for nytting av <a href=\"http://wiki.openstreetmap.org/wiki/API_usage_policy\">API-et</a>,\n <a href=\"http://wiki.openstreetmap.org/wiki/Tile_usage_policy\">kartbilder</a>\n og <a href=\"http://wiki.openstreetmap.org/wiki/Nominatim#Usage_policy\">Nominatim</a>.\n</p>\n\n<h3>Bidragsytarane våre</h3>\n<p>\n Vår CC BY-SA-lisens krev at du «gjev den opphavlege forfattaren rimeleg kreditt til mediet eller måten du\n nyttar». Individuelle OSM-kartleggere krev ikkje ein kreditering utover «OpenStreetMap bidragsytarar»,\n men der data frå eit nasjonal kartleggingsbyrå eller frå ein anna stor kjelde er vorten inkludert inne i\n OpenStreetMap, kan det vere fornuftig å kreditere dei ved direkte\n reprodusering av kreditten deira eller ved å linke til det på denne sida.\n</p>\n\n<!--\nInformasjon til sideredaktører\n\nDen følgjande lista listar berre opp dei organisasjonane som krev kreditering\nsom eit vilkår for at dataa deira vert brukte i OpenStreetMap. Det er ikkje ein\ngenerell importeringskatalog og må ikkje brukast unntatt når kreditering\nvert kravt for å oppfylle lisensvilkårene til dei importerte dataa.\n\nAlle tillegg her må diskuterast med ein OSM-sysadmin først.\n-->\n\n<ul id=\"contributors\">\n <li><strong>Australia</strong>: Inneheld forstadsdata basert\n på Australian Bureau of Statistics data.</li>\n <li><strong>Canada</strong>: Inneheld data frå\n GeoBase®, GeoGratis (© Department of Natural\n Resources Canada), CanVec (© Department of Natural\n Resources Canada), og StatCan (Geography Division,\n Statistics Canada).</li>\n <li><strong>Frankrike</strong>: Inneheld data henta frå\n Direction Générale des Impôts.</li>\n <li><strong>New Zealand</strong>: Inneheld data henta frå\n Land Information New Zealand. Crown Copyright reservert.</li>\n <li><strong>Polen</strong>: Inneheld data frå <a href=\"http://ump.waw.pl/\">UMP-pcPL maps</a>. Copyright\n UMP-pcPL bidragsytarar.</li>\n <li><strong>Storbritannia</strong>: Inneheld Ordnance\n Survey data © Crown copyright og database-rettar\n 2010.</li>\n <li><strong>Austerrike</strong>: Inneheld data henta frå\n <a href=\"http://data.wien.gv.at/\">Stadt Wien</a> under\n <a href=\"http://creativecommons.org/licenses/by/3.0/at/deed.dei\">CC BY</a>.</li>\n</ul>\n\n<p>\n Inkludering av data i OpenStreetMap inneber ikkje at den opphavlege\n dataleverandøren støttar OpenStreetMap, gjev nokon garanti eller\n godtek noko erstatningsansvar.\n</p>"
+ native:
+ mapping_link: start kartlegging
+ native_link: Nynorsk versjon
+ text: Du ser den engelske versjonen av opphavsrettssiden. Du kan gå tilbake til den %{native_link} av denne sida, eller du kan stoppe å lese om opphavsrett og %{mapping_link}.
+ title: Om denne sida
+ message:
+ delete:
+ deleted: Melding sletta
+ inbox:
+ date: Dato
+ from: Frå
+ messages: Du har %{new_messages} og %{old_messages}
+ my_inbox: Min innboks
+ new_messages:
+ one: "%{count} ny melding"
+ other: "%{count} nye meldingar"
+ no_messages_yet: Du har ingen meldingar endå. Kanskje du kan prøve å kome i kontakt med %{people_mapping_nearby_link}?
+ old_messages:
+ one: "%{count} gamal melding"
+ other: "%{count} gamle meldingar"
+ outbox: utboks
+ people_mapping_nearby: folk i nærleiken som lagar kart
+ subject: Emne
+ title: Innboks
+ mark:
+ as_read: Melding markert som lese
+ as_unread: Melding markert som ulese
+ message_summary:
+ delete_button: Slett
+ read_button: Marker som lese
+ reply_button: Svar
+ unread_button: Marker som ulese
+ new:
+ back_to_inbox: Tilbake til innboks
+ body: Kropp
+ limit_exceeded: Du har sendt mange meldingar i det siste. Vent ein stind før du prøver å sende fleire.
+ message_sent: Melding sendt
+ send_button: Send
+ send_message_to: Send ei ny melding til %{name}
+ subject: Emne
+ title: Send melding
+ no_such_message:
+ body: Det er inga melding med den ID-en.
+ heading: Inga melding funne
+ title: Inga melding funne
+ no_such_user:
+ body: Det er ingen brukar med det namnet.
+ heading: Ingen brukar funnet
+ title: Ingen brukar funnet
+ outbox:
+ date: Dato
+ inbox: innboks
+ messages:
+ one: Du har %{count} sendt melding
+ other: Du har %{count} sendte meldingar
+ my_inbox: Min %{inbox_link}
+ no_sent_messages: Du har ikkje sendt nokre meldingar endå. Kanskje du kan prøve å kome i kontakt med %{people_mapping_nearby_link}?
+ outbox: utboks
+ people_mapping_nearby: folk i nærleiken som lagar kart
+ subject: Emne
+ title: Utboks
+ to: Til
+ read:
+ back_to_inbox: Tilbake til innboks
+ back_to_outbox: Tilbake til utboks
+ date: Dato
+ from: Frå
+ reading_your_messages: Lesar meldingane dine
+ reading_your_sent_messages: Les dei sende meldingane dine
+ reply_button: Svar
+ subject: Emne
+ title: Les melding
+ to: Til
+ unread_button: Marker som ulese
+ wrong_user: Du er logga inn som «%{user}», men meldinga du ynskjer å lese vart ikkje send til den brukaren. Logg inn som korrekt brukar for å lese.
+ reply:
+ wrong_user: Du er logga inn som «%{user}», men meldinga du ynskjer å svare på vart ikkje send til den brukaren. Logg inn som korrekt brukar for å svare.
+ sent_message_summary:
+ delete_button: Slett
+ notifier:
+ diary_comment_notification:
+ footer: Du kan òg lese kommentaren på %{readurl} og du kan kommentere på %{commenturl} eller svare på %{replyurl}
+ header: "%{from_user} har kommentert på ditt siste OpenStreetMap-dagbokinnlegg med emnet %{subject}:"
+ hi: Hei %{to_user},
+ subject: "[OpenStreetMap] %{user} kommenterte på ein oppføring i dagboka di"
+ email_confirm:
+ subject: "[OpenStreetMap] Stadfest di e-postadresse"
+ email_confirm_html:
+ click_the_link: Om dette er deg, vennligst klikk på lenkja under for å stadfeste endringa.
+ greeting: Hei,
+ hopefully_you: Nokre (vonleg deg) ynskjer å endre e-postadressen for %{server_url} til %{new_address}.
+ email_confirm_plain:
+ click_the_link: Viss det er deg, klikk lenkja nedanfor for å stadfeste endringa.
+ greeting: Hei,
+ hopefully_you_1: Nokre (vonleg deg) ynskjer å endre e-postadressen for
+ hopefully_you_2: "%{server_url} til %{new_address}."
+ friend_notification:
+ befriend_them: Du kan òg leggje dei til som ven på %{befriendurl}.
+ had_added_you: "%{user} har lagt deg til som ven på OpenStreetMap."
+ see_their_profile: Du kan sjå profilen deira på %{userurl}.
+ subject: "[OpenStreetMap] %{user} la deg til som ein ven"
+ gpx_notification:
+ and_no_tags: og ingen merkelappar.
+ and_the_tags: "og følgjande merkelappar:"
+ failure:
+ failed_to_import: "klarte ikkje importere. Her er feilen:"
+ import_failures_url: http://wiki.openstreetmap.org/wiki/GPX_import_failures
+ more_info_1: Meir informasjon om feil ved import av GPX og korleis du kan unngå
+ more_info_2: "dei kan finnast hos:"
+ subject: "[OpenStreetMap] Feil under import av GPX"
+ greeting: Hei,
+ success:
+ loaded_successfully: lasta med %{trace_points} av %{possible_points} moglege punkt.
+ subject: "[OpenStreetMap] Vellukka import av GPX"
+ with_description: med skildring
+ your_gpx_file: Det ser ut som GPX-fila di
+ lost_password:
+ subject: "[OpenStreetMap] Førespurnad om nullstilling av passord"
+ lost_password_html:
+ click_the_link: Viss det er deg, klikk lenkja nedanfor for å nullstille passordet ditt.
+ greeting: Hei,
+ hopefully_you: Nokre (vonleg deg) har bede å nullstille passordet for OpenStreetMap-kontoen knytt til denne e-postadressa.
+ lost_password_plain:
+ click_the_link: Om dette er deg, vennligst klikk på lenkja under for å tilbakestille passordet.
+ greeting: Hei,
+ hopefully_you_1: Nokre (moglegvis deg) har bede om å tilbakestille passordet på denne
+ hopefully_you_2: e-postadressa for openstreetmap.org-konto.
+ message_notification:
+ footer1: Du kan òg lese meldinga på %{readurl}
+ footer2: og du kan svare til %{replyurl}
+ header: "%{from_user} har sendt deg ei melding gjennom OpenStreetMap med emnet %{subject}:"
+ hi: Hei %{to_user},
+ subject_header: "[OpenStreetMap] %{subject}"
+ signup_confirm:
+ subject: "[OpenStreetMap] Stadfest di e-postadresse"
+ signup_confirm_html:
+ ask_questions: Du kan stille spørsmål du har om OpenStreetMap på vårt <a href="http://help.openstreetmap.org/">spørsmål og svar-nettsted</a>.
+ click_the_link: Viss dette er deg, så er du velkomen! Klikke lenkja nedanfor for å stadfeste kontoen og les litt vidare for meir informasjon om OpenStreetMap
+ current_user: Ei liste over noverande brukarar i kategoriar, basert på kor i verda dei er, er tilgjengeleg frå <a href="http://wiki.openstreetmap.org/wiki/Category:Users_by_geographical_region">Category:Users_by_geographical_region</a>.
+ get_reading: Start å lese om OpenStreetMap <a href="http://wiki.openstreetmap.org/wiki/Beginners%27_guide">på wikien</a>, få med deg dei siste nyhenda via <a href="http://blog.openstreetmap.org/">OpenStreetMap-bloggen</a> eller <a href="http://twitter.com/openstreetmap">Twitter</a>. Eller bla gjennom OpenStreetMaps grunnlegg Steve Coasts <a href="http://www.opengeodata.org/">OpenGeoData-blogg</a> for heile historia til prosjektet, som òg har <a href="http://www.opengeodata.org/?cat=13">engelske podkaster</a> du kan lytte til.
+ greeting: Hei der!
+ hopefully_you: Nokre (vonleg deg) ynskjer å opprette ein konto på
+ introductory_video: Du kan sjå ein %{introductory_video_link}.
+ more_videos: Det er %{more_videos_link}.
+ more_videos_here: fleire videoar her
+ user_wiki_page: Det vert rådt til at du opprettar ein brukerside på wiki-en som inkluderer kategorimerker som viser der du er, f.eks <a href="http://wiki.openstreetmap.org/wiki/Category:Users_in_norway">[[Category:Users_in_norway]]</a>.
+ video_to_openstreetmap: introduksjonsvideo til OpenStreetMap
+ wiki_signup: Du vil kanskje <a href="http://wiki.openstreetmap.org/index.php?title=Special:Userlogin&type=signup&returnto=Main_page">melde deg inn i OpenStreetMap-wikien</a> òg.
+ signup_confirm_plain:
+ ask_questions: "Du kan stille spørsmål du har om OpenStreetMap på vår spørsmål og svar-nettsted:"
+ blog_and_twitter: "Få med deg dei siste nyhenda gjennom OpenStreetMap-bloggen eller Twitter:"
+ click_the_link_1: Om dette er deg, velkomen! Vennligst klikk på lenkja under for å stadfeste din
+ click_the_link_2: konto og les litt vidare for meir informasjon om OpenStreetMap.
+ current_user_1: Ei liste over noverande brukarar i kategoriar, basert på kor i verda
+ current_user_2: "dei er, er tilgjengeleg frå:"
+ greeting: Hei der!
+ hopefully_you: Nokre (vonleg deg) ynskjer å opprette ein konto på
+ introductory_video: "Du kan sjå ein introduksjonsvideo for OpenStreetMap her:"
+ more_videos: "Det er fleire videoar her:"
+ opengeodata: "OpenGeoData.org er bloggen til OpenStreetMap-grunnlegg Steve Coast, og han har podcast-er òg:"
+ the_wiki: "Les meir om OpenStreetMap på wikien:"
+ the_wiki_url: http://wiki.openstreetmap.org/wiki/Beginners%27_guide
+ user_wiki_1: Det vert rådt til at du opprettar ein brukerside på wiki-en som inkluderer
+ user_wiki_2: kategorimerker som viser kor du er, f.eks [[Category:Users_in_norway]].
+ wiki_signup: "Du vil kanskje òg melde deg inn i OpenStreetMap-wikien på:"
+ wiki_signup_url: http://wiki.openstreetmap.org/index.php?title=Special:Userlogin&type=signup&returnto=Main_page
+ oauth:
+ oauthorize:
+ allow_read_gpx: les dine private GPS-spor.
+ allow_read_prefs: les brukarinnstillingane dine.
+ allow_to: "Tillat klientprogrammet å gjere:"
+ allow_write_api: endre kartet.
+ allow_write_diary: opprett dagbokoppføringer, kommentarar og finn venner.
+ allow_write_gpx: last opp GPS-spor.
+ allow_write_prefs: Innstillingane vart lagra.
+ request_access: Applikasjonen %{app_name} ber om tilgjenge til kontoen din, %{user}. Sjekk om du vil at applikasjonen skal ha følgjande høve. Du kan velje så mange eller få du vil.
+ revoke:
+ flash: Du sletta nøkkelen for %{application}
+ oauth_clients:
+ create:
+ flash: Vellukka registrering av informasjonen
+ destroy:
+ flash: Øydelagt klientapplikasjonsregistreringen
+ edit:
+ submit: Rediger
+ title: Rediger programvara di
+ form:
+ allow_read_gpx: les deira private GPS-spor.
+ allow_read_prefs: les brukerinnstillingane deira.
+ allow_write_api: endre kartet.
+ allow_write_diary: opprett dagbokoppføringer, kommentarar og finn vener.
+ allow_write_gpx: last opp GPS-spor.
+ allow_write_prefs: endre brukerinnstillingene deira.
+ callback_url: "URL for tilbakekall:"
+ name: Namn
+ requests: "Be om følgjande løyve frå brukaren:"
+ required: Påkrevd
+ support_url: Støytte-URL
+ url: URL til hovedapplikasjonen
+ index:
+ application: Applikasjonsnavn
+ issued_at: Utskrive
+ list_tokens: "Følgjande nøklar er utskrivne til program i namnet ditt:"
+ my_apps: Mine klientapplikasjoner
+ my_tokens: Dei autoriserte applikasjonane mine
+ no_apps: Har du eit program som du vil registrere for bruk med oss gjennom %{oauth}-standarden? Då må du først registrere ditt nettprogram før det kan gjere OAuth-førespurnader til denne tenesta.
+ register_new: Registrer applikasjonen din
+ registered_apps: "Du har registrert følgjande klientapplikasjoner:"
+ revoke: Tilbakekall!
+ title: Mine OAuth-detaljar
+ new:
+ submit: Registrer
+ title: Registrer ein ny applikasjon
+ not_found:
+ sorry: Klarte ikkje finne den %{type}-en.
+ show:
+ access_url: URL for tilgangensnøkkel
+ allow_read_gpx: les deira private GPS-spor.
+ allow_read_prefs: les brukerinnstillingene deira.
+ allow_write_api: endre kartet.
+ allow_write_diary: opprett dagbokoppføringer, kommentarar og finn venner.
+ allow_write_gpx: last opp GPS-spor.
+ allow_write_prefs: endre brukerinnstillingene deira.
+ authorize_url: "Godkjenn URL:"
+ edit: Rediger detaljar
+ key: "Forbrukernøkkel:"
+ requests: "Ber om følgjande løyve frå brukaren:"
+ secret: "Forbrukerhemmelighet:"
+ support_notice: Me støttar HMAC-SHA1 (tilrådt) så vel som rein tekst i ssl-modus.
+ title: OAuth-detaljar for %{app_name}
+ url: "URL for forespørelsnøkkel:"
+ update:
+ flash: Oppdaterte klientinformasjonen
+ printable_name:
+ with_id: "%{id}"
+ with_name: "%{name} (%{id})"
+ with_version: "%{id}, v%{version}"
+ site:
+ edit:
+ anon_edits: (%{link})
+ anon_edits_link: http://wiki.openstreetmap.org/wiki/Disabling_anonymous_edits
+ anon_edits_link_text: Finn ut kvifor dette er tilfellet.
+ flash_player_required: Du treng ein Flash-spelar for å kunne bruke Potlatch, Flasheditoren for OpenStreetMap. Du kan <a href="http://www.adobe.com/shockwave/download/index.cgi?P1_prod_version=ShockwaveFlash">laste ned Flash Player frå Adobe.com</a>. <a href="http://wiki.openstreetmap.org/wiki/Editing">Fleire andre alternativ</a> er òg tilgjengeleg for redigering av OpenStreetMap.
+ no_iframe_support: Nettlesaren din støttar ikkje HTML iframes som er naudsynt for denne eigenskapen.
+ not_public: Du har ikkje sett redigeringane dine til å vere offentlege.
+ not_public_description: Du kan ikkje lenger redigere kartet om du ikkje gjer det. Du kan gjere redigeringane dine offentlege frå din %{user_page}.
+ potlatch2_not_configured: Potlatch 2 har ikkje vorte konfigurert - sjå http://wiki.openstreetmap.org/wiki/The_rails_port#Potlatch_2 for meir informasjon
+ potlatch2_unsaved_changes: Du har endringar som ikkje er lagra. (For å lagre i Potlatch 2, må du klikke lagre.)
+ potlatch_unsaved_changes: Du har ulagra endringar. (For å lagre i Potlatch, må du fjerne markeringa av gjeldande veg eller punkt viss du redigerer i live-modues eller klikke lagre viss du har ein lagreknapp.)
+ user_page_link: brukarside
+ index:
+ js_1: Du har ein nettleser som ikkje støttar JavaScript eller så har du slått av JavaScript.
+ js_2: OpenStreetMap brukar JavaScript på kartsidene.
+ js_3: Viss du ikkje kan slå på JavaScript, så kan du prøve dei <a href="http://tah.openstreetmap.org/Browse/">statiske Tile sitt@Home-kartsidene</a>.
+ license:
+ license_name: Creative Commons Navngivelse-Del på like vilkår 2.0
+ license_url: https://creativecommons.org/licenses/by-sa/2.0/deed.no
+ notice: Lisensiert under lisensen %{license_name} av %{project_name} og bidragsytarane deira.
+ project_name: OpenStreetMap-prosjekt
+ project_url: http://openstreetmap.org
+ permalink: Permanent lenkje
+ remote_failed: Klarte ikkje redigere - forsikre deg at JOSM eller Merkaartor er lasta og fjernkontrollvalget er aktivert
+ shortlink: Kort lenkje
+ key:
+ map_key: Kartforklaring
+ map_key_tooltip: Forklaring for kartet
+ table:
+ entry:
+ admin: Administrativ grense
+ allotments: Kolonihagar
+ apron:
+ - terminal
+ - terminal
+ bridge: Sort kant = bru
+ bridleway: Rideveg
+ brownfield: Tidlegare industriområde
+ building: Viktig bygning
+ byway: Stikkveg
+ cable:
+ - Kabelvogn
+ - stolheis
+ cemetery: Gravplass
+ centre: Sportssenter
+ commercial: Kommersielt område
+ common:
+ - Vanleg
+ - snever
+ construction: Vegar under konstruksjon
+ cycleway: Sykkelveg
+ destination: Destinasjonstilgang
+ farm: Gard
+ footway: Gangveg
+ forest: Skog
+ golf: Golfbane
+ heathland: Heilandskap
+ industrial: Industriområde
+ lake:
+ - Innsjø
+ - reservoar
+ military: Militært område
+ motorway: Motorveg
+ park: Park
+ permissive: Betinget tilgjenge
+ pitch: Sportsarena
+ primary: Primærveg
+ private: Privat tilgjenge
+ rail: Jernbane
+ reserve: Naturreservat
+ resident: Boligområde
+ retail: Detaljsalgområde
+ runway:
+ - Flystripe
+ - taksebane
+ school:
+ - Skule
+ - universitet
+ secondary: Sekundærveg
+ station: Jernbanestasjon
+ subway: Undergrunnsbane
+ summit:
+ - Topp
+ - fjelltopp
+ tourist: Turistattraksjon
+ track: Spor
+ tram:
+ - Bybane
+ - trikk
+ trunk: Hovedveg
+ tunnel: Streka kant = tunnel
+ unclassified: Uklassifisert veg
+ unsurfaced: Veg utan dekke
+ wood: Ved
+ search:
+ search: Søk
+ search_help: "Døme: 'Lindesnes', 'Karl Johans gate', 'Sør-Trøndelag' og <a href='http://wiki.openstreetmap.org/wiki/Search'>fleire ...</a>"
+ submit_text: Gå
+ where_am_i: Kor er eg?
+ where_am_i_title: Bruk søkjemotoren til å skildre gjeldande lokasjon.
+ sidebar:
+ close: Lukk
+ search_results: Søkjeresultat
time:
formats:
- friendly: "%e %B %Y kl %H:%M"
+ friendly: "%e %B %Y kl. %H:%M"
trace:
+ create:
+ trace_uploaded: Din GPX-fil er lasa opp og ventar på å verte sett inn i databasen. Dette skjer vanlegvis innan ein halvtime og ein e-post vert send til deg når det er gjort.
+ upload_trace: Last opp GPS-spor
+ delete:
+ scheduled_for_deletion: Spor planlagt sletta
edit:
+ description: "Skildring:"
download: last ned
+ edit: rediger
+ filename: "Filnavn:"
+ heading: Redigerer spor %{name}
+ map: kart
+ owner: "Eigar:"
+ points: "Punkter:"
+ save_button: Lagre endringar
+ start_coord: "Startkoordinat:"
+ tags: "Markelapper:"
+ tags_help: kommaseparert
+ title: Redigerer spor %{name}
+ uploaded_at: "Last opp:"
+ visibility: "Synlighet:"
+ visibility_help: kva tyder dette?
+ visibility_help_url: http://wiki.openstreetmap.org/wiki/Visibility_of_GPS_traces
+ list:
+ public_traces: Offentleg GPS-spor
+ public_traces_from: Offentlege GPS-spor frå %{user}
+ tagged_with: merkte med %{tags}
+ your_traces: Dine GPS-spor
+ make_public:
+ made_public: Spor gjort offentleg
+ no_such_user:
+ body: Beklagar, det finst ingen brukar med namnet %{user}. Vennligst sjekk at du har stava riktig, eller kanskje lenkja du følgde er feil.
+ heading: Brukaren %{user} finst ikkje
+ title: Ingen brukar funnet
+ offline:
+ heading: GPX-lagring er utilgjengelig
+ message: Systemet for opplasting og lagring av GPX-filer er ikkje tilgjengeleg for augneblunken.
+ offline_warning:
+ message: Systemet for opplasting av GPX-filer er ikkje tilgjengeleg for augneblunken.
trace:
+ ago: "%{time_in_words_ago} sidan"
+ by: av
count_points: "%{count} punkt"
+ edit: rediger
+ edit_map: Rediger kart
+ identifiable: IDENTIFISERBAR
in: i
map: kart
+ more: meir
+ pending: VENTANDE
+ private: PRIVAT
+ public: OFFENTLEG
+ trace_details: Vis detaljar for spor
+ trackable: SPORBAR
+ view_map: Vis kart
+ trace_form:
+ description: "Skildring:"
+ help: Hjelp
+ help_url: http://wiki.openstreetmap.org/wiki/Upload
+ tags: "Merkelappar:"
+ tags_help: kommaseparert
+ upload_button: Last opp
+ upload_gpx: "Last opp GPX-fil:"
+ visibility: "Synligheit:"
+ visibility_help: kva tyder dette?
+ visibility_help_url: http://wiki.openstreetmap.org/wiki/Visibility_of_GPS_traces
+ trace_header:
+ see_all_traces: Sjå alle spor
+ see_your_traces: Sjå alle spora dine
+ traces_waiting: Du har %{count} spor som ventar på opplasting. Du bør vurdere å la desse verte ferdig før du lastar opp fleire spor slik at du ikkje blokkerer køen for andre brukarar.
+ upload_trace: Last opp eit GPS-spor
+ trace_optionals:
+ tags: Merkelappar
+ trace_paging_nav:
+ next: Neste »
+ previous: « Forrige
+ showing_page: Viser side %{page}
view:
+ delete_track: Slett dette sporet
+ description: "Skildring:"
download: last ned
- filename: "Filnamn:"
+ edit: rediger
+ edit_track: Rediger dette sporet
+ filename: "Filnavn:"
+ heading: Viser spor %{name}
map: kart
- none: Inga
+ none: Ingen
owner: "Eigar:"
+ pending: VENTANDE
+ points: "Punkter:"
+ start_coordinates: "Startkoordinat:"
+ tags: "Markelappar:"
+ title: Viser spor %{name}
+ trace_not_found: Spor ikkje funnet!
+ uploaded: "Lasta opp:"
+ visibility: "Synligheit:"
+ visibility:
+ identifiable: Identifiserbar (vist i sporlista og som identifiserbare, sorterte punkt med tidsstempel)
+ private: Privat (berre delt som anononyme, usorterte punkt)
+ public: Offentleg (vist i sporlista og som anononyme, usorterte punkt)
+ trackable: Sporbar (berre delt som anonyme, sorterte punkt med tidsstempel)
user:
account:
+ contributor terms:
+ agreed: Du har godkjent dei nye bidragsytervilkåra
+ agreed_with_pd: Du har òg opplyst at du ansar redigeringane dine for å vere offentleg eigedom (Public Domain).
+ heading: "Bidragsytervilkår:"
+ link: http://www.osmfoundation.org/wiki/License/Contributor_Terms
+ link text: kva er dette?
+ not yet agreed: Du har endå ikkje godkjent dei nye bidragsytervilkåra.
+ review link text: Vennligst følg denne lenkja når det passar deg, for å sjå igjennom og godkjenne dei nye bidragsytervilkåra.
+ current email address: "Noverande e-postadresse:"
+ delete image: Fjern gjeldande bilete
+ email never displayed publicly: " (vis aldri offentleg)"
+ flash update success: Brukerinformasjon oppdatert.
+ flash update success confirm needed: Brukerinformasjon oppdatert. Sjekk eposten din for å stadfeste din epostadresse.
+ home location: "Heimeposisjon:"
image: "Bilete:"
+ image size hint: (kvadratiske bilete som er minst 100x100 fungerer best)
+ keep image: Hald på gjeldande bilete
+ latitude: "Breiddegrad:"
+ longitude: "Lengdegrad:"
+ make edits public button: Gjer alle redigeringane mine offentleg
+ my settings: Innstellingane mine
+ new email address: "Ny e-postadresse:"
+ new image: Legg til eit bilete
+ no home location: Du har ikkje skrive inn din heimelokasjon.
+ openid:
+ link: http://wiki.openstreetmap.org/wiki/OpenID
+ link text: kva er dette?
+ openid: "OpenID:"
+ preferred editor: Foretrukket redigeringsverktøy
+ preferred languages: "Foretrukne språk:"
+ profile description: "Profilbeskrivelse:"
+ public editing:
+ disabled: Deaktivert og kan ikkje redigere data. Alle tidlegare redigeringar er anonyme.
+ disabled link text: kvifor can eg ikkje redigere?
+ enabled: Aktivert. Ikkje anonym og kan redigere data.
+ enabled link: http://wiki.openstreetmap.org/wiki/Anonymous_edits
+ enabled link text: kva er dette?
+ heading: "Offentleg redigering:"
+ public editing note:
+ heading: Offentleg redigering
+ text: For augneblunken er redigeringane dine anonyme og folk kan ikkje sende deg meldingar eller sjå posisjonen din. For å vise kva du redigerte og tillate folk å kontakte deg gjennom nettsiden, klikk på knappen nedanfor. <b>Sidan overgangen til 0.6 API-et, kan berre offentlege brukarar redigere kartdata.</b> ( <a href="http://wiki.openstreetmap.org/wiki/Anonymous_edits">Finn ut kvifor</a> ). <ul><li> di e-postadresse vil ikkje avslørast ved å verte offentleg. </li><li> Denne handlinga kan ikkje omgjerast, og alle nye brukarar er no offentleg tilgjengeleg som standard. </li></ul>
+ replace image: Erstatt gjeldande bilete
+ return to profile: Returner til profil
+ save changes button: Lagre endringar
+ title: Rediger konto
+ update home location on click: Oppdater hjemmelokasjon når eg klikkar på kartet?
+ confirm:
+ already active: Denne kontoen har allereie stadfesta.
+ before you start: Me veit du sannsynlegvis har hastverk med å byrja å lage kart, men før du gjer dette kan du fylle inn litt informasjon om deg sjølv i skjemaet under.
+ button: Stadfest
+ heading: Stadfest ein brukerkonto
+ press confirm button: Klikk bekreftknappen nedanfor for å aktivare kontoen din.
+ reconfirm: Viss det er ei stund sidan du registrerte deg kan det hende du må <a href=%{reconfirm}">sende deg sjølv ein ny bekreftelsesepost</a>.
+ success: Kontoen din er stadfesta - takk for at du registrerte deg.
+ unknown token: Den koda ser ikkje ut til å eksistere.
+ confirm_email:
+ button: Stadfest
+ failure: Ei e-postadresse er allereie stadfesta med denne nøkkelen.
+ heading: Stadfest endring av e-postadresse
+ press confirm button: Klikk bekreftknappen nedanfor for å stadfeste den nye e-postadressa.
+ success: E-postadressen din er stadfesta - takk for at du registrerte deg.
+ confirm_resend:
+ failure: Fann ikkje brukaren %{name}.
+ success: Me har sendt ein ny bekreftelsesmelding til %{email} og så snart du stadfestar kontoen din kan du byrje å lage kart.<br /><br />Om du brukar eit antispamsystem som sender bekreftelsesforspørsler, kontrollar at du har kvitelista webmaster@openstreetmap.org sidan me ikkje kan svar på bekreftelsesforespørsler.
+ filter:
+ not_an_administrator: Du må vere administrator for å gjere det.
+ go_public:
+ flash success: Alle redigeringane dine er no offentleg, og du har lov til å redigere.
+ list:
+ confirm: Stadfest valde brukarar
+ empty: Ingen samsvarande brukarar funne
+ heading: Brukarar
+ hide: Skjul valde brukarar
+ showing:
+ one: Viser side %{page} (%{first_item} av %{items})
+ other: Viser side %{page} (%{first_item}-%{last_item} av %{items})
+ summary: "%{name} oppretta frå %{ip_address} den %{date}"
+ summary_no_ip: "%{name} oppretta %{date}"
+ title: Brukarar
+ login:
+ account is suspended: Beklagar, kontoen din er deaktivert på grunn av mistenkjeleg aktivitet.<br />Vennligst kontakt <a href="%{webmaster}">webmaster</a> viss du ynskjer å diskutere dette.
+ account not active: Beklagar, kontoen din er ikkje aktivert enno.<br />Bruk lenkja i kontobekreftelseseposten for å aktivare kontoen din, eller <a href="%{reconfirm}">be om ein ny bekreftelsesepost</a>.
+ auth failure: Beklagar, kunne ikkje logge inn med den informasjonen
+ create account minute: Opprett ein konto. Det tek berre eitt minutt.
+ email or username: "E-postadresse eller brukernavn:"
+ heading: Logg inn
+ login_button: Logg inn
+ lost password link: Mista passordet ditt?
+ new to osm: Ny på OpenStreetMap?
+ no account: Har du ingen brukarkonto?
+ notice: <a href="http://www.osmfoundation.org/wiki/License/We_are_changing_the_license">Finn ut meir om OpenStreetMap sitt komande byte av lisens</a> (<a href="http://wiki.openstreetmap.org/wiki/ODbL/We_are_changing_the_license">omsetjingar</a>) (<a href="http://wiki.openstreetmap.org/wiki/Talk:ODbL/Upcoming">diskusjon</a>)
+ notice_terms: OpenStreetMap byter til ein ny lisens den 1. april 2012. Denne er akkurat så open som den noverande, men dei juridiske delene er mykje betre tilpassa vår kartdatabase. Me ynskjer å kunne halde fram å halde på bidraga dine til OpenStreetMap, men me kan berre gjere det viss du er samd med oss i å distribuere dei under den nye lisensen. Elles må me fjerne dei frå databasen.<br /><br />Vennligst logg inn, og bruk nokre sekund på å gå igjennom og akseptere dei nye betingelsene. Takk!
+ openid: "%{logo} OpenID:"
+ openid invalid: Beklagar, din OpenID ser ut til å vere dårleg formatert
+ openid missing provider: Beklagar, fekk ikkje kontakt med din OpenID-leverandør
+ openid_logo_alt: Logg inn med ein OpenID
+ openid_providers:
+ aol:
+ alt: Logg inn med ein AOL OpenID
+ title: Logg inn med AOL
+ google:
+ alt: Logg inn med ein Google OpenID
+ title: Logg inn med Google
+ myopenid:
+ alt: Logg inn med ein myOpenID OpenID
+ title: Logg inn med myOpenID
+ openid:
+ alt: Logg inn med ein OpenID-URL
+ title: Logg inn med OpenID
+ wordpress:
+ alt: Logg inn med ein Wordpress OpenID
+ title: Logg inn med Wordpress
+ yahoo:
+ alt: Logg inn med ein Yahoo OpenID
+ title: Logg inn med Yahoo
+ password: "Passord:"
+ register now: Registrer deg no
+ remember: "Hugs meg:"
+ title: Logg inn
+ to make changes: For å gjere endringar på OpenStreetMap-data, må du ha ein konto.
+ with openid: "Alternativt kan du bruke din OpenID for å logge inn:"
+ with username: "Har du allereie ein OpenStreetMap-konto? Logg inn med brukernavnet og passordet ditt:"
+ logout:
+ heading: Logg ut frå OpenStreetMap
+ logout_button: Logg ut
+ title: Logg ut
+ lost_password:
+ email address: "E-postadresse:"
+ heading: Gløymt passord?
+ help_text: Skriv inn e-postadressa du brukte for å registrere deg, og me vil sende deg ei lenkje som du kan bruke til å nullstille passordet ditt.
+ new password button: Nullstill passord
+ notice email cannot find: Klarte ikkje finne den e-postadressa. Beklagar.
+ notice email on way: Synd at du mista det, men ein e-post er på veg slik at du kan tilbakestille det snart.
+ title: Gløymt passord
+ make_friend:
+ already_a_friend: Du er allereie venner med %{name}.
+ failed: Klarte ikkje leggje til %{name} som ven.
+ success: "%{name} er no venen din."
+ new:
+ confirm email address: "Stadfest e-postadresse:"
+ confirm password: "Stadfest passord:"
+ contact_webmaster: Kontakt <a href="mailto:webmaster@openstreetmap.org">webmaster</a> for å opprette ein konto. Me vil prøve å handsame førespurnaden så fort som mogleg.
+ continue: Hald fram
+ display name: "Visningsnavn:"
+ display name description: Ditt offentleg framviste brukernavn. Du kan endre dette seinare i innstellingane.
+ email address: "E-postadresse:"
+ fill_form: Fyll ut skjemaet og me vil sende deg ein e-post for å aktivare kontoen din.
+ flash create success message: Takk for at du registrerte deg. Me har sendt ein bekreftelsesmelding til %{email} og så snart du stadfestar kontoen din kan du byrje å lage kart.<br /><br />Om du brukar eit antispamsystem som sender bekreftelsesforspørsler, kontrollar at du har hvitelistet webmaster@openstreetmap.org sidan me ikkje kan svare på bekreftelsesforespørsler.
+ heading: Opprett ein brukerkonto
+ license_agreement: Når du stadfestar kontoen din må du godkjenne <a href="http://www.osmfoundation.org/wiki/License/Contributor_terms">bidragsytervilkåra</a>.
+ no_auto_account_create: Beklagelegvis kan me for augneblunken ikkje opprette ein konto for deg automatisk.
+ not displayed publicly: Ikkje vist offentleg (sjå <a href="http://wiki.openstreetmap.org/wiki/Privacy_policy" title="Personvernpolitikk for Wiki-en inklusiv avsnitt om e-postadressser">vår personvernpolitikk</a>)
+ openid: "%{logo} OpenID:"
+ openid association: "<p>Din OpenID er ikkje tilknytta ein OpenStreetMap-konto enno.</p>\n<ul>\n <li>Viss du er ny på OpenStreetMap, opprett ein ny konto ved hjelp av skjemaet nedanfor.</li>\n <li>\n Viss du allereie har ein konto kan du logge inn på kontoen din\n ved hjelp av brukarnamnet og passordet ditt og deretter knyte kontoen\n til din OpenID i brukarinnstillingane.\n </li>\n</ul>"
+ openid no password: Med OpenID vert ikkje kravd eit passord, men nokon ekstraverktøy eller ein tenar kan enno krevje eit.
+ password: "Passord:"
+ terms accepted: Takk for at du godtok dei nye bidragsytervilkårene!
+ terms declined: Me beklagar at du har vedteke å ikkje akseptere dei nye bidragsytervilkårene. For meir informasjon, sjå <a href="%{url}">denne wiki-sida</a> .
+ terms declined url: http://wiki.openstreetmap.org/wiki/Contributor_terms_declined
+ title: Opprett konto
+ use openid: Alternativt kan du bruke %{logo} OpenID for å logge inn
+ no_such_user:
+ body: Det er ingen brukar med namnet %{user}. Sjekk om du har skrive namnet feil eller om lenkja du klikket er feil.
+ heading: Brukaren %{user} finst ikkje
+ title: Ingen brukar funnet
+ popup:
+ friend: Ven
+ nearby mapper: Brukarar i nærleiken
+ your location: Posisjonen din
+ remove_friend:
+ not_a_friend: "%{name} er ikkje ein av venene dine."
+ success: "%{name} vart fjerna frå venene dine"
+ reset_password:
+ confirm password: "Stadfest passord:"
+ flash changed: Passordet ditt er endra.
+ flash token bad: Kunne ikkje finne den nøkkelen. Sjekke URLen kanskje?
+ heading: Nullstill passord for %{user}
+ password: "Passord:"
+ reset: Nullstill passord
+ title: Nullstill passord
+ set_home:
+ flash success: Heimelokasjon lagra
+ suspended:
+ body: "<p>\nBeklagar, kontoen din har vorte automatisk deaktivert på grunn av mistenkjeleg aktivitet.\n</p>\n<p>\nDenne avgjerda vil gjennomgåast av ein administrator snart, eller du kan kontakte %{webmaster} viss du ynskjer å diskutere dette."
+ heading: Konto stengt
+ title: Konto stengt
+ webmaster: webmaster
+ terms:
+ agree: Eg godkjenner
+ consider_pd: I tillegg til den ovannemnde avtala ansar eg bidraga mine for å vere i public domain
+ consider_pd_why: kva er dette?
+ consider_pd_why_url: http://www.osmfoundation.org/wiki/License/Why_would_i_want_my_contributions_to_be_public_domain
+ decline: Avslå
+ declined: http://wiki.openstreetmap.org/wiki/Contributor_Terms_Declined
+ guidance: "Informasjon for å hjelpe å forstå desse vilkåra: eit <a href=\"%{summary}\">menneskeleg lesbart sammendrag</a> og nokon <a href=\"%{translations}\">uformelle omsetjingar</a>"
+ heading: Bidragsytervilkåra
+ legale_names:
+ france: Frankrike
+ italy: Italia
+ rest_of_world: Resten av verda
+ legale_select: "Vel ditt bostedsland:"
+ read and accept: Les avtalen nedanfor og trykk på godkjenningsknappen for å stadfeste at du godtek vilkåra i denne avtalen for dei eksisterande og kommande bidraga dine.
+ title: Bidragsytervilkår
+ you need to accept or decline: Les og deretter anten godta eller avslå dei nye bidragsytervilkåra for å halde fram.
+ view:
+ activate_user: aktiver denne brukaren
+ add as friend: legg til som ein ven
+ ago: (%{time_in_words_ago} sidan)
+ block_history: vis mottekne blokkeringar
+ blocks by me: blokkeringar utført av meg
+ blocks on me: blokkeringane mine
+ comments: kommentarar
+ confirm: Stadfest
+ confirm_user: stadfest denne brukaren
+ create_block: blokkar denne brukaren
+ created from: "Oppretta frå:"
+ ct accepted: Akseptert %{ago} sidan
+ ct declined: Avslått
+ ct status: "Vilkåra til bidragsytar:"
+ ct undecided: Usikker
+ deactivate_user: deaktiver denne brukaren
+ delete_user: slett denne brukaren
+ description: Skildring
+ diary: dagbok
+ edits: redigeringar
+ email address: "E-postadresse:"
+ friends_changesets: Bla gjennom alle endringssett av vener
+ friends_diaries: Bla gjennom alle dagbokoppføringar av vener
+ hide_user: skjul denne brukaren
+ if set location: Viss du set posisjonen din, så vil eit fint kart og ting vert her vist. Du kan setje heimeposisjonen på di %{settings_link}-sida.
+ km away: "%{count}km unna"
+ latest edit: "Siste redigering %{ago}:"
+ m away: "%{count}m unna"
+ mapper since: "Brukar sidan:"
+ moderator_history: vis tildelte blokkeringar
+ my comments: mine kommentarar
+ my diary: mi dagbok
+ my edits: redigeringane mine
+ my settings: innstellingane mine
+ my traces: spora mine
+ nearby users: Andre næliggande brukarar
+ nearby_changesets: Bla gjennom alle endringssett av nærliggande brukarar
+ nearby_diaries: Bla gjennom alle dagbokoppføringar av nærliggande brukarar
+ new diary entry: ny dagbokoppføring
+ no friends: Du har ikkje lagt til nokon venner enno.
+ no nearby users: Det er ingen andre brukarar som innrømmer kartlegging i området ditt enno.
+ oauth settings: oauth-innstellingar
+ remove as friend: fjern som ven
+ role:
+ administrator: Denne brukaren er ein administrator
+ grant:
+ administrator: Gje administrator-tilgjenge
+ moderator: Gje moderator-tilgjenge
+ moderator: Denne brukaren er ein moderator
+ revoke:
+ administrator: Fjern administrator-tilgjenge
+ moderator: fjern moderator-tilgjenge
+ send message: send melding
+ settings_link_text: innstellingar
+ spam score: "Spamresultat:"
+ status: "Status:"
+ traces: spor
+ unhide_user: stopp å skjule denne brukaren
+ user location: Posisjonen til brukaren
+ your friends: Venene dine
+ user_block:
+ blocks_by:
+ empty: "%{name} har ikkje blokkert nokon enno."
+ heading: Liste over blokkeringar av %{name}
+ title: Blokkeringar av %{name}
+ blocks_on:
+ empty: "%{name} har ikkje vorte blokkert enno."
+ heading: Liste over blokkeringar av %{name}
+ title: Blokkeringar av %{name}
+ create:
+ flash: Oppretta ei blokkering av brukar %{name}.
+ try_contacting: Vennligst prøv å kontakte brukaren før du blokkerer dei og gje dei rimeleg med tid til å svare.
+ try_waiting: Vennligst prøv å gje brukaren rimeleg med tid til å svare før du blokkerer dei.
+ edit:
+ back: Vis alle blokkeringar
+ heading: Endrar blokkering av %{name}
+ needs_view: Må brukaren logge inn før denne blokkeringa vert fjerna?
+ period: Kor lengje, frå no, brukaren vil blokkerast frå API-et.
+ reason: Årsaka til kvifor %{name} vert blokkert. Vennligst ver så roleg og rimeleg som mogleg og oppgje så mange detaljar du kan om situasjonen. Hugs at ikkje alle brukarar forstår felleskapssjargongen så prøv å bruke lekmannsuttrykk.
+ show: Vis denne blokkeringa
+ submit: Oppdater blokkering
+ title: Endrar blokkering av %{name}
+ filter:
+ block_expired: Blokkeringa har allereie utløpt og kan ikkje endrast.
+ block_period: Blokkeringsperioden må vere ein av verdia som kan vert frå valde rullegardinen.
+ not_a_moderator: Du må vere ein moderator for å utføre den handlinga.
+ helper:
+ time_future: Sluttar om %{time}.
+ time_past: Slutta %{time} sidan.
+ until_login: Aktiv inntil brukaren loggar inn.
+ index:
+ empty: Ingen blokkeringar har vorte utførde enno.
+ heading: Liste over brukerblokkeringer
+ title: Brukerblokkeringer
+ model:
+ non_moderator_revoke: Må vere ein moderator for å tilbakekalle ei blokkering.
+ non_moderator_update: Må vere ein moderator for å opprette eller oppdatere ei blokkering.
+ new:
+ back: Vis alle blokkeringar
+ heading: Opprettar blokkering av %{name}
+ needs_view: Brukaren må logge inn før denne blokkeringa vert fjerna.
+ period: Kor lengje, frå no, brukaren vil blokkerast frå API-et.
+ reason: Årsaka til at %{name} vert blokkert. Vennligst ver så roleg og rimeleg som mogleg og gje så mange detaljar du kan om situasjonen, og husk på at meldinga vert synleg for offentligheita. Hugs på at ikkje alle brukarar forstår fellesskapssjargongen så prøv å bruke lekmannsuttrykk.
+ submit: Opprett blokkering
+ title: Opprettar blokkering av %{name}
+ tried_contacting: Eg har kontakta brukaren og bede dei stoppe.
+ tried_waiting: Eg har gjeve brukaren rimeleg med tid til å svare på desse kommunikasjonane.
+ not_found:
+ back: Tilbake til indeksen
+ sorry: Beklagar, brukerblokkeringen med ID %{id} vart ikkje funnen.
+ partial:
+ confirm: Er du sikker?
+ creator_name: Oppretta av
+ display_name: Blokkert brukar
+ edit: Rediger
+ not_revoked: (ikkje tilbakekalt)
+ reason: Årsak for blokkering
+ revoke: Tilbakekall!
+ revoker_name: Tilbakekalt av
+ show: Vis
+ status: Status
+ period:
+ one: 1 time
+ other: "%{count} timar"
+ revoke:
+ confirm: Er du sikker på at du vil tilbakekalle denne blokkeringa?
+ flash: Denne blokkeringa har vorte tilbakekalt.
+ heading: Tilbakekaller blokkering på %{block_on} av %{block_by}
+ past: Denne blokkeringa enda %{time} sidan og kan ikkje tilbakekalles no.
+ revoke: Tilbakekall!
+ time_future: Denne blokkeringa endar i %{time}
+ title: Tilbakekaller blokkering på %{block_on}
+ show:
+ back: Vis alle blokkeringar
+ confirm: Er du sikker?
+ edit: Rediger
+ heading: "%{block_on} blokkert av %{block_by}"
+ needs_view: Brukaren må logge inn før denne blokkeringa vert fjerna.
+ reason: "Årsak for blokkering:"
+ revoke: Tilbakekall!
+ revoker: "Tilbakekaller:"
+ show: Vis
+ status: Status
+ time_future: Sluttar om %{time}
+ time_past: Slutta %{time} sidan
+ title: "%{block_on} blokkert av %{block_by}"
+ update:
+ only_creator_can_edit: Bare moderatoren som oppretta denne blokkeringa kan endre han.
+ success: Blokkering oppdatert.
+ user_role:
+ filter:
+ already_has_role: Brukaren har allereie rollen %{role}.
+ doesnt_have_role: Brukaren har ikkje rollen %{role}.
+ not_a_role: Strengen "%{role}" er ikkje ei gyldig rolle.
+ not_an_administrator: Berre administratorar kan forandre rollar, og du er ikkje administrator.
+ grant:
+ are_you_sure: Er du sikker på at du vil gje rollen `%{role}' til brukaren `%{name}'?
+ confirm: Stadfest
+ fail: Kunne ikkje gje rollen "%{role}" til brukar "%{name}". Sjekk at brukaren og rollen er gyldig.
+ heading: Stadfest rolletildeling
+ title: Stadfest rolletildeling
+ revoke:
+ are_you_sure: Er du sikker på at du vil fjerne rollen "%{role}" frå brukaren "%{name}"?
+ confirm: Stadfest
+ fail: Kunne ikkje fjerne rollen "%{role}" frå brukar "%{name}". Sjekk at nytter og rolle er gyldig.
+ heading: Stadfest fjerning av rolle
+ title: Stadfest fjerning av rolle
# Export driver: syck-pecl
# Author: Ajank
# Author: BdgwksxD
+# Author: BeginaFelicysym
# Author: Deejay1
# Author: RafalR
# Author: Soeb
description_user_bbox: Zestawy zmian utworzone przez użytkownika %{user} w %{bbox}
heading: Zestawy zmian
heading_bbox: Zestawy zmian
+ heading_friend: Zestawy zmian
heading_user: Zestawy zmian
heading_user_bbox: Zestawy zmian
title: Zestawy zmian
licence: Licencja
longitude: "Dł:"
manually_select: Ręcznie zaznacz inny obszar
- mapnik_image: Obrazek z Mapnika
max: max
options: Opcje
osm_xml_data: Dane XML OpenStreetMap
- osmarender_image: Obrazek z Osmarender
output: Wynik
paste_html: Użyj podanego kodu HTML, aby umieścić na stronie
scale: Skala
map:
base:
cycle_map: Mapa Rowerowa
+ transport_map: Transport publiczny
site:
edit_disabled_tooltip: Powiększ, aby edytować mapę
edit_tooltip: Edytuje mapę
english_link: oryginalna angielska wersja
text: W przypadku konfliktu pomiędzy tym tłumaczeniem a %{english_original_link}, preferowana jest strona w języku angielskim.
title: Informacje o tłumaczeniu
- legal_babble: "<h2>Prawa autorskie i licencja</h2>\n<p>\nOpenStreetMap stanowi zbiór <i>wolnych danych</i>, udostępnianych na licencji <a href=\"http://creativecommons.org/licenses/by-sa/2.0/\">Creative Commons Attribution-ShareAlike 2.0</a> (CC-BY-SA).\n</p>\n<p>\nMożesz swobodnie kopiować, rozpowszechniać, przekazywać innym i dostosowywać nasze mapy i dane, pod warunkiem podania OpenStreetMap i jego użytkowników jako źródło. Jeśli zmienisz, przekształcisz lub wykorzystasz nasze mapy lub dane, wynik swojej pracy możesz rozpowszechniać tylko na podstawie tej samej licencji. <a href=\"http://creativecommons.org/licenses/by-sa/2.0/legalcode\">Pełen tekst licencji</a> dokładnie opisuje Twoje prawa i obowiązki.\n</p>\n\n<h3>Jak podać źródło</h3>\n<p>\nJeśli korzystasz z gotowej mapy OpenStreetMap, wymagane jest podanie źródła co najmniej w postaci „© użytkownicy OpenStreetMap, CC-BY-SA”. Jeśli korzystasz tylko z danych geograficznych, wymagane jest podanie źródła w postaci „Dane mapy © użytkownicy OpenStreetMap, CC-BY-SA”.\n</p>\n<p>\nO ile jest to możliwe, nazwa OpenStreetMap powinna być hiperłączem do <a href=\"http://www.openstreetmap.org/\">http://www.openstreetmap.org/</a>, zaś CC-BY-SA do <a href=\"http://creativecommons.org/licenses/by-sa/2.0/\">http://creativecommons.org/licenses/by-sa/2.0/</a>. Jeśli korzystasz z nośnika, który uniemożliwia tworzenie hiperłącz (np. druk na papierze), polecane jest odwołanie do stron internetowych www.openstreetmap.org (np. przez rozwinięcie nazwy OpenStreetMap do pełnego adresu internetowego) oraz www.creativecommons.org.\n</p>\n\n<h3>Dowiedz się więcej</h3>\n<p>\nWięcej informacji o możliwości wykorzystania danych OpenStreetMap można znaleźć w <a href=\"http://wiki.openstreetmap.org/wiki/Legal_FAQ\">Legal FAQ</a>.\n</p>\n<p>\nUżytkownicy OpenStreetMap powinni pamiętać, aby nigdy nie dodawać danych z jakichkolwiek źródeł chronionych prawami autorskimi (jak np. Google Maps i większość map drukowanych) bez wyraźnego pozwolenia właściciela praw autorskich.\n</p>\n<p>\nPomimo tego, że OpenStreetMap stanowi zbiór wolnych danych, nie jesteśmy w stanie udostępnić bezpłatnego interfejsu programistycznego (API) dla stron trzecich.\n\nZapoznaj się z naszymi <a href=\"http://wiki.openstreetmap.org/wiki/API_usage_policy\">Zasadami korzystania z API</a>, <a href=\"http://wiki.openstreetmap.org/wiki/Tile_usage_policy\">Zasadami korzystania z kafelków mapy</a> oraz <a href=\"http://wiki.openstreetmap.org/wiki/Nominatim#Usage_Policy\">Zasadami korzystania z Nominatima</a>.\n</p>\n\n<h3>Dane włączone do OpenStreetMap</h3>\n<p>\nWykorzystywana przez nas licencja CC-BY-SA wymaga, aby „oznaczyć twórcę w sposób właściwy dla wykorzystywanego nośnika lub środka przekazu”. Indywidualni użytkownicy OpenStreetMap nie wymagają oznaczenia w sposób bardziej szczegółowy niż „użytkownicy OpenStreetMap”. Jednak gdy do OpenStreetMap włączane są dane z narodowych instytucji kartograficznych lub z innych znaczących źródeł, może być właściwe, by oznaczyć twórcę bezpośrednio we włączanych danych bądź też na tej stronie.\n</p>\n<!--\nInformation for page editors\n\nThe following lists only those organisations who require attribution\nas a condition of their data being used in OpenStreetMap. It is not a\ngeneral catalogue of imports, and must not be used except when\nattribution is required to comply with the licence of the imported\ndata.\n\nAny additions here must be discussed with OSM sysadmins first.\n-->\n<ul id=\"contributors\">\n<li><strong>Australia</strong>: Zawiera dane o miejscowościach oparte na danych ''Australian Bureau of Statistics''.</li>\n<li><strong>Austria</strong>: Zawiera dane <a href=\"http://data.wien.gv.at/\">miasta Wiednia</a> na licencji <a href=\"http://creativecommons.org/licenses/by/3.0/at/deed.de\">CC-BY</a>.</li>\n<li><strong>Francja</strong>: Zawiera dane uzyskane z ''Direction Générale des Impôts''.</li>\n<li><strong>Kanada</strong>: Zawiera dane z GeoBase®, GeoGratis (© ''Department of Natural Resources Canada''), CanVec (© ''Department of Natural Resources Canada'') i StatCan (''Geography Division, Statistics Canada'').</li>\n<li><strong>Nowa Zelandia</strong>: Zawiera dane uzyskane z ''Land Information New Zealand''. Crown Copyright reserved.</li>\n<li><strong>Polska</strong>: Zawiera dane z <a href=\"http://www.ump.waw.pl/\">mapy UMP-pcPL</a>. Copyright użytkownicy UMP-pcPL.</li>\n<li><strong>Wielka Brytania</strong>: Zawiera dane ''Ordnance Survey''. © Crown copyright and database right 2010.</li>\n</ul>\n\n<p>\nWłączenie danych do OpenStreetMap nie musi oznaczać, że podmiot będący ich źródłem popiera OpenStreetMap, udziela jakiejkolwiek gwarancji lub ponosi jakąkolwiek odpowiedzialność.\n</p>"
+ legal_babble: "<h2>Prawa autorskie i licencja</h2>\n<p>\nOpenStreetMap stanowi zbiór <i>wolnych danych</i>, udostępnianych na licencji <a href=\"http://creativecommons.org/licenses/by-sa/2.0/\">Creative Commons Attribution-ShareAlike 2.0</a> (CC BY-SA).\n</p>\n<p>\nMożesz swobodnie kopiować, rozpowszechniać, przekazywać innym i dostosowywać nasze mapy i dane, pod warunkiem podania OpenStreetMap i jego użytkowników jako źródło. Jeśli zmienisz, przekształcisz lub wykorzystasz nasze mapy lub dane, wynik swojej pracy możesz rozpowszechniać tylko na podstawie tej samej licencji. <a href=\"http://creativecommons.org/licenses/by-sa/2.0/legalcode\">Pełen tekst licencji</a> dokładnie opisuje Twoje prawa i obowiązki.\n</p>\n\n<h3>Jak podać źródło</h3>\n<p>\nJeśli korzystasz z gotowej mapy OpenStreetMap, wymagane jest podanie źródła co najmniej w postaci „© użytkownicy OpenStreetMap, CC BY-SA”. Jeśli korzystasz tylko z danych geograficznych, wymagane jest podanie źródła w postaci „Dane mapy © użytkownicy OpenStreetMap, CC BY-SA”.\n</p>\n<p>\nO ile jest to możliwe, nazwa OpenStreetMap powinna być hiperłączem do <a href=\"http://www.openstreetmap.org/\">http://www.openstreetmap.org/</a>, zaś CC BY-SA do <a href=\"http://creativecommons.org/licenses/by-sa/2.0/\">http://creativecommons.org/licenses/by-sa/2.0/</a>. Jeśli korzystasz z nośnika, który uniemożliwia tworzenie hiperłącz (np. druk na papierze), zalecane jest kierowanie oglądających do stron internetowych www.openstreetmap.org (np. przez rozwinięcie nazwy OpenStreetMap do pełnego adresu internetowego) oraz www.creativecommons.org.\n</p>\n\n<h3>Dowiedz się więcej</h3>\n<p>\nWięcej informacji o możliwości wykorzystania danych OpenStreetMap można znaleźć w <a href=\"http://wiki.openstreetmap.org/wiki/Legal_FAQ\">Legal FAQ</a>.\n</p>\n<p>\nUżytkownicy OpenStreetMap powinni pamiętać, aby nigdy nie dodawać danych z jakichkolwiek źródeł chronionych prawami autorskimi (jak np. Google Maps i większość map drukowanych) bez wyraźnego pozwolenia właściciela praw autorskich.\n</p>\n<p>\nPomimo że OpenStreetMap stanowi zbiór wolnych danych, nie jesteśmy w stanie udostępnić bezpłatnego interfejsu programistycznego (API) dla programistów firm trzecich.\n\nZapoznaj się z naszymi <a href=\"http://wiki.openstreetmap.org/wiki/API_usage_policy\">Zasadami korzystania z API</a>, <a href=\"http://wiki.openstreetmap.org/wiki/Tile_usage_policy\">Zasadami korzystania z kafelków mapy</a> oraz <a href=\"http://wiki.openstreetmap.org/wiki/Nominatim#Usage_Policy\">Zasadami korzystania z Nominatima</a>.\n</p>\n\n<h3>Dane włączone do OpenStreetMap</h3>\n<p>\nWykorzystywana przez nas licencja CC BY-SA wymaga, aby „oznaczyć twórcę w sposób właściwy dla wykorzystywanego nośnika lub środka przekazu”. Indywidualni użytkownicy OpenStreetMap nie wymagają oznaczenia w sposób bardziej szczegółowy niż „użytkownicy OpenStreetMap”. Jednak gdy do OpenStreetMap włączane są dane z narodowych instytucji kartograficznych lub z innych znaczących źródeł, może być właściwe, by oznaczyć twórcę bezpośrednio we włączanych danych bądź dodać link do niego też na tej stronie.\n</p>\n<!--\nInformation for page editors\n\nThe following lists only those organisations who require attribution\nas a condition of their data being used in OpenStreetMap. It is not a\ngeneral catalogue of imports, and must not be used except when\nattribution is required to comply with the licence of the imported\ndata.\n\nAny additions here must be discussed with OSM sysadmins first.\n-->\n<ul id=\"contributors\">\n<li><strong>Australia</strong>: Zawiera dane o miejscowościach oparte na danych ''Australian Bureau of Statistics''.</li>\n<li><strong>Austria</strong>: Zawiera dane <a href=\"http://data.wien.gv.at/\">miasta Wiednia</a> na licencji <a href=\"http://creativecommons.org/licenses/by/3.0/at/deed.de\">CC BY</a>.</li>\n<li><strong>Francja</strong>: Zawiera dane uzyskane z ''Direction Générale des Impôts''.</li>\n<li><strong>Kanada</strong>: Zawiera dane z GeoBase®, GeoGratis (© ''Department of Natural Resources Canada''), CanVec (© ''Department of Natural Resources Canada'') i StatCan (''Geography Division, Statistics Canada'').</li>\n<li><strong>Nowa Zelandia</strong>: Zawiera dane uzyskane z ''Land Information New Zealand''. Crown Copyright reserved.</li>\n<li><strong>Polska</strong>: Zawiera dane z <a href=\"http://www.ump.waw.pl/\">mapy UMP-pcPL</a>. Copyright współtwórców UMP-pcPL.\n<a href=\"http://wiki.openstreetmap.org/wiki/UMP2OSM_Importing\"> Więcej o użyciu danych UMP przez OSM</a></li>\n<li><strong>Południowa Afryka</strong>: Zawiera dane pochodzące od <a href=\"http://www.ngi.gov.za/\">Chief Directorate:\n National Geo-Spatial Information</a>, Państwowe prawa autorskie zastrzeżone.\n</li>\n<li><strong>Wielka Brytania</strong>: Zawiera dane ''Ordnance Survey''. © Crown copyright and database right 2010.</li>\n</ul>\n\n<p>\nWłączenie danych do OpenStreetMap nie musi oznaczać, że podmiot będący ich źródłem popiera OpenStreetMap, udziela jakiejkolwiek gwarancji lub ponosi jakąkolwiek odpowiedzialność.\n</p>"
native:
mapping_link: rozpocząć tworzenie mapy
native_link: wersji po polsku
people_mapping_nearby: użytkownikami z Twojej okolicy
subject: Temat
title: Wiadomości odebrane
- you_have: Masz %{new_count} nowych i %{old_count} przeczytanych wiadomości.
mark:
as_read: Wiadomość została oznaczona jako przeczytana
as_unread: Wiadomość została oznaczona jako nieprzeczytana
subject: Temat
title: Wiadomości wysłane
to: Do
- you_have_sent_messages: Wysłaleś/aś %{count} wiadomości
read:
back_to_inbox: Powrót do wysłanych
back_to_outbox: Powrót do skrzynki nadawczej
revoke:
flash: Cofnąłeś prawa dostępu dla aplikacji %{application}
oauth_clients:
+ create:
+ flash: Pomyślnie zarejestrowano informacje
edit:
submit: Edytuj
title: Edycja aplikacji
user:
account:
contributor terms:
+ agreed: Zgodziłeś się na nowe warunki uczestnictwa.
+ heading: "Warunki uczestnictwa:"
link text: co to jest?
+ not yet agreed: Nie zgodziłeś się na nowe warunki uczestnictwa.
current email address: "Aktualny adres e-mail:"
delete image: Usuń obecną grafikę
email never displayed publicly: (nie jest wyświetlany publicznie)
title: Użytkownicy
login:
account not active: Niestety Twoje konto nie jest jeszcze aktywne.<br />Otwórz link zawarty w mailu potwierdzenia założenia konta, aby je aktywować lub <a href="%{reconfirm}">poproś o ponowne przesłanie maila</a>.
- account suspended: Niestety, Twoje konto zostało zawieszone ze względu na podejrzane działania.<br />Skontaktuj się proszę z %{webmaster}em, jeśli chcesz to omówić.
auth failure: Niestety podane dane nie pozwoliły na zalogowanie Cię.
create account minute: Utwórz konto. To zajmuje tylko minutę.
email or username: "Adres email lub nazwa użytkownika:"
remember: "Pamiętaj mnie:"
title: Logowanie
to make changes: Aby wprowadzać zmiany w OpenStreetMap, musisz mieć konto.
- webmaster: webmaster
with openid: "Możesz do zalogowania się użyć również OpenID:"
with username: "Masz już konto w OpenStreetMap? Zaloguj się podając nazwę użytkownika i hasło:"
logout:
confirm_user: zatwierdź tego użytkownika
create_block: zablokuj tego użytkownika
created from: "Stworzony z:"
+ ct accepted: zaakceptowane %{ago} temu
+ ct declined: odrzucone
+ ct status: "Warunki uczestnictwa:"
+ ct undecided: niezdecydowane
deactivate_user: dezaktywuj tego użytkownika
delete_user: usuń to konto
description: Opis
diary: dziennik
edits: edycje
email address: Adres e‐mail
+ friends_diaries: Przeglądaj wszystkie wpisy dziennika wykonane przez przyjaciół
hide_user: ukryj tego użytkownika
if set location: Jeśli ustawisz swoją lokalizację, pojawi się na tej stronie kolorowa mapka i w ogóle. Lokalizację możesz podać na Twojej %{settings_link}.
km away: "%{count}km stąd"
my settings: moje ustawienia
my traces: moje ślady
nearby users: Najbliżsi użytkownicy
+ nearby_diaries: Przeglądaj wszystkie wpisy dziennika użytkowników znajdujących się w pobliżu
new diary entry: nowy wpis w dzienniku
no friends: Nie dodałeś/aś jeszcze żadnych znajomych.
no nearby users: Nie ma innych użytkowników, którzy przyznają się do mapowania w tej okolicy.
title: Blokady nałożone przez użytkownika %{name}
blocks_on:
empty: "%{name} nie był jeszcze zablokowany."
+ heading: Lista blokad na użytkownika %{name}
+ title: Blokady na użytkownika %{name}
create:
flash: Nalożono blokadę na użytkownika %{name}.
try_contacting: Proszę rozważ, czy nie warto skontaktować się z użytkownikiem przed nałożeniem blokady, by miał on czas na odpowiedź.
non_moderator_update: Musisz być moderatorem, żeby ustalać i edytować blokady.
new:
back: Zobacz wszystkie blokady
+ needs_view: Użytkownik musi się zalogować, zanim blokada zostanie wyczyszczona
+ period: Na jak długo od tego momentu użytkownik ma być zablokowany przed dostępem do API.
submit: Utwórz blokadę
+ tried_contacting: Skontaktowałem się z użytkownikami i poprosiłem ich o zaprzestanie.
+ tried_waiting: Dałem(-am) użytkownikowi rozsądny czas, aby odpowiedzieć na te komunikaty.
not_found:
back: Powrót do spisu
sorry: Niestety, nie udało się odnaleźć blokady użytkownika o identyfikatorze %{id}.
time_past: Zakończona %{time} temu
title: "%{block_on} zablokowany przez użytkownika %{block_by}"
update:
+ only_creator_can_edit: Tylko moderator nakładający blokadę może ją edytować.
success: Blokada zaktualizowana.
user_role:
filter:
list:
description: Alterações recentes
description_bbox: Conjuntos de alterações em %{bbox}
+ description_friend: Conjuntos de alterações de seus amigos
+ description_nearby: Conjuntos de alterações de usuários próximos
description_user: Conjuntos de alterações de %{user}
description_user_bbox: Conjuntos de alterações de %{user} em %{bbox}
heading: Conjuntos de alterações
heading_bbox: Conjuntos de alterações
+ heading_friend: Conjuntos de alterações
+ heading_nearby: Conjuntos de alterações
heading_user: Conjuntos de alterações
heading_user_bbox: Conjuntos de alterações
title: Conjuntos de alterações
title_bbox: Conjuntos de alterações em %{bbox}
+ title_friend: Conjunto de alterações dos seus amigos
+ title_nearby: Conjunto de alterações de usuários próximos
title_user: Conjuntos de alterações de %{user}
title_user_bbox: Conjuntos de alterações de %{user} em %{bbox}
timeout:
older_entries: Entradas antigas
recent_entries: "Entradas recentes no Diário:"
title: Diários dos Usuários
+ title_friends: Diários dos amigos
+ title_nearby: Diários dos usuários próximos
user_title: Diário de %{user}
location:
edit: Editar
licence: Licença
longitude: "Lon:"
manually_select: Selecior área diferente manualmente
- mapnik_image: Imagem Mapnik
max: max
options: Opções
osm_xml_data: Dados XML OpenStreetMap
- osmarender_image: Imagem Osmarender
output: Saída
paste_html: Cole o HTML para publicar no site
scale: Escala
map:
base:
cycle_map: Cycle Map
- mapnik: Mapnik
mapquest: MapQuest Open
- osmarender: Osmarender
transport_map: Mapa de transporte público
overlays:
maplint: Maplint
inbox:
date: Data
from: De
+ messages: Você tem %{new_messages} e %{old_messages}
my_inbox: Minha caixa de entrada
+ new_messages:
+ other: uma=%{count} nova mensagem
no_messages_yet: Você ainda não tem mensagens. Por que não entrar em contato com %{people_mapping_nearby_link}?
+ old_messages:
+ other: uma=%{count} mensagem antiga
outbox: caixa de saída
people_mapping_nearby: alguém mapeando por perto
subject: Assunto
title: Caixa de Entrada
- you_have: Você tem %{new_count} mensagens novas e %{old_count} mensagens antigas
mark:
as_read: Mensagem marcada como lida
as_unread: Mensagem marcada como não lida
outbox:
date: Data
inbox: caixa de entrada
+ messages:
+ other: uma=Você tem %{count} mensagem enviada
my_inbox: Minha %{inbox_link}
no_sent_messages: Você ainda não enviou nenhuma mensagem. Porque não entrar em contato com %{people_mapping_nearby_link}?
outbox: caixa de saída
subject: Assunto
title: Caixa de Saída
to: Para
- you_have_sent_messages: Você tem %{count} mensagens enviadas
read:
back_to_inbox: Voltar para a caixa de entrada
back_to_outbox: Voltar para a caixa de saída
summary_no_ip: "%{name} criado em %{date}"
title: Usuários
login:
+ account is suspended: Desculpe, mas sua conta foi suspensa por causa de atividades suspeitas.<br />Por favor contate o <a href="%{webmaster}">webmaster</a> se você deseja discutir isto.
account not active: Desculpe, sua conta não está ativa ainda.<br />Por favor use o link do e-mail de confirmação para ativar sua conta ou <a href="%{reconfirm}">solicite uma nova confirmação por e-mail</a>.
- account suspended: Desculpe, mas sua conta foi suspensa por conta de atividade suspeita. <br />Por favor, contate o %{webmaster} se você deseja discutir esta decisão.
auth failure: Desculpe, impossível entrar com estas informações.
create account minute: Crie uma conta. Leva apenas um minuto.
email or username: "Email ou Nome de Usuário:"
lost password link: Esqueceu sua senha?
new to osm: Primeira vez no OpenStreetMap?
notice: <a href="http://www.osmfoundation.org/wiki/License/We_Are_Changing_The_License">Saiba mais sobre a mudança na licença do OpenStreetMap</a> (<a href="http://wiki.openstreetmap.org/wiki/ODbL/We_Are_Changing_The_License">traduções</a>) (<a href="http://wiki.openstreetmap.org/wiki/Talk:ODbL/Upcoming">discussão</a>)
+ notice_terms: O OpenStreetMap irá trocar sua licença em 1 de Abril de 2012. É tão aberta quanto a atual, mas as informações legais se encaixam melhor em nossa base de dados de mapas. Nós ficaríamos felizes de manter suas contribuições no OpenStreetMap, mas nós apenas poderemos fazer isso se você permitir distribui-la sob a nova licença. Do contrário, teremos que remover suas contribuições da base de dados<br /><br />Por favor faça o login, e tome alguns segundos para revisar e aceitar os novos termos. Muito obrigado!
openid: "%{logo} OpenID:"
openid invalid: Desculpe, mas parece que seu OpenID está malformado.
openid missing provider: Desculpe, não consegui contatar o seu provedor OpenID
remember: Lembrar neste computador
title: Entrar
to make changes: Para fazer alterações nos dados do OpenStreetMap, você precisa criar uma conta.
- webmaster: webmaster
with openid: "Alternativamente use seu OpenID para conectar:"
with username: "Já tem uma conta no OpenStreetMap? Então por favor faça o login com seu nome de usuário e senha:"
logout:
confirm_user: confirmar este usuário
create_block: bloquear este usuário
created from: "Criado de:"
+ ct accepted: Aceito %{ago} atrás
+ ct declined: Discordo
+ ct status: "Termos do colaborador:"
+ ct undecided: Não decidido
deactivate_user: desativar este usuário
delete_user: excluir este usuário
description: Descrição
diary: diário
edits: edições
email address: "Endereço de email:"
+ friends_changesets: Navegar em todos os conjuntos de alterações dos amigos
+ friends_diaries: Navegar em todas as entradas de diário dos amigos
hide_user: esconder esse usuário
if set location: Se você definir a sua localização, um mapa bonito vai aparecer abaixo. Você pode definir sua localização na página de %{settings_link}.
km away: "%{count}km de distância"
my settings: minhas configurações
my traces: minhas trilhas
nearby users: Outros usuários próximos
+ nearby_changesets: Navegar em todos os conjuntos de alterações de usuários próximos
+ nearby_diaries: Navegar em todas as entradas de diário dos usuários próximos
new diary entry: nova entrada de diário
no friends: Você ainda não adicionou amigos.
no nearby users: Ainda não há outros usuários mapeando por perto.
+++ /dev/null
-pt-PT:
- dummy: dummy
outbox: caixa de saída
subject: Assunto
title: Caixa de Entrada
- you_have: Tu tens %{new_count} novas mensagens e %{old_count} mensagens no total
message_summary:
delete_button: Apagar
read_button: Marcar como lido
register now: Registar-se agora
remember: "Lembrar-me:"
title: Autenticar-se
- webmaster: webmaster
logout:
heading: Sair do OpenStreetMap
logout_button: Sair
latitude: Latitudine
longitude: Longitudine
name: Nume
+ public: Public
size: Dimensiune
user: Utilizator
visible: Vizibilă
active: Activ
description: Descriere
display_name: Afișare nume
+ email: E-mail
languages: Limbi
pass_crypt: Parolă
models:
show_area_box: Afișează cutia zonei
common_details:
changeset_comment: "Comentariu:"
+ deleted_at: "Șters la:"
+ deleted_by: "Șters de:"
edited_at: "Editat la:"
edited_by: "Editat de:"
in_changeset: "În setul de schimbări:"
members: "Membrii:"
part_of: "Parte din:"
relation_history:
- download: "%{download_xml_link} sau %{view_history_link}"
+ download: "%{download_xml_link} sau %{view_details_link}"
download_xml: Descărcare XML
relation_history: Istoric relații
relation_history_title: "Istoric relații: %{relation_name}"
still_editing: (încă se editează)
view_changeset_details: Vizualizare detalii set de schimbări
changeset_paging_nav:
- showing_page: Se afișează pagina
+ next: Următoarea »
+ previous: « Precedenta
+ showing_page: Se afișează pagina %{page}
changesets:
area: Zonă
comment: Comentariu
+ id: ID
saved_at: Salvat la
user: Utilizator
list:
description: Schimbări recente
+ diary_entry:
+ diary_entry:
+ comment_count:
+ one: un comentariu
+ other: "%{count} comentarii"
+ edit:
+ language: "Limbă:"
+ latitude: "Latitudine:"
+ location: "Locație:"
+ longitude: "Longitudine:"
+ save_button: Salvează
+ subject: "Subiect:"
+ list:
+ title: Jurnalele utilizatorilor
+ title_friends: Jurnalele prietenilor
+ title_nearby: Jurnalele utilizatorilor aflați în apropiere
+ user_title: Jurnalul utilizatorului %{user}
+ location:
+ edit: Modificare
+ location: "Locație:"
+ view: Vizualizare
+ view:
+ login: Autentificare
+ login_to_leave_a_comment: "%{login_link}a este necesară pentru a comenta"
+ save_button: Salvează
+ title: Jurnalul utilizatorului %{user} | %{title}
+ user_title: Jurnalul utilizatorului %{user}
export:
start:
+ add_marker: Adaugă un marcator pe hartă
+ export_button: Exportare
+ format: Format
+ image_size: Dimensiune imagine
+ latitude: "Lat:"
licence: Licență
+ longitude: "Long:"
+ max: max
options: Opțiuni
+ output: Date de ieșire
+ scale: Scară
+ too_large:
+ heading: Arie prea mare
+ zoom: Zoom
+ start_rjs:
+ drag_a_box: Trageți cu mouse-ul și creați un dreptunghi pentru a selecta zona hărții
+ export: Exportă
+ manually_select: Selectare manuală a unei alte zone
geocoder:
+ description:
+ title:
+ osm_namefinder: "%{types} de la <a href=\"http://gazetteer.openstreetmap.org/namefinder/\">OpenStreetMap Namefinder</a>"
+ types:
+ cities: Orașe
+ places: Locuri
+ towns: Orășele
+ direction:
+ east: est
+ north: nord
+ north_east: nord-est
+ north_west: nord-vest
+ south: sud
+ south_east: sud-est
+ south_west: sud-vest
+ west: vest
+ distance:
+ one: circa 1 km
+ other: circa %{count} km
+ zero: mai puțin de 1 km
+ results:
+ more_results: Mai multe rezultate
+ no_results: Niciun rezultat găsit
+ search:
+ title:
+ ca_postcode: Rezultate de la <a href="http://geocoder.ca/">Geocoder.CA</a>
+ geonames: Rezultate de la <a href="http://www.geonames.org/">GeoNames</a>
+ latlon: Rezultate <a href="http://openstreetmap.org/">interne</a>
+ osm_namefinder: Rezultate de la <a href="http://gazetteer.openstreetmap.org/namefinder/">OpenStreetMap Namefinder</a>
+ osm_nominatim: Rezultate de la <a href="http://nominatim.openstreetmap.org/">OpenStreetMap Nominatim</a>
+ uk_postcode: Rezultate de la <a href="http://www.npemap.org.uk/">NPEMap / FreeThe Postcode</a>
+ us_postcode: Rezultate de la <a href="http://geocoder.us/">Geocoder.us</a>
search_osm_namefinder:
prefix: "%{type}"
+ suffix_place: ", %{distance} %{direction} de %{placename}"
+ search_osm_nominatim:
+ prefix:
+ amenity:
+ airport: Aeroport
+ arts_centre: Centru de arte
+ atm: Bancomat
+ auditorium: Auditoriu
+ bank: Instituție bancară
+ bar: Bar
+ bench: Bancă
+ bicycle_parking: Parcare de biciclete
+ bicycle_rental: Închiriere de biciclete
+ brothel: Bordel
+ bureau_de_change: Casă de schimb valutar
+ bus_station: Stație de autobuz
+ cafe: Cafenea
+ car_rental: Închiriere de mașini
+ car_wash: Spălătorie auto
+ casino: Cazinou
+ cinema: Cinematograf
+ clinic: Clinică
+ club: Club
+ college: Colegiu
+ courthouse: Tribunal
+ crematorium: Crematoriu
+ dentist: Dentist
+ doctors: Medici
+ drinking_water: Cișmea
+ driving_school: Școală de șoferi
+ embassy: Ambasadă
+ emergency_phone: Telefon de urgență
+ fast_food: Fast-food
+ ferry_terminal: Terminal pentru feriboturi
+ fire_hydrant: Hidrant
+ fire_station: Stație de pompieri
+ fountain: Fântână
+ fuel: Benzinărie
+ grave_yard: Cimitir
+ gym: Sală de fitness / gimnastică
+ health_centre: Centru de sănătate
+ hospital: Spital
+ hotel: Hotel
+ ice_cream: Înghețată
+ kindergarten: Grădiniță
+ library: Bibliotecă
+ market: Piață
+ mountain_rescue: Salvamont
+ nightclub: Club de noapte
+ nursery: Creșă
+ nursing_home: Azil de bătrâni
+ office: Birou
+ park: Parc
+ parking: Parcare
+ pharmacy: Farmacie
+ place_of_worship: Lăcaș de cult
+ police: Poliție
+ post_box: Cutie poștală
+ post_office: Oficiu poștal
+ prison: Închisoare
+ pub: Pub
+ public_building: Clădire publică
+ public_market: Piață publică
+ reception_area: Zonă de recepție
+ recycling: Punct de reciclare
+ restaurant: Restaurant
+ sauna: Saună
+ school: Școală
+ shelter: Adăpost
+ shop: Magazin
+ shopping: Cumpărături
+ studio: Studio
+ supermarket: Supermarket
+ taxi: Taxi
+ telephone: Telefon public
+ theatre: Teatru
+ toilets: Toalete
+ townhall: Primărie
+ university: Universitate
+ veterinary: Medic veterinar
+ waste_basket: Coș de gunoi
+ wifi: Acces WiFi
+ youth_centre: Centru de tineret
+ boundary:
+ administrative: Graniță administrativă
+ building:
+ apartments: Bloc de apartamente
+ bunker: Buncăr
+ chapel: Capelă
+ church: Biserică
+ city_hall: Primărie
+ commercial: Clădire comercială
+ entrance: Intrare în clădire
+ flats: Apartamente
+ garage: Garaj
+ hospital: Clădire de spital
+ hotel: Hotel
+ house: Casă
+ industrial: Clădire industrială
+ office: Clădire de birouri
+ public: Clădire publică
+ residential: Clădire rezidențială
+ school: Clădire școlară
+ shop: Magazin
+ stadium: Stadion
+ store: Magazin
+ terrace: Terasă
+ tower: Turn
+ train_station: Gară
+ highway:
+ bus_guideway: Linie de autobuz ghidată
+ bus_stop: Stație de autobuz
+ emergency_access_point: Punct de acces de urgență
+ footway: Cale pietonală
+ ford: Vad
+ gate: Poartă
+ motorway: Autostradă
+ motorway_junction: Intersecție pe autostradă
+ path: Potecă
+ pedestrian: Cale pietonală
+ platform: Platformă
+ primary: Drum principal
+ raceway: Pistă
+ road: Drum
+ secondary: Drum secundar
+ secondary_link: Drum secundar
+ services: Servicii pe autostradă
+ tertiary: Drum terțiar
+ trail: Potecă
+ unclassified: Drum neclasificat
+ historic:
+ archaeological_site: Sit arheologic
+ battlefield: Câmp de luptă
+ boundary_stone: Bornă de graniță
+ building: Clădire
+ castle: Castel
+ church: Biserică
+ house: Casă
+ manor: Conac
+ mine: Mină
+ monument: Monument
+ museum: Muzeu
+ ruins: Ruine
+ tower: Turn
+ wreck: Epavă
+ landuse:
+ basin: Bazin
+ cemetery: Cimitir
+ commercial: Zonă comercială
+ construction: Construcție
+ farm: Fermă
+ farmland: Teren agricol
+ forest: Pădure
+ grass: Iarbă
+ industrial: Zonă industrială
+ landfill: Groapă de gunoi
+ meadow: Luncă
+ military: Zonă militară
+ mine: Mină
+ mountain: Munte
+ nature_reserve: Rezervație naturală
+ park: Parc
+ plaza: Scuar
+ quarry: Carieră
+ railway: Cale ferată
+ recreation_ground: Zonă de recreere
+ reservoir: Rezervor
+ residential: Zonă rezidențială
+ vineyard: Podgorie
+ wood: Pădure
+ leisure:
+ beach_resort: Stațiune balneară
+ fishing: Zonă de pescuit
+ garden: Grădină
+ golf_course: Teren de golf
+ ice_rink: Patinoar
+ miniature_golf: Minigolf
+ nature_reserve: Rezervație naturală
+ park: Parc
+ pitch: Teren de sport
+ playground: Loc de joacă
+ recreation_ground: Zonă de recreere
+ stadium: Stadion
+ swimming_pool: Bazin de înot
+ track: Pistă de atletism
+ water_park: Parc acvatic
+ natural:
+ bay: Golf
+ beach: Plajă
+ cape: Cap
+ cave_entrance: Intrare în peșteră
+ channel: Canal
+ cliff: Stâncă
+ coastline: Litoral
+ crater: Crater
+ fjord: Fiord
+ geyser: Gheizer
+ glacier: Ghețar
+ hill: Deal
+ island: Insulă
+ land: Teren
+ marsh: Mlaștină
+ moor: Baltă
+ mud: Noroi
+ peak: Vârf
+ reef: Recif
+ ridge: Creastă
+ river: Râu
+ rock: Rocă
+ scree: Grohotiș
+ scrub: Tufăriș
+ shoal: Banc de nisip
+ spring: Izvor
+ strait: Strâmtoare
+ tree: Copac
+ valley: Vale
+ volcano: Vulcan
+ water: Apă
+ wood: Pădure
+ place:
+ airport: Aeroport
+ city: Oraș
+ country: Țară
+ county: Județ
+ farm: Fermă
+ hamlet: Cătun
+ house: Casă
+ houses: Case
+ island: Insulă
+ islet: Insuliță
+ locality: Localitate
+ moor: Baltă
+ municipality: Comună
+ postcode: Cod poștal
+ region: Regiune
+ sea: Mare
+ state: Stat
+ subdivision: Subdiviziune
+ suburb: Suburbie
+ town: Orășel
+ unincorporated_area: Zonă neîncorporată
+ village: Sat
+ railway:
+ abandoned: Cale ferată abandonată
+ construction: Cale ferată în construcție
+ disused: Cale ferată dezafectată
+ disused_station: Gară dezafectată
+ funicular: Funicular
+ historic_station: Gară istorică
+ junction: Nod feroviar
+ level_crossing: Trecere la nivel
+ light_rail: Metrou
+ monorail: Monoșină
+ narrow_gauge: Cale ferată cu ecartament îngust
+ platform: Platformă feroviară
+ station: Gară
+ subway: Stație de metrou
+ subway_entrance: Intrare la metrou
+ tram: Tramvai
+ tram_stop: Stație de tramvai
+ yard: Depou
+ shop:
+ apparel: Magazin de îmbrăcăminte
+ art: Magazin de artă
+ bakery: Brutărie
+ beauty: Salon de frumusețe
+ beverages: Magazin de băuturi
+ bicycle: Magazin de biciclete
+ books: Librărie
+ butcher: Măcelărie
+ car_parts: Piese auto
+ car_repair: Service auto
+ clothes: Magazin de haine
+ confectionery: Cofetărie
+ cosmetics: Magazin de cosmetice
+ drugstore: Farmacie
+ dry_cleaning: Curățătorie chimică
+ electronics: Magazin de electronice
+ estate_agent: Agent imobiliar
+ fish: Pescărie
+ florist: Florărie
+ food: Alimentară
+ furniture: Mobilier
+ gallery: Galerie
+ grocery: Magazin alimentar
+ hairdresser: Coafor
+ hifi: Hi-Fi
+ insurance: Asigurare
+ jewelry: Bijuterie
+ kiosk: Chioșc
+ laundry: Spălătorie
+ mall: Mall
+ market: Piață
+ newsagent: Chioșc de ziare
+ optician: Optician
+ organic: Magazin de alimente organice
+ salon: Salon de frumusețe
+ shopping_centre: Centru comercial
+ stationery: Magazin de papetărie
+ supermarket: Supermarket
+ toys: Magazin de jucării
+ travel_agency: Agenție de turism
+ tourism:
+ alpine_hut: Refugiu montan
+ artwork: Operă de artă
+ attraction: Atracție
+ cabin: Cabină
+ camp_site: Loc de campare
+ chalet: Cabană
+ guest_house: Casă de oaspeți
+ hostel: Hotel de tineret
+ hotel: Hotel
+ information: Informații
+ motel: Motel
+ museum: Muzeu
+ theme_park: Parc tematic
+ valley: Vale
+ zoo: Gradină zoologică
+ waterway:
+ canal: Canal
+ dam: Baraj
+ ditch: Șanț
+ dock: Doc
+ drain: Scurgere
+ lock: Ecluză
+ lock_gate: Poartă de ecluză
+ mooring: Amaraj
+ river: Râu
+ waterfall: Cascadă
+ weir: Stăvilar
+ layouts:
+ copyright: Drepturi de autor și licență
+ documentation: Documentație
+ documentation_title: Documentație pentru proiect
+ edit: Modificare
+ edit_with: Modificare cu %{editor}
+ help: Ajutor
+ help_centre: Centru de ajutor
+ history: Istoric
+ home: acasă
+ log_in: autentificare
+ log_in_tooltip: Autentificare cu un cont existent
+ logo:
+ alt_text: Logoul OpenStreetMap
+ logout: închide sesiunea
+ logout_tooltip: Închide sesiunea
+ make_a_donation:
+ text: Faceți o donație
+ sign_up: înregistrare
+ sign_up_tooltip: Creați un cont pentru editare
+ view: Vizualizare
+ view_tooltip: Vizualizare hartă
+ welcome_user: Bine ați venit, %{user_link}
+ welcome_user_link_tooltip: Pagina dumneavoastră de utilizator
+ license_page:
+ foreign:
+ title: Despre această traducere
+ native:
+ title: Despre această pagină
message:
delete:
deleted: Mesaj șters
message_summary:
delete_button: Şterge
+ outbox:
+ date: Dată
+ inbox: mesaje primite
+ messages:
+ one: Aveți %{count} mesaj trimis
+ other: Aveți %{count} (de) mesaje trimise
+ my_inbox: Mesajele mele primite
+ outbox: mesaje trimise
+ subject: Subiect
+ title: Mesaje trimise
+ to: Către
+ read:
+ back_to_inbox: Înapoi la mesaje primite
+ back_to_outbox: Înapoi la mesaje trimise
+ date: Dată
+ from: De la
+ reply_button: Răspunde
+ subject: Subiect
+ title: Citire mesaj
+ to: Către
+ unread_button: Marchează ca necitit
sent_message_summary:
delete_button: Şterge
oauth:
with_id: "%{id}"
with_name: "%{name} (%{id})"
site:
+ edit:
+ user_page_link: pagină de utilizator
index:
license:
+ license_name: Creative Commons Atribuire și distribuire în condiții identice 2.0
license_url: http://creativecommons.org/licenses/by-sa/2.0/
+ notice: Distribuit sub licența %{license_name} de către %{project_name} și contribuitorii săi.
+ project_name: proiectul OpenStreetMap
project_url: http://openstreetmap.org
+ permalink: Legătură permanentă
+ shortlink: Legătură scurtată
+ time:
+ formats:
+ friendly: "%e %B %Y la %H:%M"
trace:
edit:
visibility: "Vizibilitate:"
# Export driver: syck-pecl
# Author: AOleg
# Author: Aleksandr Dezhin
+# Author: Amire80
# Author: Calibrator
# Author: Chilin
# Author: Dr&mx
# Author: Eleferen
# Author: EugeneZelenko
+# Author: Express2000
# Author: Ezhick
# Author: G0rn
# Author: Komzpa
# Author: Lockal
# Author: MaxSem
+# Author: TarzanASG
# Author: Yuri Nazarov
# Author: Александр Сигачёв
# Author: Сrower
active: Активен
description: Описание
display_name: Отображаемое имя
- email: Ðл. адÑ\80еÑ\81
+ email: Ð\90дÑ\80еÑ\81 Ñ\8dлекÑ\82Ñ\80онной поÑ\87Ñ\82Ñ\8b
languages: Языки
pass_crypt: Пароль
models:
list:
description: Последние изменения
description_bbox: "Пакеты правок в рамке, охватывающей координаты: %{bbox}"
+ description_friend: Пакеты правок ваших друзей
+ description_nearby: Наборы правок соседних участников
description_user: Пакеты правок пользователя %{user}
description_user_bbox: Пакеты правок пользователя %{user} в рамке, охватывающей координаты %{bbox}
heading: Пакеты правок
heading_bbox: Пакеты правок
+ heading_friend: Пакеты правок
+ heading_nearby: Пакеты правок
heading_user: Пакеты правок
heading_user_bbox: Пакеты правок
title: Пакет правок
title_bbox: Пакет правок в рамке, охватывающей координаты %{bbox}
+ title_friend: Пакеты правок ваших друзей
+ title_nearby: Пакеты правок соседних участников
title_user: Пакеты правок пользователя %{user}
title_user_bbox: Пакеты правок пользователя %{user} в рамке, охватывающей координаты %{bbox}
timeout:
sorry: К сожалению, список пакетов правок, который вы запросили, слишком большой для извлечения.
diary_entry:
+ comments:
+ ago: "%{ago} назад"
+ comment: Комментарий
+ has_commented_on: "%{display_name} только что прокомментировал следующие записи дневника"
+ newer_comments: Более новые комментарии
+ older_comments: Более старые комментарии
+ post: Пост
+ when: Когда
diary_comment:
comment_from: Комментарий %{link_user} %{comment_created_at}
confirm: Подтвердить
older_entries: Более старые записи
recent_entries: "Недавние записи:"
title: Дневники
+ title_friends: Дневники друзей
+ title_nearby: Дневники соседних участников
user_title: Дневник пользователя %{user}
location:
edit: Правка
area_to_export: Область для экспорта
embeddable_html: Встраиваемый HTML
export_button: Экспортировать
- export_details: Ð\94аннÑ\8bе OpenStreetMap Ñ\80аÑ\81пÑ\80оÑ\81Ñ\82Ñ\80анÑ\8fÑ\8eÑ\82Ñ\81Ñ\8f на Ñ\83Ñ\81ловиÑ\8fÑ\85 лиÑ\86ензии <a href="http://creativecommons.org/licenses/by-sa/2.0/">Creative Commons Attribution-ShareAlike 2.0</a>.
+ export_details: Ð\94аннÑ\8bе OpenStreetMap Ñ\80аÑ\81пÑ\80оÑ\81Ñ\82Ñ\80анÑ\8fÑ\8eÑ\82Ñ\81Ñ\8f по <a href="http://creativecommons.org/licenses/by-sa/2.0/deed.ru">лиÑ\86ензии Creative Commons Attribution-ShareAlike 2.0</a>.
format: "Формат:"
format_to_export: Формат экспорта
image_size: "Размер изображения:"
licence: Лицензия
longitude: "Долгота:"
manually_select: Выделить другую область
- mapnik_image: Изображение Mapnik
+ map_image: Изображение карты (показывает стандартный слой)
max: макс.
options: Настройки
- osm_xml_data: Данные (OpenStreetMap XML)
- osmarender_image: Изображение Osmarender
+ osm_xml_data: Данные в формате OpenStreetMap XML
output: Результат
paste_html: HTML-код для встраивания на сайт
scale: Масштаб
too_large:
- body: Эта область слишком велика, для экспорта в качестве XML данных OpenStreetMap. Пожалуйста, увеличьте масштаб или выберите меньший размер.
+ body: Эта область слишком велика для экспорта в качестве данных в формате OpenStreetMap XML. Пожалуйста, увеличьте масштаб или выберите меньшую область.
heading: Область слишком большая
zoom: Приблизить
start_rjs:
ferry_terminal: Паромная станция
fire_hydrant: Пожарный гидрант
fire_station: Пожарная охрана
- fountain: фонтан
+ fountain: Фонтан
fuel: Заправка
grave_yard: Место захоронения
- gym: тренажерный зал
+ gym: Тренажёрный зал / Фитнес-центр
hall: Холл
health_centre: Оздоровительный центр
hospital: Госпиталь
hotel: Гостинница
- hunting_stand: охотничья вышка
+ hunting_stand: Ð\9eхотничья вышка
ice_cream: Мороженное
kindergarten: Детский сад
library: Библиотека
market: Магазин
marketplace: Рыночная площадь
mountain_rescue: Горная спасательная служба
- nightclub: ночной клуб
+ nightclub: Ð\9dочной клуб
nursery: Пансионат
nursing_home: Дом престарелых
office: Офис
preschool: Дошкольное учреждение
prison: Тюрьма
pub: Паб
- public_building: общественное здание
+ public_building: Ð\9eбщественное здание
public_market: Городской рынок
reception_area: Приёмная
recycling: Место утилизации
restaurant: Ресторан
retirement_home: Дом престарелых
sauna: Сауна
- school: школа
+ school: Школа
shelter: Укрытие
shop: Магазин
shopping: Торговый центр
veterinary: Ветеринарная клиника
village_hall: Усадьба
waste_basket: Мусорка
- wifi: Вай-Фай
+ wifi: Wi-Fi-доступ
youth_centre: Молодёжный центр
boundary:
administrative: Административная граница
apartments: Многоквартирный дом
block: Ряд зданий
bunker: Бункер
- chapel: ЦеÑ\80ковÑ\8c
+ chapel: ЧаÑ\81овнÑ\8f
church: Церковь
city_hall: Мэрия
commercial: Офисное здание
public: Общественное здание
residential: Жилой дом
retail: Здание на продажу
- school: Школа
+ school: Ð\97дание Ñ\88колÑ\8b
shop: Магазин
stadium: Стадион
store: Магазин
houses: Дома
island: Остров
islet: Маленький остров
- locality: Ð\9dаÑ\81елÑ\91ннÑ\8bй пÑ\83нкÑ\82
+ locality: Ð\97абÑ\80оÑ\88еннаÑ\8f деÑ\80евнÑ\8f, Ñ\83Ñ\80оÑ\87иÑ\89е, необиÑ\82аемаÑ\8f меÑ\81Ñ\82ноÑ\81Ñ\82Ñ\8c
moor: Торфяник
municipality: Муниципалитет
- postcode: Ð\98ндекс
+ postcode: Ð\9fоÑ\87Ñ\82овÑ\8bй индекс
region: Регион
sea: Море
state: Область/Штат
books: Книжный магазин
butcher: Мясная лавка
car: Автосалон
- car_dealer: Ð\90вÑ\82омагазин
- car_parts: Ð\90вÑ\82омагазин
+ car_dealer: Ð\90вÑ\82омобилÑ\8cнÑ\8bй дилеÑ\80
+ car_parts: Ð\90вÑ\82озапÑ\87аÑ\81Ñ\82и
car_repair: Автомастерская
carpet: Ковры
charity: Секонд-хэнд
cosmetics: Косметика
department_store: Универсам
discount: Магазин распродаж
- doityourself: Сделай-Сам
+ doityourself: Сделай сам
drugstore: Аптека
dry_cleaning: Химчистка
electronics: Магазин электротоваров
bed_and_breakfast: Полупансион
cabin: Каюта
camp_site: Лагерь
- caravan_site: Ð\9aаÑ\80аван-Ñ\81аÑ\80ай
+ caravan_site: СÑ\82оÑ\8fнка длÑ\8f домиков на колÑ\91Ñ\81аÑ\85
chalet: Шале
guest_house: Домик для гостей
hostel: Хостел
dock: Док
drain: Сточная канава
lock: Шлюз
- lock_gate: ШлÑ\8eз
+ lock_gate: Ð\92оÑ\80оÑ\82а Ñ\88лÑ\8eза
mineral_spring: Минеральный родник
mooring: Место швартовки
rapids: Речной порог
map:
base:
cycle_map: Карта для велосипедистов
- mapnik: Mapnik
mapquest: MapQuest Open
- osmarender: Osmarender
- transport_map: ТÑ\80анÑ\81поÑ\80Ñ\82нÑ\8bе каÑ\80Ñ\82Ñ\8b
+ standard: Стандартный
+ transport_map: Ð\9aаÑ\80Ñ\82а Ñ\82Ñ\80анÑ\81поÑ\80Ñ\82а
overlays:
maplint: Maplint
site:
one: В вашем ящике %{count} новое сообщение
other: В вашем ящике есть %{count} новых сообщений.
zero: В вашем ящике нет непрочитанных сообщений
- intro_1: OpenStreetMap â\80\94 Ñ\8dÑ\82о Ñ\81вободно Ñ\80едакÑ\82иÑ\80Ñ\83емая карта всего мира. Она сделана такими же людьми, как и вы.
- intro_2: OpenStreetMap позволяет совместно просматривать, изменять и использовать географические данные в любой точке Земли.
+ intro_1: OpenStreetMap â\80\94 Ñ\8dÑ\82о Ñ\81вободнаÑ\8f и доÑ\81Ñ\82Ñ\83пнаÑ\8f длÑ\8f Ñ\80едакÑ\82иÑ\80ования карта всего мира. Она сделана такими же людьми, как и вы.
+ intro_2: OpenStreetMap позволяет вам просматривать, редактировать и в духе сотрудничества использовать географические данные о любой точке Земли.
intro_3: Услуги хостинга для OpenStreetMap любезно предоставлены %{ucl}, %{ic} и %{bytemark}. Другие сторонники проекта перечислены в %{partners}.
intro_3_ic: Имперским колледжом Лондона
intro_3_partners: вики
+ intro_3_partners_url: http://wiki.openstreetmap.org/wiki/Partners?uselang=ru
intro_3_ucl: UCL VR Centre
license:
- title: Данные OpenStreetMap лицензированы Creative Commons Attribution-Share Alike 2.0 Generic
+ alt: CC BY-SA 2.0
+ title: Данные OpenStreetMap доступны по лицензии Creative Commons Attribution-Share Alike 2.0 Generic
log_in: войти
log_in_tooltip: Войти под существующей учётной записью
logo:
welcome_user_link_tooltip: Ваша страница пользователя
wiki: Вики
wiki_title: Вики-сайт проекта
+ wiki_url: http://wiki.openstreetmap.org/wiki/RU:%D0%97%D0%B0%D0%B3%D0%BB%D0%B0%D0%B2%D0%BD%D0%B0%D1%8F_%D1%81%D1%82%D1%80%D0%B0%D0%BD%D0%B8%D1%86%D0%B0?uselang=ru
license_page:
foreign:
english_link: английского оригинала
text: В случае конфликта между этой переведённой страницей и %{english_original_link}, английская страница должна иметь приоритет
title: Об этом переводе
- legal_babble: "<h2> Авторские права и лицензирование</h2>\n<p>OpenStreetMap предоставляет <i>открытые данные</i>, на условиях лицензии <a href=\"http://creativecommons.org/licenses/by-sa/2.0/\">Creative Commons Attribution-ShareAlike 2.0</a> (CC-BY-SA). \n</p>\n\n<p>Вы можете свободно копировать, распространять, передавать и дорабатывать наши карты и данные, до тех пор, пока вы ссылаетесь на OpenStreetMap и его сообщество. Если вы изменяете или берёте наши материалы за основу, то вы должны распространять результаты под такой же лицензией. Полный <a href=\"http://creativecommons.org/licenses/by-sa/2.0/legalcode\">текст лицензии</a> разъясняет ваши права и обязанности.\n</p>\n\n<h3>Как сослаться на OpenStreetMap</h3>\n<p>Если вы используете изображения карт OpenStreetMap, мы требуем, чтобы вы указывали, по крайней мере, «© Участники OpenStreetMap, CC-BY-SA». Если вы используете только картографические данные, мы требуем наличия указания «Картографические данные © Участники OpenStreetMap, CC-BY-SA». \n</p>\n<p>Везде, где это возможно, следует делать гипертекстовую ссылку на OpenStreetMap <a href=\"http://www.openstreetmap.org/\">http://www.openstreetmap.org/</a> и на CC-BY-SA <a href=\"http://creativecommons.org/licenses/by-sa/2.0/\">http://creativecommons.org/licenses/by-sa/2.0/</a> . Если вы используете носители где использование гипертекстовых ссылок невозможно (например, печатные произведения), мы предлагаем вам направлять ваших читателей непосредственно к www.openstreetmap.org (возможно, расширяя OpenStreetMap до полного адреса) и к www.creativecommons.org. \n</p>\n\n<h3>Подробнее</h3>\n<p>Узнайте больше об использовании наших данных на странице <a href=\"http://wiki.openstreetmap.org/wiki/Legal_FAQ\">ответов на правовые вопросы</a>. \n</p>\n<p>Участники сообщества OSM должны всегда помнить о том, что запрещается добавлять данные из любых защищенных авторским правом источников (например с Google Maps или печатных карт) без предварительного согласия правообладателей. \n</p>\n<p>Хотя OpenStreetMap содержит свободные данные, мы не в состоянии предоставлять бесплатный API к нашим картам для сторонних разработчиков. См. <a href=\"http://wiki.openstreetmap.org/wiki/API_usage_policy\">Правила использования API</a>, <a href=\"http://wiki.openstreetmap.org/wiki/Tile_usage_policy\">Правила использования частей карты</a> и <a href=\"http://wiki.openstreetmap.org/wiki/Nominatim#Usage_Policy\">Правила использования службы Nominatim</a> . \n</p>\n\n<h3>С нами сотрудничают</h3>\n<p>Наша лицензия CC-BY-SA требует от вас «указывать автора оригинального произведения, в соответствии с особенностями носителя информации и используемых средств». Обычные члены сообщества OSM не требуют указания авторства больше, чем строчкой «участники OpenStreetMap», но в OpenStreetMap есть данные, полученные от национальных картографических агентств или других существенных источников, возможно имеет смысл указать непосредственно на них, как на источник, или добавить ссылку на эту страницу. \n</p>\n\n<!-- Информация для редактирующих страницу. Ниже перечислены только те организации, которые требуют ссылки на своё авторство в качестве условий использования их данных в OpenStreetMap. Это не общий каталог импортируемых данных, список не должен использоваться за исключением случаев, когда указание авторства требуется условиями лицензии на импортируемые данные.\n\nЛюбые дополнения должны быть в первую очередь обсуждены с системными администраторами OSM. -->\n\n<ul id=\"contributors\">\n<li><strong>Австралия.</strong> Данные пригородов от Австралийского бюро статистики. </li>\n<li><strong>Австрия.</strong> Данные <a href=\"http://data.wien.gv.at/\">города Вена</a> на условиях <a href=\"http://creativecommons.org/licenses/by/3.0/at/deed.de\">CC-BY</a>.</li>\n<li><strong>Канада.</strong> Данные от GeoBase ®, GeoGratis (© Департамент природных ресурсов Канады), CanVec (© Департамент природных ресурсов Канады) и StatCan (Отдел Географии, Статистическое ведомство Канады).</li>\n<li><strong>Франция</strong>: Данные от Главного налогового управления.</i>\n<li><strong>Новая Зеландия.</strong> Данные из сведений о земельных ресурсах Новой Зеландии. Crown Copyright reserved. </li>\n<li><strong>Польша.</strong> Данные с <a href=\"http://ump.waw.pl/\">карт UMP-pcPL</a>. Copyright участники UMP-pcPL.</li>\n<li><strong>Великобритания.</strong> Данные Ordnance Survey © Crown copyright и права на базы данных 2010.</li>\n</ul>\n\n<p>\nВключение данных в OpenStreetMap не означает, что поставщик первичных данных каким-либо образом поддерживает OpenStreetMap, предоставляет гарантии или принимает на себя какую-любую ответственность. \n</p>"
+ legal_babble: "<h2> Авторские права и лицензирование</h2>\n<p>OpenStreetMap — это <i>открытые данные</i> доступные по лицензии <a href=\"http://creativecommons.org/licenses/by-sa/2.0/deed.ru\">Creative Commons Attribution-ShareAlike 2.0</a> (CC-BY-SA). \n</p>\n\n<p>Вы можете свободно копировать, распространять, передавать и дорабатывать наши карты и данные до тех пор, пока вы ссылаетесь на OpenStreetMap и его сообщество. Если вы изменяете или берёте наши карты за основу, то вы должны распространять результат только по такой же лицензии. Полный <a href=\"http://creativecommons.org/licenses/by-sa/2.0/legalcode\">юридический текст лицензии</a> (<a href=\"http://ru.wikisource.org/wiki/Creative_Commons_Attribution-ShareAlike_2.0_Generic\">перевод на русский язык</a>) разъясняет ваши права и обязанности.\n</p>\n\n<h3>Как сослаться на OpenStreetMap</h3>\n<p>Если вы используете изображения карт OpenStreetMap, мы требуем, чтобы вы указывали, по крайней мере, «© Участники OpenStreetMap, CC-BY-SA». Если вы используете только картографические данные, мы требуем наличия указания «Картографические данные © Участники OpenStreetMap, CC-BY-SA». \n</p>\n<p>Где это возможно текст «OpenStreetMap» должен быть гиперссылкой на <a href=\"http://www.openstreetmap.org/\">http://www.openstreetmap.org/</a>, «CC-BY-SA» - на <a href=\"http://creativecommons.org/licenses/by-sa/2.0/deed.ru\">http://creativecommons.org/licenses/by-sa/2.0/deed.ru</a>. Если вы используете носители, где гиперссылки невозможны (например, печатная работа), мы предлагаем вам направлять ваших читателей непосредственно к www.openstreetmap.org (возможно, расширяя «OpenStreetMap» до полного адреса) и к www.creativecommons.org. \n</p>\n\n<h3>Узнайте больше</h3>\n<p>Прочитайте больше об использовании наших данных на странице <a href=\"http://wiki.openstreetmap.org/wiki/Legal_FAQ?uselang=ru\">ответов на юридические вопросы</a>. \n</p>\n<p>Участники сообщества OSM должны всегда помнить о том, что запрещается добавлять данные из любых защищенных авторским правом источников (например, с Google Maps или печатных карт) без явного предварительного согласия правообладателей. \n</p>\n<p>Хотя OpenStreetMap - открытые данные, мы не в состоянии предоставлять бесплатный API к нашим картам для сторонних разработчиков. См. <a href=\"http://wiki.openstreetmap.org/wiki/API_usage_policy\">Правила использования API</a>, <a href=\"http://wiki.openstreetmap.org/wiki/Tile_usage_policy\">Правила использования частей карты</a> и <a href=\"http://wiki.openstreetmap.org/wiki/Nominatim#Usage_Policy\">Правила использования службы Nominatim</a> . \n</p>\n\n<h3>Кто вносит вклад в наш проект</h3>\n<p>Наша лицензия CC-BY-SA требует от вас «указывать авторство Автора Оригинала разумно в средстве или способах, которые Вы используете». Индивидуальные картографы OSM не требуют указания авторства больше, чем строчкой «участники OpenStreetMap», но в OpenStreetMap есть данные, полученные от национальных картографических агентств или других существенных источников, поэтому возможно имеет смысл указать непосредственно на них, как на источник, или добавить ссылку на эту страницу. \n</p>\n\n<!-- Информация для редактирующих страницу. Ниже перечислены только те организации, которые требуют ссылки на своё авторство в качестве условий использования их данных в OpenStreetMap. Это не общий каталог импортируемых данных, список не должен использоваться за исключением случаев, когда указание авторства требуется условиями лицензии на импортируемые данные.\n\nЛюбые дополнения должны быть в первую очередь обсуждены с системными администраторами OSM. -->\n\n<ul id=\"contributors\">\n<li><strong>Австралия.</strong> Данные пригородов от Австралийского бюро статистики. </li>\n<li><strong>Австрия.</strong> Данные <a href=\"http://data.wien.gv.at/\">города Вена</a> на условиях <a href=\"http://creativecommons.org/licenses/by/3.0/at/deed.de\">CC-BY</a>.</li>\n<li><strong>Канада.</strong> Данные от GeoBase ®, GeoGratis (© Департамент природных ресурсов Канады), CanVec (© Департамент природных ресурсов Канады) и StatCan (Отдел Географии, Статистическое ведомство Канады).</li>\n<li><strong>Франция</strong>: Данные от Главного налогового управления.</i>\n<li><strong>Новая Зеландия.</strong> Данные из сведений о земельных ресурсах Новой Зеландии. Crown Copyright reserved. </li>\n\n\n<li><strong>Польша</strong>: Данные с <a\n href=\"http://ump.waw.pl/\">карт UMP-pcPL</a>. Copyright участники UMP-pcPL.\n <a href=\"http://wiki.openstreetmap.org/wiki/UMP2OSM_Importing\">\n Подробнее об использовании данных UMP проектом OSM</a></li>\n <li><strong>ЮАР</strong>: Данные из\n <a href=\"http://www.ngi.gov.za/\">Chief Directorate:\n National Geo-Spatial Information</a>, State copyright reserved.</li>\n<li><strong>Великобритания.</strong> Данные Ordnance Survey © Crown copyright и права на базы данных 2010.</li>\n</ul>\n\n<p>\nВключение данных в OpenStreetMap не означает, что поставщик первичных данных каким-либо образом поддерживает OpenStreetMap, предоставляет гарантии или принимает на себя какую-любую ответственность. \n</p>"
native:
mapping_link: начать картографирование
native_link: русской версии
inbox:
date: Дата
from: От
+ messages: У вас есть %{new_messages} и %{old_messages}
my_inbox: Мои входящие
no_messages_yet: У вас пока нет сообщений. Почему бы не пообщаться с %{people_mapping_nearby_link}?
outbox: исходящие
people_mapping_nearby: пользователями поблизости
subject: Тема
title: Входящие
- you_have: У вас %{new_count} новых сообщений и %{old_count} старых
mark:
as_read: Сообщение отмечено как прочитанное
as_unread: Сообщение отмечено как непрочитанное
subject: Тема
title: Исходящие
to: Кому
- you_have_sent_messages: Вы отправили %{count} сообщений
read:
back_to_inbox: Назад ко входящим
back_to_outbox: Назад к исходящим
ask_questions: Вы можете задать интересующие Вас вопросы о OpenStreetMap на нашем <a href="http://help.openstreetmap.org/">сайте вопросов и ответов</a> .
click_the_link: Если это действительно вы — добро пожаловать! Пожалуйста, перейдите по ссылке ниже, чтобы подтвердить регистрацию и просмотреть дополнительную информацию об OpenStreetMap
current_user: "Список пользователей, основанный на их местоположении, доступен здесь: <a href=\"http://wiki.openstreetmap.org/index.php?title=Category:Users_by_geographical_region&uselang=ru\">Category:Users_by_geographical_region</a>."
- get_reading: Прочтите об OpenStreetMap в <a href="http://wiki.openstreetmap.org/index.php?title=RU:Beginners_Guide&uselang=ru">вики</a>, узнайте последние новости в <a href="http://blog.openstreetmap.org/">блоге OpenStreetMap</a> или в <a href="http://twitter.com/openstreetmap">Twitter</a>. Ознакомьтесь с историей проекта в <a href="http://www.opengeodata.org/">блоге OpenGeoData</a>, автором которого является Стив Коуст (Steve Coast), основатель OpenStreetMap, в этом блоге есть <a href="http://www.opengeodata.org/?cat=13">подкасты</a>, которые также можно прослушать!
+ get_reading: Прочтите об OpenStreetMap <a href="http://wiki.openstreetmap.org/wiki/RU:Beginners%27_guide?uselang=ru">в вики</a>, узнайте последние новости в <a href="http://blog.openstreetmap.org/">блоге OpenStreetMap</a> или в <a href="http://twitter.com/openstreetmap">Twitter</a>. Ознакомьтесь с историей проекта в <a href="http://www.opengeodata.org/">блоге OpenGeoData</a>, автором которого является основатель OpenStreetMap Стив Кост (Steve Coast), в этом блоге есть <a href="http://www.opengeodata.org/?cat=13">подкасты</a>, которые также можно прослушать!
greeting: Здравствуйте!
hopefully_you: Кто-то (надеемся, что вы) хотел создать учетную запись на
introductory_video: Вы можете просмотреть %{introductory_video_link}.
more_videos_here: больше видео здесь
user_wiki_page: Рекомендуется создать свою пользовательскую вики-страницу, включив в неё теги категорий, описывающих ваше местонахождение, например, <a href="http://wiki.openstreetmap.org/index.php?title=Category:Users_in_Moscow&uselang=ru">[[Category:Users_in_Moscow]]</a>.
video_to_openstreetmap: ознакомительное видео об OpenStreetMap
- wiki_signup: Вы можете <a href="http://wiki.openstreetmap.org/index.php?title=Special:Userlogin&type=signup&returnto=Ru:Main_Page&uselang=ru">зарегистрироваться в вики OpenStreetMap</a>.
+ wiki_signup: Вы можете <a href="http://wiki.openstreetmap.org/index.php?title=Special:Userlogin&type=signup&returnto=RU:Заглавная_страница&uselang=ru">зарегистрироваться в вики OpenStreetMap</a>.
signup_confirm_plain:
ask_questions: "Вы можете задать интересующие Вас вопросы об OpenStreetMap на нашем сайте вопросов и ответов:"
blog_and_twitter: "Ознакомиться с последними новостями через блог OpenStreetMap или Twitter:"
hopefully_you: Кто-то (надеемся, что вы) хотел создать учетную запись на
introductory_video: "Вы можете посмотреть ознакомительное видео об OpenStreetMap здесь:"
more_videos: "Здесь ещё больше видео:"
- opengeodata: "OpenGeoData.org — это блог основателя OpenStreetMap — Стива Коуста (Steve Coast), здесь также можно найти подкасты:"
+ opengeodata: "OpenGeoData.org — это блог основателя OpenStreetMap Стива Коста (Steve Coast) и там также можно найти подкасты:"
the_wiki: "Почитать об OpenStreetMap в вики:"
- the_wiki_url: http://wiki.openstreetmap.org/index.php?title=RU:Beginners_Guide&uselang=ru
+ the_wiki_url: http://wiki.openstreetmap.org/wiki/RU:Beginners%27_guide?uselang=ru
user_wiki_1: Рекомендуется создать свою пользовательскую вики-страницу, включив в неё
user_wiki_2: теги категорий, описывающих ваше местонахождение, например, [[Category:Users_in_Moscow]].
wiki_signup: "Вы также можете зарегистрироваться в вики OpenStreetMap здесь:"
- wiki_signup_url: http://wiki.openstreetmap.org/index.php?title=Special:UserLogin&type=signup&returnto=RU%3AMain_Page&uselang=ru
+ wiki_signup_url: http://wiki.openstreetmap.org/index.php?title=Special:Userlogin&type=signup&returnto=RU:Заглавная_страница&uselang=ru
oauth:
oauthorize:
allow_read_gpx: читать ваши частные GPS-треки
js_3: Вы можете попробовать <a href="http://tah.openstreetmap.org/Browse/">статичную карту от Tiles@Home</a>, если вы не можете включить JavaScript.
license:
license_name: Creative Commons Attribution-Share Alike 2.0
- notice: Лицензировано на условиях %{license_name} проектом %{project_name} и его пользователями.
+ notice: Лицензировано на условиях %{license_name} проектом %{project_name} и теми, кто вносил в него вклад.
project_name: OpenStreetMap
permalink: Постоянная ссылка
remote_failed: Редактирование не удалось. Убедитесь, что JOSM или Merkaartor загружены и включена настройка дистанционного управления
wood: Роща
search:
search: Поиск
- search_help: "примеры: 'Вязьма', 'Regent Street, Cambridge', 'CB2 5AQ', или 'post offices near Lünen' <a href='http://wiki.openstreetmap.org/index.php?title=RU:Search&uselang=ru'>больше примеров…</a>"
+ search_help: "примеры: «Рыбинск», «Ростов-на-Дону», «1, Красная площадь, Москва», «кафе рядом с Арбат», «стоянки в Петергоф», «банкоматы около Крещатик», «Regent Street, Cambridge» или «CB2 5AQ» (<a href=http://wiki.openstreetmap.org/wiki/RU:Search?uselang=ru>больше примеров</a>.<br />Улучшенный русскоязычный поиск: <a href=http://openstreetmap.ru/#layer=S>OSM Россия</a> и <a href=http://openstreetmap.by/?lang=ru>OSM Беларусь</a>.<br />Проложить маршрут на карте: <a href=http://openstreetmap.by/?lang=ru>OSM Беларусь</a>, <a href=http://www.yournavigation.org/>YourNavigation</a>, <a href=http://maps.cloudmade.com/>CloudMade Maps</a> и <a href=http://open.mapquest.com/>MapQuest Open</a>."
submit_text: "?"
where_am_i: Где я?
where_am_i_title: Опишите ваше местоположение, воспользовавшись инструментом поиска
uploaded_at: "Передан на сервер:"
visibility: "Видимость:"
visibility_help: Что это значит?
- visibility_help_url: http://wiki.openstreetmap.org/wiki/RU:Visibility_of_GPS_traces
+ visibility_help_url: http://wiki.openstreetmap.org/wiki/RU:%D0%92%D0%B8%D0%B4%D0%B8%D0%BC%D0%BE%D1%81%D1%82%D1%8C_GPS-%D1%82%D1%80%D0%B5%D0%BA%D0%BE%D0%B2?uselang=ru
list:
public_traces: Общедоступные GPS-треки
public_traces_from: Общедоступные треки пользователя %{user}
trace_form:
description: "Описание:"
help: Справка
- help_url: http://wiki.openstreetmap.org/wiki/RU:Upload
+ help_url: http://wiki.openstreetmap.org/wiki/RU:%D0%97%D0%B0%D0%B3%D1%80%D1%83%D0%B7%D0%BA%D0%B0_%D1%82%D1%80%D0%B5%D0%BA%D0%BE%D0%B2?uselang=ru
tags: "Метки:"
tags_help: через запятую
upload_button: Передать на сервер
upload_gpx: Загрузить GPX-файл
visibility: "Видимость:"
visibility_help: Что это значит?
- visibility_help_url: http://wiki.openstreetmap.org/wiki/RU:Visibility_of_GPS_traces
+ visibility_help_url: http://wiki.openstreetmap.org/wiki/RU:%D0%92%D0%B8%D0%B4%D0%B8%D0%BC%D0%BE%D1%81%D1%82%D1%8C_GPS-%D1%82%D1%80%D0%B5%D0%BA%D0%BE%D0%B2?uselang=ru
trace_header:
see_all_traces: Показать все треки
see_your_traces: Показать все ваши треки
user:
account:
contributor terms:
- agreed: Вы согласились на новые условия Сотрудничества.
+ agreed: Вы согласились на новые Условия сотрудничества.
agreed_with_pd: Вы также заявили, что вы считаете свои правки находящимися в общественном достоянии.
heading: "Условия сотрудничества:"
+ link: http://wiki.openstreetmap.org/wiki/RU:Open_Database_License/Contributor_Terms?uselang=ru
link text: что это значит?
not yet agreed: Вы ещё не согласились с новыми Условиями участия.
review link text: Пожалуйста, перейдите по этой ссылке в удобное для вас время и подтвердите согласие с новыми Условиями участия.
unknown token: Похоже, что такого токена не существует.
confirm_email:
button: Подтвердить
- failure: Адрес электронной почты уже был подтверждён эти токеном.
+ failure: Адрес электронной почты уже был подтверждён этим токеном.
heading: Подтвердите изменение адреса электронной почты
press confirm button: Нажмите кнопку подтверждения ниже, чтобы подтвердить ваш новый адрес электронной почты.
success: Ваш адрес электронной почты подтверждён, спасибо за регистрацию!
summary_no_ip: "%{name} создан %{date}"
title: Пользователи
login:
+ account is suspended: Извините, ваша учётная запись была приостановлена из-за подозрительной активности.<br />Пожалуйста, свяжитесь с <a href="%{webmaster}">веб-мастером</a>, если вы хотите выяснить подробности.
account not active: Извините, ваша учётная запись ещё не активирована.<br />Чтобы активировать её, пожалуйста, нажмите на ссылку в отправленном вам письме, или <a href="%{reconfirm}">запросите отправку нового письма-подтверждения</a>.
- account suspended: Извините, ваша учётная запись была приостановлена из-за подозрительной активности.<br />Пожалуйста, свяжитесь с %{webmaster}, если вы хотите выяснить подробности.
auth failure: Извините, вход с этими именем или паролем невозможен.
create account minute: Создайте учётную запись. Это займёт не больше минуты.
email or username: "Эл. почта или имя пользователя:"
login_button: Представиться
lost password link: Забыли пароль?
new to osm: Впервые на OpenStreetMap?
- notice: <a href="http://www.osmfoundation.org/wiki/License/We_Are_Changing_The_License">Узнайте больше о предстоящем изменении лицензии OpenStreetMap</a> (<a href="http://wiki.openstreetmap.org/wiki/ODbL/We_Are_Changing_The_License">переводы</a>) (<a href="http://wiki.openstreetmap.org/wiki/Talk:ODbL/Upcoming">обсуждение</a>)
+ no account: У вас нет аккаунта?
+ notice: <a href="http://www.osmfoundation.org/wiki/License/We_Are_Changing_The_License?uselang=ru">Узнайте больше о предстоящем изменении лицензии OpenStreetMap</a> (<a href="http://wiki.openstreetmap.org/wiki/RU:ODbL/We_Are_Changing_The_License?uselang=ru">переводы</a>) (<a href="http://wiki.openstreetmap.org/wiki/Talk:ODbL/Upcoming">обсуждение</a>)
+ notice_terms: OpenStreetMap переходит на новую лицензию с 1 апреля 2012 года. Она такая же открытая как действующая, но юридически гораздо лучше подходит для нашей картографической базы данных. Мы хотели бы сохранить ваш вклад в OpenStreetMap, но это будет возможно только если вы согласны распространять ваши правки на условиях новой лицензии. В противном случае, нам придётся удалить их из базы данных.<br /><br />Пожалуйста, представьтесь системе и потратьте несколько секунд на ознакомление и принятие новых условий. Спасибо!
openid: "%{logo} OpenID:"
openid invalid: Извините, похоже, что ваш OpenID введён неправильно
openid missing provider: К сожалению, не удалось связаться с вашим поставщиком OpenID
title: Войти с помощью Yahoo
password: "Пароль:"
register now: Зарегистрируйтесь
- remember: "\nЗапомнить меня:"
+ remember: "Запомнить меня:"
title: Представьтесь
to make changes: Чтобы вносить изменения в данные OpenStreetMap, вы должны иметь учётную запись.
- webmaster: веб-мастер
with openid: "Вы также можете использовать для входа ваш OpenID:"
with username: "У вас уже есть учётная запись OpenStreetMap? Пожалуйста, войдите с вашим именем пользователя и паролем:"
logout:
logout_button: Выйти
title: Выйти
lost_password:
- email address: "Ð\90адÑ\80еÑ\81 Ñ\8dл. почты:"
+ email address: "Ð\90дÑ\80еÑ\81 Ñ\8dлекÑ\82Ñ\80онной почты:"
heading: Забыли пароль?
help_text: Введите адрес вашей электронной почты, который вы использовали для подписки, и мы вышлем инструкции, как можно обновить ваш пароль.
new password button: Вышлите мне новый пароль
fill_form: Заполните форму, и мы вышлем вам на электронную почту письмо с инструкцией по активации.
flash create success message: Спасибо за регистрацию. Мы выслали письмо с подтверждением на адрес %{email} и как только вы подтвердите вашу учётную запись, вы можете начать работать с картами.<br /><br />Если вы используете антиспам, посылающий запросы на подтверждение, внесите адрес webmaster@openstreetmap.org в ваш белый список, так как мы не можем отвечать на такие запросы.
heading: Создание учётной записи
- license_agreement: Когда вы подтверждаете вашу учётную запись, вам необходимо согласиться с <a href="http://www.osmfoundation.org/wiki/License/Contributor_Terms">условиями сотрудничества</a>.
+ license_agreement: Когда вы подтверждаете вашу учётную запись, вам необходимо согласиться с <a href="http://wiki.openstreetmap.org/wiki/RU:Open_Database_License/Contributor_Terms?uselang=ru">условиями сотрудничества</a>.
no_auto_account_create: К сожалению, сейчас мы не можем автоматически создать для вас учётную запись.
not displayed publicly: Не отображается публично (см. <a href="http://wiki.openstreetmap.org/index.php?title=Privacy_Policy&uselang=ru" title="вики политика конфиденциальности включая часть про адрес эл. почты">политику конфиденциальности</a>)
openid: "%{logo} OpenID:"
block_history: полученные блокировки
blocks by me: наложенные мною блокировки
blocks on me: мои блокировки
+ comments: комментарии
confirm: Подтвердить
confirm_user: подтвердить этого пользователя
create_block: блокировать пользователя
created from: "Создано из:"
+ ct accepted: Приняты %{ago} назад
+ ct declined: Отклонены
+ ct status: "Условия участия:"
+ ct undecided: Неопределено
deactivate_user: деактивировать этого пользователя
delete_user: удалить этого пользователя
description: Описание
diary: дневник
edits: правки
email address: "Адрес Email:"
+ friends_changesets: Просмотреть все наборы правок друзей
+ friends_diaries: Просмотреть все дневниковые записи друзей
hide_user: скрыть этого пользователя
if set location: Если вы укажете свое местоположение, ниже появятся карта и дополнительные инструменты. Вы можете установить ваше местоположение на вашей странице %{settings_link}.
km away: "%{count} км от вас"
m away: "%{count} м от вас"
mapper since: "Зарегистрирован:"
moderator_history: созданные блокировки
+ my comments: мои комментарии
my diary: мой дневник
my edits: мои правки
my settings: мои настройки
my traces: мои треки
nearby users: Другие ближайшие пользователи
+ nearby_changesets: Просмотреть все наборы правок соседних участников
+ nearby_diaries: Просмотреть все дневниковые записи соседних участников
new diary entry: новая запись
no friends: Вы не добавили ещё ни одного друга.
no nearby users: Пока нет других пользователей, признающих, что занимающихся составлением карты поблизости.
# Messages for Slovak (Slovenčina)
# Exported from translatewiki.net
# Export driver: syck-pecl
+# Author: Jose1711
# Author: Lesny skriatok
# Author: Rudko
# Author: Vladolc
licence: Licencia
longitude: "Dĺžka:"
manually_select: Ručne vyberte rôzne oblasti
- mapnik_image: Zobrazenie Mapnik
max: max
options: Možnosti
osm_xml_data: OpenStreetMap XML Dáta
- osmarender_image: Zobrazenie Osmarender
output: Výstup
scale: Mierka
too_large:
inbox:
date: Dátum
from: Od
+ messages: Máte %{new_messages} a %{old_messages}
my_inbox: Moja schránka došlej pošty
no_messages_yet: Nemáte žiadne správy. Prečo ste sa nespojili s niekým z %{people_mapping_nearby_link}?
outbox: odoslaná pošta
people_mapping_nearby: blízko mapujúci ľudia
subject: Predmet
title: Prichádzajúca pošta
- you_have: Máte %{new_count} nových a %{old_count} starých správ
mark:
as_read: Správa označená ako prečítaná
as_unread: Správa označená ako neprečítaná
subject: Predmet
title: Odoslaná pošta
to: Komu
- you_have_sent_messages: Máte %{count} odoslaných správ
read:
back_to_inbox: Späť do prijatých správ
back_to_outbox: Späť do schránky odoslanej pošty
see_all_traces: Zobraziť všetky stopy
see_your_traces: Zobraziť všetky vaše stopy
traces_waiting: Máte %{count} stopy čakajúce na nahratie. Prosím zvážte toto čakanie, dokedy neukončíte nahrávanie niečoho iného, pokiaľ nie je blok v rade pre iných užívateľov.
+ upload_trace: Nahrať stopu
trace_optionals:
tags: Tagy
trace_paging_nav:
trackable: Zaznamenávané stopy (zdieľané iba ako anonymné, usporiadané body s časovými značkami)
user:
account:
+ contributor terms:
+ agreed: Súhlasili ste s novými Podmienkami prispievania.
current email address: "Aktuálna E-mailová Adresa:"
delete image: Odstrániť aktuálny obrázok
email never displayed publicly: (nezobrazovaný verejne)
new email address: "Nová E-mailová Adresa:"
new image: "Pridať obrázok:"
no home location: Nezadali ste svoje domovské miesto.
+ openid:
+ link text: čo je toto?
+ preferred editor: "Preferovaný editor:"
preferred languages: "Uprednostňované jazyky:"
profile description: "Popis profilu:"
public editing:
title: Resetnúť heslo
set_home:
flash success: Domáca poloha úspešne uložená
+ terms:
+ heading: Podmienky prispievania
+ title: Podmienky prispievania
view:
activate_user: aktivovať tohto užívateľa
add as friend: pridať ako priateľa
- ago: (pred %{time_in_words_ago})
+ ago: (%{time_in_words_ago})
block_history: zobraziť prijaté položky
blocks by me: blokovať pre mňa
- blocks on me: v mojom bloku
+ blocks on me: moje zablokovania
confirm: Potvrdiť
create_block: blokovať tohto užívateľa
created from: "Vytvorené od:"
+ ct accepted: Prijaté pred %{ago}
deactivate_user: deaktivovať tohto užívateľa
delete_user: vymazať tohto užívateľa
description: Popis
email address: "Emailová adresa:"
hide_user: skryť tohto užívateľa
if set location: Ak nastavíte vašu polohu, a pretty map and stuff sa objavý dole. Môžete nastaviť vašu domovskú polohu na vašej %{settings_link} stránke.
- km away: "%{count}km vzdialený"
- m away: "%{count}m vzdialený"
- mapper since: "Mapovač od:"
+ km away: Vzdialený %{count}km
+ latest edit: "Posledné úpravy %{ago}:"
+ m away: Vzdialený %{count}m
+ mapper since: "Mapuje od:"
moderator_history: zobraziť zadaný blok
my diary: môj diár
my edits: moje úpravy
my settings: moje nastavenia
my traces: moje stopy
- nearby users: Iný blízky užívatelia
+ nearby users: Ďalší užívatelia v okolí
new diary entry: nový údaj denníka
no friends: Ešte nemáte pridaných žiadnych priateľov.
no nearby users: Nie je tu iný užívateľ, ktorý priznáva mapovanie v okolí.
licence: Dovoljenje
longitude: "Dol:"
manually_select: Ročno izberite drugo področje
- mapnik_image: Mapnik slika zemljevida
max: največ
options: Možnosti
osm_xml_data: Podatki OpenStreetMap v zapisu XML
- osmarender_image: Osmarender slika zemljevida
output: Rezultat
paste_html: Uporabite ta HTML za vključitev zemljevida na spletno stran
scale: Merilo
people_mapping_nearby: ljudmi, ki kartirajo blizu vas
subject: Zadeva
title: Prejeta pošta
- you_have: Imate %{new_count} novih, neprebranih in %{old_count} starih, že prebranih sporočil
mark:
as_read: Sporočilo označeno kot prebrano
as_unread: Sporočilo označeno kot neprebrano
subject: Zadeva
title: Poslana pošta
to: Za
- you_have_sent_messages: Poslali ste %{count} sporočil
read:
back_to_inbox: Nazaj na prejeto pošto
back_to_outbox: Nazaj na poslano pošto
list_tokens: "Naslednji žetoni so bili izdani aplikacijam za vaše ime:"
my_apps: Moje odjemalskie aplikacije
my_tokens: Moje pooblaščene aplikacije
- no_apps: Imate aplikacijo, ki jo želite registrirati za uporabo z nami po %{OAuth} standardu? Najprej morate registrirati vašo spletno aplikacijo, preden bo lahko izvajala OAuth prijave za to storitev.
+ no_apps: Imate aplikacijo, ki jo želite registrirati za uporabo z nami po %{oauth} standardu? Najprej morate registrirati vašo spletno aplikacijo, preden bo lahko izvajala OAuth prijave za to storitev.
register_new: Registriraj svojo aplikacijo
registered_apps: "Registrirane imate naslednje odjemalske aplikacije:"
revoke: Prekliči!
title: Uporabniki
login:
account not active: Oprostite, vaš uporabniški račun še ni aktiven.<br />Za aktivacijo prosimo uporabite povezavo, ki ste jo prejeli v elektronskem sporočilu za potrditev uporabniškega računa, ali <a href="%{reconfirm}">zahtevajte novo potrditveno elektronsko sporočilo</a>.
- account suspended: Žal je bil vaš račun zaklenjen zaradi sumljive dejavnosti.<br />Obrnite se na %{webmaster}, če želite razpravljati o tem.
auth failure: Oprostite, prijava s temi podatki ni uspela.
create account minute: Naredite si račun. To vam bo vzelo le minuto.
email or username: "Naslov e-pošte ali uporabniško ime:"
remember: "Zapomni si me:"
title: Prijava
to make changes: Če želite spreminjati podatke na OpenStreetMap, morate imeti račun.
- webmaster: skrbnik strani
with openid: "Lahko se prijavite tudi s svojim OpenID-jrm:"
with username: "Že imate OpenStreetMap račun? Prosim, prijavite se s svojim uporabniškim imenom in geslom:"
logout:
not_a_moderator: Morate biti moderator za izvedbo tega dejanja.
helper:
time_future: Konča v %{time}.
- time_past: Je končala % {čas} nazaj.
+ time_past: Je končala %{time} nazaj.
until_login: Aktivna dokler uporabnik se prijavi.
index:
empty: Ni bilo še nobene blokade.
show: Prikaži
status: Stanje
time_future: Konča v %{time}
- time_past: Je končala % {čas} nazaj
+ time_past: Je končala %{time} nazaj
title: "%{block_on} je blokiral %{block_by}"
update:
only_creator_can_edit: Samo moderator, ki je ustvaril to blokado, jo lahko ureja.
# Messages for Albanian (Shqip)
# Exported from translatewiki.net
# Export driver: syck-pecl
+# Author: Euriditi
# Author: Mdupont
# Author: MicroBoy
# Author: Mikullovci11
sq:
activerecord:
attributes:
+ diary_comment:
+ body: Trupi i mesazhit
+ diary_entry:
+ language: Gjuha
+ latitude: Gjerësia gjeografike
+ longitude: Gjatësia gjeografike
+ title: Titulli
+ user: Përdoruesi
+ friend:
+ friend: Mik
+ user: Përdoruesi
message:
+ body: Trupi i mesazhit
+ recipient: Marrësi
+ sender: Dërguesi
title: Titulli
trace:
+ description: Përshkrimi
+ latitude: Gjerësia gjeografike
+ longitude: Gjatësia gjeografike
name: Emri
+ public: Publik
+ size: Madhësia
+ user: Përdoruesi
+ visible: I dukshëm
+ user:
+ active: Aktiv
+ description: Përshkrimi
+ display_name: Emër i dukshëm
+ email: Email
+ languages: Gjuha
+ pass_crypt: Fjalëkalimi
models:
acl: Qasu në Listën e Kontrollit
changeset: Ndryshim
message: Porosi
node: Nyjë
node_tag: Etiketë nyjë
+ notifier: Lajmëruesi
old_node: Nyjë e vjetër
old_node_tag: Etiketë e vjetër e nyjës
old_relation: Marrëdhënie e vjetër
+ old_relation_member: Anëtar me lidhje të vjetër
+ old_relation_tag: Etiketë relacioni e vjetër
+ old_way: Rrugë e vjetër
+ old_way_node: Nyje rrugore e vjetër
+ old_way_tag: Etiketë rrugore e vjetër
+ relation: Lidhja
+ relation_member: Anëtar me lidhje të vjetër
+ relation_tag: Etiketë lidhjeje
+ session: Seksioni
+ trace: Gjurma
+ tracepoint: Pika e gjurmës
+ tracetag: Etiketa e gjurmës
+ user: Përdoruesi
+ user_preference: Parapëlqimet e përdoruesit
+ user_token: Shenja e përdoruesit
+ way: Rruga
+ way_node: Nyja e rrugës
+ way_tag: Etiketa e rrugës
browse:
changeset:
changeset: "Ndryshim : %{id}"
show_area_box: Kqyre Zonen e Barokes
common_details:
changeset_comment: "Komenti :"
+ deleted_at: "Fshirë në:"
+ deleted_by: "Fshirë në:"
edited_at: "U ndrzshe te:"
edited_by: "Edituar nga:"
in_changeset: "En ndryshimin :"
entry_role: Lidhja %{relation_name} (sikur %{relation_role})
map:
deleted: E Fshirë
+ edit:
+ area: Zona e redaktimit
+ node: Nyja e redaktimit
+ relation: Lidhja e redaktimit
+ way: Ndrysho rrugën
larger:
area: Kqyre zonen n'hart ma t'madhe
node: Kqyre piken n'hart ma t'madhe
prev_node_tooltip: Pika e kalume
prev_relation_tooltip: Lidhja e kalume
prev_way_tooltip: Mnyra e mahershme
+ paging:
+ all:
+ next: "%{id} »"
+ prev: « %{id}
+ user:
+ next: "%{id} »"
+ prev: « %{id}
user:
name_changeset_tooltip: Shiko editimet nga %{user}
next_changeset_tooltip: Tjetri ndryshim prej %{user}
relation_history_title: "Historija e Lidhjes: %{relation_name}"
view_details: kqyre n'detaje
relation_member:
+ entry: "%{type} %{name}"
entry_role: "%{type} %{name} asht si %{role}"
type:
node: Pikë
details: Detajet
drag_a_box: Bone ni kuti n'hart edhe zgedhe zonen
edited_by_user_at_timestamp: Ndryshuar nga [[user]] në [[timestamp]]
+ hide_areas: Fshih zonat
history_for_feature: Historija për [[feature]]
load_data: Zgedhi senet
loaded_an_area_with_num_features: "Ti e ke marr ni zon qe ka [[num_features]] . E do browsera nuk e qesin fort mir kualitetin e seneve me ta. Browseri duhet me i kallxu ma pak se 100 sene n'tnjejtin vakt: me bo dishka qeter munet me ta kadalsu browserin. Qe je i sigurt nese don mi pa senet, duhesh me kliku n'pull."
node: Pikë
way: Rruga
private_user: perdorus privat
+ show_areas: Shfaq zonat
show_history: Shfaq Historinë
unable_to_load_size: "Nuk kemi mujt mi shfaq: madhsin e kutis [[bbox_size]] asht shum e madhe (duhet me kan ma e vogel se %{max_bbox_size})"
wait: Prit...
view_details: kqyre n'detaje
way_history: Historija e Udhës
way_history_title: "Historija e udhës: %{way_name}"
+ changeset:
+ changeset:
+ anonymous: Anonim
+ big_area: (e madhe)
+ id: "#%{id}"
+ no_comment: (asgjë)
+ no_edits: (asnjë redaktim)
+ show_area_box: Shfaq kutinë e zonës
+ still_editing: (redaktimi po vazhdon ende)
+ view_changeset_details: Shiko detajet e grupit të ndryshimeve
+ changeset_paging_nav:
+ next: Vazhdo »
+ previous: « Mëparshëm
+ showing_page: Duke shfaqun faqen %{{page}}
+ changesets:
+ area: Zona
+ comment: Komentoni
+ id: ID
+ saved_at: Ruaje në
+ user: Përdoruesi
+ list:
+ description: Ndryshime së fundmi
+ description_bbox: Ndryshime brënda %{bbox}
+ description_friend: Ndryshime nga miqtë e tu
+ description_nearby: Ndryshime nga përdorues të zonës
+ description_user: Grupi i ndryshimeve të %{user}
+ description_user_bbox: Ndryshime nga përdoruesi %{user} brënda %{bbox}
+ heading: Grupi i ndryshimeve
+ heading_bbox: Grupi i ndryshimeve
+ heading_friend: Grupi i ndryshimeve
+ heading_nearby: Grupi i ndryshimeve
+ heading_user: Grupi i ndryshimeve
+ heading_user_bbox: Grupi i ndryshimeve
+ title: Grupi i ndryshimeve
+ title_bbox: Ndryshime brënda %{bbox}
+ title_friend: Ndryshime nga miqtë e tu
+ title_nearby: Ndryshime nga përdorues të zonës
+ title_user: Grupi i ndryshimeve të %{user}
+ title_user_bbox: Ndryshime nga përdoruesi %{user} brënda %{bbox}
+ timeout:
+ sorry: Na vjen keq, lista e grupit të ndryshimeve që u kërkua morri shumë kohë për tu shkarkuar.
diary_entry:
+ diary_comment:
+ confirm: Konfirmo
diary_entry:
+ comment_count:
+ one: 1 koment
+ other: "%{count} komente"
comment_link: Komento në këtë shënim
confirm: Konfirmoje
edit_link: Ndryshoje qët shënim
hide_link: Mshefe qët shënim
edit:
+ body: Trupi i mesazhit
language: "Gjuha:"
+ latitude: Gjerësia gjeografike
location: "Lokacioni:"
+ longitude: Gjatësia gjeografike
save_button: Ruje
+ subject: "Subjekti:"
+ title: Redakto shënimin në ditar
+ use_map_link: përdor hartën
list:
+ in_language_title: Hyrje në ditar në %{language}
+ new: Hyrje e re në ditar
+ new_title: Krijo një hyrje të re në ditarin tënd
+ newer_entries: Shënimet e fundit
+ no_entries: Nuk u gjet asnjë hyrje në ditar
older_entries: Shënimet e Vjetra
+ recent_entries: "Shënime në ditar së fundmi:"
+ title: Ditatët e përdoruesve
+ title_friends: Ditarët e miqve
+ title_nearby: Ditarët e përdoruesve pranë
user_title: Ditari i %{user}
location:
+ edit: Redakto
location: "Lokacioni:"
view: Kshyre
+ new:
+ title: Hyrje e re në ditar
no_such_entry:
heading: "Nuk ka shënim me id: %{id}"
no_such_user:
body: Me na fal, po nuk ka anëtarë me emnin %{user}. Ju lutem kshyrni shkronjat, ose nashta lidhja që keni trus është gabim.
+ heading: Përdoruesi %{user} nuk ekziston
title: Nuk ka anëtarë të tillë
view:
leave_a_comment: Lene naj koment
+ login: Kyçuni
save_button: Ruaj
+ user_title: Ditari i %{user}
editor:
default: Default (momentalisht %{name})
potlatch:
name: Kontrollë prej së largu
export:
start:
+ add_marker: Shto shënjues në hartë
area_to_export: Zona per Eksport
export_button: Eksporto
export_details: Të dhënat e OpenStreetMap janë të licencuara nëpërmjet <a href="http://creativecommons.org/licenses/by-sa/2.0/">Creative Commons Attribution-ShareAlike 2.0 license</a>.
licence: Licensa
longitude: "Lon:"
manually_select: Manualisht zgedhe ni zon te ndryshme
- mapnik_image: Mapin fotografi
max: maks
options: Opcionet
osm_xml_data: OpenStreetMap XML të dhana
- osmarender_image: Osamarender fotografi
output: Outputi
paste_html: Fute HTML per me ngjit ne web sajt
scale: Shkallë
search:
title:
ca_postcode: Rezultatet nga <a href="http://geocoder.ca/">Geocoder.CA</a>
+ geonames: Rezultate nga <a href="http://www.geonames.org/">GeoNames</a>
us_postcode: Rezultatet nga <a href="http://geocoder.us/">Geocoder.us</a>
+ search_osm_namefinder:
+ suffix_suburb: "%{suffix}, %{parentname}"
search_osm_nominatim:
prefix:
amenity:
+ airport: Aeroport
+ arts_centre: Qendër arti
+ atm: Bankomat
+ auditorium: Auditor
+ bank: Bankë
+ bar: Lokal
+ bench: Stol
+ bicycle_parking: Parkim biçikletash
+ bicycle_rental: Biçikleta me qera
+ brothel: Shtëpi publike
+ bureau_de_change: Këmbim valute
+ bus_station: Stacion autobuzi
+ cafe: Kafe
+ car_rental: Makina me qera
+ car_sharing: Car Sharing
+ car_wash: Lavazh për makina
+ casino: Kazino
+ cinema: Kinema
+ clinic: Klinikë
+ club: Klub
+ college: Kolegj
+ community_centre: Qendër komunitare
+ courthouse: Gjykatë
+ crematorium: Krematorium
dentist: Dentist
+ dormitory: Konvikt
+ drinking_water: Ujë i pijshëm
embassy: Ambasada
+ emergency_phone: Kabinë telefoni për emergjencë
+ fast_food: Ushqim i shpejtë
+ ferry_terminal: Terminal i trageteve
+ fire_hydrant: Pompë zjarrfikse
fire_station: Zjarrëfiksat
+ fountain: Shatërvan
+ fuel: Stacion karburanti
+ grave_yard: Varrezë
+ gym: Qendër fitness / Palestër
+ hall: Sallë
+ health_centre: Qendër shëndetsore
+ hospital: Spital
+ hotel: Hotel
+ hunting_stand: Vend gjuetie
+ ice_cream: Akullore
+ kindergarten: Kopësht për fëmijë
+ library: Biblioteka
+ market: Market
+ marketplace: Treg
+ mountain_rescue: Forca e shpëtimit në mal
+ nightclub: Klub nate
+ nursery: Çerdhe
+ nursing_home: Çerdhe
+ office: Zyra
+ park: Park
+ parking: Vend parkim
+ pharmacy: Barnatore
+ place_of_worship: Vend kulti
+ police: Policia
+ post_box: Kutia postare
+ post_office: Kutia postare
+ preschool: Cikli para-shkollor
+ prison: Burg
+ pub: Pub
+ public_building: Ndërtesë publike
+ public_market: Treg publik
+ reception_area: Zona e pritjes
+ recycling: Pikë e riciklimit
+ restaurant: Restorant
+ sauna: Sauna
+ school: Shkollë
+ shelter: Strehë
+ shop: Dyqan
+ shopping: Tregtar
+ social_club: Klub shoqëror
+ studio: Studio
+ supermarket: Supermarket
+ taxi: Taksi
+ telephone: Telefon publik
theatre: Teatër
+ toilets: Banjë publike
+ townhall: Bashkia
university: Universitet
+ vending_machine: Shitës automatik
+ veterinary: Veterinari
+ village_hall: Komuna
+ waste_basket: Kosh plehrash
+ wifi: Shërbim WiFi
+ youth_centre: Qendër Rinore
+ boundary:
+ administrative: Kufi administrativ
building:
+ apartments: Bllok apartamentesh
+ block: Kompleks me ndërtesa
+ bunker: Bunker
+ chapel: Kishë
+ church: Kishë
+ city_hall: Bashkia
+ commercial: Qendër tregtare
+ dormitory: Konvikt
+ entrance: Hyrje godine
+ faculty: Godinë fakulteti
+ hotel: Hotel
+ house: Shtëpi
+ public: Ndërtesë publike
+ shop: Dyqan
+ stadium: Stadium
store: Dyqan
+ terrace: Tarracë
+ tower: Kullë
+ train_station: Stacion hekurudhor
+ university: Godinë universitare
+ highway:
+ bridleway: Rrugë për kalërim
+ ford: Va
+ gate: Portë
+ living_street: Rrugë për këmbësorë
historic:
church: Kisha
museum: Muze
picnic_site: Vend per Piknik
valley: Lugine
zoo: Kopsht zoologjik
+ prefix_format: "%{name}"
javascripts:
+ map:
+ base:
+ mapquest: MapQuest Open
+ overlays:
+ maplint: Maplint
site:
edit_tooltip: Edit Harta
layouts:
edit: Redakto
+ help_url: http://help.openstreetmap.org/
+ intro_3_partners_url: http://wiki.openstreetmap.org/wiki/Partners
+ intro_3_ucl: Qendra UCL VR
+ license:
+ alt: CC by-sa 2.0
log_in: Kyçuni
log_in_tooltip: Hyni ne me një llogari ekzistuese
logout: Ç'kyçu
logout_tooltip: Ç'kyçu
make_a_donation:
text: Bëni një donacion
+ project_name:
+ h1: OpenStreetMap
+ title: OpenStreetMap
+ wiki_url: http://wiki.openstreetmap.org/
license_page:
foreign:
english_link: orgjianl anglisht
inbox:
date: Data
from: Prej
- you_have: I ki %{new_count} mesazhe të reja dhe %{old_count} mesazhe të vjetra
new:
limit_exceeded: Ju keni dërguar shumë mesazhe kohët e fundit. Ju lutem prisni një kohë para se të dërgoni ndonjë tjetër.
title: Qo mesazh
no_such_user:
body: Na vjen keq nuk ka asnjë përdorues me atë emër.
- outbox:
- you_have_sent_messages: I ki %{count} mesazhe të dërgume
read:
reading_your_sent_messages: Tu i lexue mesazhet e dërgume
sent_message_summary:
email_confirm_plain:
greeting: Tung,
gpx_notification:
+ failure:
+ import_failures_url: http://wiki.openstreetmap.org/wiki/GPX_Import_Failures
greeting: Tung,
message_notification:
footer1: Ju gjithashtu mund të lexoni mesazhet në %{readurl}
hi: Tung %{to_user},
+ subject_header: "[OpenStreetMap] %{subject}"
signup_confirm_html:
click_the_link: Nëse ky je ti, mirë se erdhët! Ju lutem trusni lidhjen e maposhtme për me konfirmu atë llogari dhe lexoni ma shumë informata rreth OpenStreetMap
introductory_video: Ju muni me shiku një %{introductory_video_link}.
click_the_link_2: llogarin tonde dhe lexo ma shumë informata për OpenStreetMap.
introductory_video: "Këtu ju muni me shiku një video hyrëse për në OpenStreetMap:"
more_videos: "Ma shumë video keni këtu:"
+ the_wiki_url: http://wiki.openstreetmap.org/wiki/Beginners%27_Guide
wiki_signup: "Ti munesh gjithashtu me u regjistru në OpenStreetMap wiki:"
+ wiki_signup_url: http://wiki.openstreetmap.org/index.php?title=Special:Userlogin&type=signup&returnto=Main_Page
oauth_clients:
form:
name: Emri
new:
submit: Regjistrohu
+ printable_name:
+ with_version: "%{id}, v%{version}"
site:
edit:
+ anon_edits: (%{link})
flash_player_required: Ju duhet të keni Flash player për ta përdorur Potlatch, Flash editorin e OpenStreetMap. Ju mundeni <a href="http://www.adobe.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash">ta shkarkoni Flash Player nga Adobe.com</a>. <a href="http://wiki.openstreetmap.org/wiki/Editing">Disa mënyra të tjera</a> janë të mundshme për ta edituar OpenStreetMap.
index:
license:
uploaded_at: "Te ngarkume:"
visibility: Dukshmenia
visibility_help: Çka do me than kjo?
+ visibility_help_url: http://wiki.openstreetmap.org/wiki/Visibility_of_GPS_traces
list:
public_traces: Të dhanat publike të GPS-IT
public_traces_from: Të dhana publike të GPS-it pej %{user}
trackable: E GJURMUESHME
view_map: Kshyre Harten
trace_form:
- description: Përshkrimi
+ description: "Përshkrimi:"
help: Ndihma
- tags: Etiketat
+ help_url: http://wiki.openstreetmap.org/wiki/Upload
+ tags: "Etiketat:"
tags_help: Presje e kufizume
upload_button: Ngarko
- upload_gpx: Ngarko nje skead GPX
- visibility: Pamshmeria
+ upload_gpx: "Ngarko një skedar GPX:"
+ visibility: "Dukshmëria:"
visibility_help: çfarë do të thotë kjo?
+ visibility_help_url: http://wiki.openstreetmap.org/wiki/Visibility_of_GPS_traces
trace_header:
see_all_traces: Kshyre kejt të dhanat
see_your_traces: Shikoj kejt të dhanat tuja
agreed: Ju duhet të jeni pajtuar me Kushtet e reja të Kontribuesit.
agreed_with_pd: Ju gjithashtu keni deklaruar se ju konsideroni që editimet tuaja të jenë në Domenin Publik.
heading: "Kushtet e Kontribimit:"
+ link: http://www.osmfoundation.org/wiki/License/Contributor_Terms
link text: Çka është kjo?
not yet agreed: Ju ende nuk jeni pajtuar me Kushtet e reja për Kontribues.
review link text: Ju lutemi që të përcillni këtë link për të lehtësinë tuaj për të rishikuar dhe pranuar Kuhstet e Kontribuesit.
not displayed publicly: Nuk u shfaq publikisht (see <a href="http://wiki.openstreetmap.org/wiki/Privacy_Policy" title="wiki privacy policy including section on email addresses">privacy policy</a>)
password: "Fjalëkalimi:"
terms accepted: Faleminderit që keni pranuar kushtet e reja për kontribues!
+ terms declined url: http://wiki.openstreetmap.org/wiki/Contributor_Terms_Declined
title: Krijo llogari
no_such_user:
body: Na vje keq, ska shfrytzues me ket emen %{user}. Ju lutmi kontrolloni shkrimin, ose nashta linku ku keni kliku asht gabim.
agree: Pajtohem
consider_pd: Përveç marrëveshjes së mësipërme, unë i konsideroj kontributet e mia të jenë në Domenin Publik
consider_pd_why: çfarë është kjo?
+ consider_pd_why_url: http://www.osmfoundation.org/wiki/License/Why_would_I_want_my_contributions_to_be_public_domain
decline: Nuk e pranoj
+ declined: http://wiki.openstreetmap.org/wiki/Contributor_Terms_Declined
heading: Kushtet e Kontribimit
legale_names:
france: Francë
edited_at: "Измењено:"
edited_by: "Изменио:"
in_changeset: "У скупу измена:"
- version: "Ð\98здаÑ\9aе:"
+ version: "Ð\92еÑ\80зиÑ\98а:"
containing_relation:
entry: Однос %{relation_name}
entry_role: Однос %{relation_name} (као %{relation_role})
changesets:
area: Подручје
comment: Коментар
- id: Ð\98Ð\91
+ id: Ð\9dазнака
saved_at: Сачувано у
user: Корисник
list:
description: Скорашње измене
description_bbox: Скупови измена унутар %{bbox}
+ description_friend: Измене ваших пријатеља
+ description_nearby: Измене од околних корисника
description_user: Скупови измена корисника %{user}
description_user_bbox: Скупови измена корисника %{user} унутар %{bbox}
heading: Скупови измена
heading_bbox: Скупови измена
+ heading_friend: Измене
+ heading_nearby: Измене
heading_user: Скупови измена
heading_user_bbox: Скупови измена
title: Скупови измена
title_bbox: Скупови измена унутар %{bbox}
+ title_friend: Измене ваших пријатеља
+ title_nearby: Измене од околних корисника
title_user: Скупови измена корисника %{user}
title_user_bbox: Скупови измена корисника %{user} унутар %{bbox}
timeout:
older_entries: Старији уноси
recent_entries: "Скорашњи уноси у дневнику:"
title: Кориснички дневници
+ title_friends: Дневници пријатеља
+ title_nearby: Дневници околних корисника
user_title: Дневник корисника %{user}
location:
edit: Уреди
licence: Лиценца
longitude: "ГД:"
manually_select: Ручно изаберите друго подручје
- mapnik_image: Мапник слика
max: највише
options: Могућности
osm_xml_data: Опенстритмап XML подаци
- osmarender_image: Осмарендер слика
output: Излаз
paste_html: Убаците HTML код за уграђивање на странице
scale: Размера
veterinary: Ветеринарска хирургија
village_hall: Сеоски дом
waste_basket: Корпа за отпатке
- wifi: Ð\92и-Фи пÑ\80иÑ\81Ñ\82Ñ\83п
+ wifi: Ð\91ежиÑ\87ни инÑ\82еÑ\80неÑ\82
youth_centre: Дом омладине
boundary:
administrative: Административна граница
place:
airport: Аеродром
city: Град
- country: Ð\94Ñ\80жава
+ country: Ð\97емÑ\99а
county: Округ
farm: Фарма
hamlet: Заселак
inbox:
date: Датум
from: Од
+ messages: Имате %{new_messages} и %{old_messages}
my_inbox: Примљене
+ new_messages:
+ one: "%{count} нова порука"
+ other: "%{count} нове поруке"
no_messages_yet: Још увек немате порука. Зашто не бисте ступили у контакт с %{people_mapping_nearby_link}?
+ old_messages:
+ one: "%{count} стара порука"
+ other: "%{count} старе поруке"
outbox: послате
people_mapping_nearby: маперима у вашој околини
subject: Наслов
title: Примљене
- you_have: Имате %{new_count} нових и %{old_count} старих порука
mark:
as_read: Порука је означена као прочитана
as_unread: Порука је означена као непрочитана
outbox:
date: Датум
inbox: примљене
+ messages:
+ one: Имате %{count} послату поруку
+ other: Имате %{count} послате поруке
my_inbox: "%{inbox_link}"
no_sent_messages: Још увек немате послатих порука. Зашто не бисте ступили у контакт с %{people_mapping_nearby_link}?
outbox: послате
subject: Наслов
title: Послате
to: За
- you_have_sent_messages: Имате %{count} послатих порука
read:
back_to_inbox: Назад на примљене
back_to_outbox: Назад на послате
count_points: "%{count} тачака"
edit: уреди
edit_map: Уреди мапу
- identifiable: Ð\9fÐ\9eÐ\98СТÐ\9eÐ\92Ð\95ТÐ\89Ð\98Ð\92
+ identifiable: Ð\9cÐ\9eÐ\96Ð\95 СÐ\95 Ð\9fÐ Ð\95Ð\9fÐ\9eÐ\97Ð\9dÐ\90ТÐ\98
in: у
map: мапа
more: више
private: ПРИВАТНИ
public: ЈАВНИ
trace_details: Погледајте детаље о трагу
- trackable: УТÐ\92Ð Ð\94Ð\89Ð\98Ð\92
+ trackable: Ð\9cÐ\9eÐ\96Ð\95 СÐ\95 Ð\9fÐ Ð\90ТÐ\98ТÐ\98
view_map: Погледај карту
trace_form:
description: "Опис:"
failure: Корисник %{name} није пронађен.
success: Послали смо нову потврдну поруку на %{email}. Након што потврдите свој налог, моћи ћете да почнете с мапирањем.<br /><br />Ако користите систем против непожељних порука, додајте webmaster@openstreetmap.org у списак дозвољених адреса јер нисмо у могућности да одговоримо на било који захтев за потврду.
filter:
- not_an_administrator: Ð\9cоÑ\80аÑ\82е биÑ\82и администратор да бисте извршили ову радњу.
+ not_an_administrator: ТÑ\80еба да бÑ\83деÑ\82е администратор да бисте извршили ову радњу.
go_public:
flash success: Све ваше измене су сада јавне. Дозвољено вам је уређивање.
list:
summary_no_ip: "%{name} направљено %{date}"
title: Корисници
login:
+ account is suspended: Нажалост, ваш налог је укинут због сумњиве активности.<br />Обратите се <a href="%{webmaster}">администратору</a> ако желите да поразговарате о проблему.
account not active: Жао нам је, ваш налог још увек није активиран. <br />Пратите везу у поруци за потврду е-поште да бисте га активирали или <a href="%{reconfirm}">затражите нову поруку</a>.
- account suspended: Жао нам је, ваш налог је привремено укинут због сумњиве активности.<br />Контактирајте %{webmaster}а ако желите да се жалите.
auth failure: Не могу да вас пријавим с унетим подацима.
create account minute: Отворите налог. Потребно је само неколико тренутака.
email or username: "Е-адреса или корисничко име:"
lost password link: Заборавили сте лозинку?
new to osm: Нови сте на сајту?
notice: <a href="http://www.osmfoundation.org/wiki/License/We_Are_Changing_The_License">Сазнајте више о предстојећој измени лиценце</a> (<a href="http://wiki.openstreetmap.org/wiki/ODbL/We_Are_Changing_The_License">преводи</a>) (<a href="http://wiki.openstreetmap.org/wiki/Talk:ODbL/Upcoming">разговор</a>)
+ notice_terms: Опенстритмап добија нову лиценцу 1. априла 2012. Ова лиценца је отворена исто као и садашња, али правни детаљи су много погоднији нашој картографској бази. Са задовољством би задржали ваше доприносе на Опенстритмапу, али ово је могуће само ако прихватите да они буду објављени под условима нове лиценце. У супротном, мораћемо да их уклонимо из базе.<br /><br />Пријавите се, прочитајте услове и видите да ли се слажете с њима. Хвала!
openid: "%{logo} OpenID:"
openid invalid: Изгледа да OpenID није исправан
openid missing provider: Не могу да се повежем с OpenID добављачем
remember: "Запамти ме:"
title: Пријава
to make changes: Да бисте правили измене, морате имати налог.
- webmaster: администратор
with openid: "Резервни начин је да користите OpenID:"
with username: "Већ имате налог? Пријавите се с корисничким именом и лозинком:"
logout:
confirm_user: потврди овог корисника
create_block: блокирај овог корисника
created from: "Направљено из:"
+ ct accepted: Прихваћено пре %{ago} дана
+ ct declined: Одбијено
+ ct status: "Услови за учешће:"
+ ct undecided: Неодлучено
deactivate_user: деактивирај овог корисника
delete_user: обриши овог корисника
description: Опис
diary: дневник
edits: измене
email address: "Е-адреса:"
+ friends_changesets: Све измене пријатеља
+ friends_diaries: Преглед свих записа у дневнику пријатеља
hide_user: сакриј овог корисника
if set location: Ако поставите своју локацију, згодна мапа ће бити приказана испод. Можете је подесити у %{settings_link}.
km away: удаљено %{count} км
my settings: моје поставке
my traces: моји трагови
nearby users: "Остали оближњи корисници:"
+ nearby_changesets: Преглед свих измена околних корисника
+ nearby_diaries: Преглед свих записа у дневнику околних корисника
new diary entry: нови унос у дневнику
no friends: Нисте додали ниједног пријатеља.
no nearby users: Још увек нема оближњих корисника који мапирају.
status: "Стање:"
traces: трагови
unhide_user: откриј овог корисника
- user location: Ð\9bокаÑ\86иÑ\98а корисника
+ user location: Ð\91оÑ\80авиÑ\88Ñ\82е корисника
your friends: Ваши пријатељи
user_block:
blocks_by:
filter:
block_expired: Блокада је већ истекла и не може се уређивати.
block_period: Период блокаде мора бити једна од вредности из падајућег списка.
- not_a_moderator: Ð\9cоÑ\80аÑ\82е биÑ\82и Ñ\83Ñ\80едник да бисте извршили ову радњу.
+ not_a_moderator: ТÑ\80еба да бÑ\83деÑ\82е модеÑ\80аÑ\82оÑ\80 да бисте извршили ову радњу.
helper:
time_future: Завршава се у %{time}.
time_past: Завршено пре %{time}.
list:
description: Skorašnje izmene
description_bbox: Skupovi izmena unutar %{bbox}
+ description_friend: Izmene vaših prijatelja
+ description_nearby: Izmene od okolnih korisnika
description_user: Skupovi izmena korisnika %{user}
description_user_bbox: Skupovi izmena korisnika %{user} unutar %{bbox}
heading: Skupovi izmena
heading_bbox: Skupovi izmena
+ heading_friend: Izmene
+ heading_nearby: Izmene
heading_user: Skupovi izmena
heading_user_bbox: Skupovi izmena
title: Skupovi izmena
title_bbox: Skupovi izmena unutar %{bbox}
+ title_friend: Izmene vaših prijatelja
+ title_nearby: Izmene od okolnih korisnika
title_user: Skupovi izmena korisnika %{user}
title_user_bbox: Skupovi izmena korisnika %{user} unutar %{bbox}
timeout:
older_entries: Stariji unosi
recent_entries: "Skorašnji unosi u dnevniku:"
title: Korisnički dnevnici
+ title_friends: Dnevnici prijatelja
+ title_nearby: Dnevnici okolnih korisnika
user_title: Dnevnik korisnika %{user}
location:
edit: Uredi
licence: Licenca
longitude: "GD:"
manually_select: Ručno izaberite drugo područje
- mapnik_image: Mapnik slika
max: najviše
options: Mogućnosti
osm_xml_data: Openstritmap XML podaci
- osmarender_image: Osmarender slika
output: Izlaz
paste_html: Ubacite HTML kod za ugrađivanje na stranice
scale: Razmera
place:
airport: Aerodrom
city: Grad
- country: Država
+ country: Zemlja
county: Okrug
farm: Farma
hamlet: Zaselak
inbox:
date: Datum
from: Od
+ messages: Imate %{new_messages} i %{old_messages}
my_inbox: Primljene
+ new_messages:
+ one: "%{count} nova poruka"
+ other: "%{count} nove poruke"
no_messages_yet: Još uvek nemate poruka. Zašto ne biste stupili u kontakt s %{people_mapping_nearby_link}?
+ old_messages:
+ one: "%{count} stara poruka"
+ other: "%{count} stare poruke"
outbox: poslate
people_mapping_nearby: maperima u vašoj okolini
subject: Naslov
title: Primljene
- you_have: Imate %{new_count} novih i %{old_count} starih poruka
mark:
as_read: Poruka je označena kao pročitana
as_unread: Poruka je označena kao nepročitana
outbox:
date: Datum
inbox: primljene
+ messages:
+ one: Imate %{count} poslatu poruku
+ other: Imate %{count} poslate poruke
my_inbox: "%{inbox_link}"
no_sent_messages: Još uvek nemate poslatih poruka. Zašto ne biste stupili u kontakt s %{people_mapping_nearby_link}?
outbox: poslate
subject: Naslov
title: Poslate
to: Za
- you_have_sent_messages: Imate %{count} poslatih poruka
read:
back_to_inbox: Nazad na primljene
back_to_outbox: Nazad na poslate
count_points: "%{count} tačaka"
edit: uredi
edit_map: Uredi mapu
- identifiable: POISTOVETLJIV
+ identifiable: MOŽE SE PREPOZNATI
in: u
map: mapa
more: više
private: PRIVATNI
public: JAVNI
trace_details: Pogledaj detalje traga
- trackable: UTVRDLJIV
+ trackable: MOŽE SE PRATITI
view_map: Pogledaj mapu
trace_form:
description: "Opis:"
summary_no_ip: "%{name} napravljeno %{date}"
title: Korisnici
login:
+ account is suspended: Nažalost, vaš nalog je ukinut zbog sumnjive aktivnosti.<br />Obratite se <a href="%{webmaster}">administratoru</a> ako želite da porazgovarate o problemu.
account not active: Žao nam je, vaš nalog još uvek nije aktiviran. <br />Pratite vezu u poruci za potvrdu e-pošte da biste ga aktivirali ili <a href="%{reconfirm}">zatražite novu poruku</a>.
- account suspended: Žao nam je, vaš nalog je privremeno ukinut zbog sumnjive aktivnosti.<br />Kontaktirajte %{webmaster}a ako želite da se žalite.
auth failure: Ne mogu da vas prijavim s unetim podacima.
create account minute: Otvorite nalog. Potrebno je samo nekoliko trenutaka.
email or username: "E-adresa ili korisničko ime:"
lost password link: Zaboravili ste lozinku?
new to osm: Novi ste na sajtu?
notice: <a href="http://www.osmfoundation.org/wiki/License/We_Are_Changing_The_License">Saznajte više o predstojećoj izmeni licence</a> (<a href="http://wiki.openstreetmap.org/wiki/ODbL/We_Are_Changing_The_License">prevodi</a>) (<a href="http://wiki.openstreetmap.org/wiki/Talk:ODbL/Upcoming">razgovor</a>)
+ notice_terms: Openstritmap dobija novu licencu 1. aprila 2012. Ova licenca je otvorena isto kao i sadašnja, ali pravni detalji su mnogo pogodniji našoj kartografskoj bazi. Sa zadovoljstvom bi zadržali vaše doprinose na Openstritmapu, ali ovo je moguće samo ako prihvatite da oni budu objavljeni pod uslovima nove licence. U suprotnom, moraćemo da ih uklonimo iz baze.<br /><br />Prijavite se, pročitajte uslove i vidite da li se slažete s njima. Hvala!
openid: "%{logo} OpenID:"
openid invalid: Izgleda da OpenID nije ispravan
openid missing provider: Ne mogu da se povežem s OpenID dobavljačem
remember: "Zapamti me:"
title: Prijava
to make changes: Da biste pravili izmene, morate imati nalog.
- webmaster: administrator
with openid: "Rezervni način je da koristite OpenID:"
with username: "Već imate nalog? Prijavite se s korisničkim imenom i lozinkom:"
logout:
confirm_user: potvrdi ovog korisnika
create_block: blokiraj ovog korisnika
created from: "Napravljeno iz:"
+ ct accepted: Prihvaćeno pre %{ago} dana
+ ct declined: Odbijeno
+ ct status: "Uslovi za učešće:"
+ ct undecided: Neodlučeno
deactivate_user: deaktiviraj ovog korisnika
delete_user: obriši ovog korisnika
description: Opis
diary: dnevnik
edits: izmene
email address: "E-adresa:"
+ friends_changesets: Sve izmene prijatelja
+ friends_diaries: Pregled svih zapisa u dnevniku prijatelja
hide_user: sakrij ovog korisnika
if set location: Ako postavite svoju lokaciju, zgodna mapa će biti prikazana ispod. Možete je podesiti u %{settings_link}.
km away: udaljeno %{count} km
my settings: moje postavke
my traces: moji tragovi
nearby users: "Ostali obližnji korisnici:"
+ nearby_changesets: Pregled svih izmena okolnih korisnika
+ nearby_diaries: Pregled svih zapisa u dnevniku okolnih korisnika
new diary entry: novi unos u dnevniku
no friends: Niste dodali nijednog prijatelja.
no nearby users: Još uvek nema obližnjih korisnika koji mapiraju.
+++ /dev/null
-sv-SE:
- dummy: dummy
# Author: Luen
# Author: Magol
# Author: Per
+# Author: Pladask
# Author: Poxnar
# Author: Sannab
# Author: Sertion
licence: Licens
longitude: "Lon:"
manually_select: Välj ett annat område manuellt
- mapnik_image: Mapnik-bild
max: max
options: Alternativ
osm_xml_data: OpenStreetMap XML-data
- osmarender_image: Osmarender-bild
output: Utdata
paste_html: Klistra in HTML för att bädda in på webbplats
scale: Skala
alpine_hut: Fjällbod
artwork: Konstverk
attraction: Attraktion
- bed_and_breakfast: Bad and breakfast
+ bed_and_breakfast: Bed and breakfast
cabin: Stuga
camp_site: Campingplats
caravan_site: Husvagnsuppställningsplats
people_mapping_nearby: folk som kartlägger i närheten
subject: Ärende
title: Inbox
- you_have: Du har %{new_count} nya meddelanden och %{old_count} gamla meddelanden
mark:
as_read: Meddelandet markerat som läst
as_unread: Meddelandet markerat som oläst
subject: Ärende
title: Utbox
to: Till
- you_have_sent_messages: Du har %{count} skickade meddelanden
read:
back_to_inbox: Åter till inbox
back_to_outbox: Tillbaks till utboxen
get_reading: Kom igång med OpenStreetMap <a href="http://wiki.openstreetmap.org/wiki/Beginners%27_Guide">på wikin</a>, blir uppdaterad om de senaste nyheterna via <a href="http://blog.openstreetmap.org/">OpenStreetMaps blogg</a> eller <a href="http://twitter.com/openstreetmap">Twitter</a>, eller skumma genom OpenStreetMaps grundare Steve Coasts <a href="http://www.opengeodata.org/">OpenGeoData blog</a> för en kortfattad historisk genomgång, som också har en <a href="http://www.opengeodata.org/?cat=13">poddradio att lyssna på</a>!
greeting: Hej där!
more_videos: Det finns %{more_videos_link}.
- more_videos_here: fler videor här
+ more_videos_here: fler videoklipp här
video_to_openstreetmap: introduktionsvideo om OpenStreetMap
signup_confirm_plain:
ask_questions: "Du kan ställa valfria frågor om OpenStreetMap på vår frågesida:"
title: Användare
login:
account not active: Ditt konto är inte aktivterat.<br />Vänligen klicka på länken i e-brevet med kontobekräftelsen för att aktivera ditt konto, eller <a href="%{reconfirm}">begär ett nytt bekräftelsebrev</a>.
- account suspended: Beklagar, ditt konto har stängts av på grund av misstänkt otillåten aktivitet. <br />Kontakta %{webmaster} om du vill föra en diskussion kring detta.
auth failure: Kunde inte logga in med de uppgifterna.
create account minute: Skapa ett konto. Det tar bara en minut.
email or username: "E-postadress eller användarnamn:"
remember: "Kom ihåg mig:"
title: Logga in
to make changes: För att göra ändringar i OpenStreetMaps data måste du ha ett konto.
- webmaster: webmaster
with openid: "Du kan även använda ditt OpenID-konto för att logga in:"
with username: "Har du redan ett OpenStreetMap konto? Logga in med ditt användarnamn och lösenord:"
logout:
flash: Skapat en blockering av användare %{name}.
try_contacting: Försök att kontakta användarenoch ge användaren tid att svara innan du blockerar .
helper:
- time_future: Slutar om %{tid}.
+ time_future: Slutar om %{time}.
index:
empty: Inga blockeringar har gjorts ännu.
heading: Lista över blockerade användare
heading: Återkalla blockering på %{block_on} av %{block_by}
past: Detta block avslutades %{time} sedan och kan inte återkallas nu.
revoke: Återkalla!
- time_future: Denna blockering kommer att avslutas inom %{tid}.
+ time_future: Denna blockering kommer att avslutas inom %{time}.
title: Upphäv blockering av %{block_on}
show:
back: Se alla blockeringar
--- /dev/null
+# Messages for Tamil (தமிழ்)
+# Exported from translatewiki.net
+# Export driver: syck-pecl
+# Author: Aswn
+# Author: Krishnaprasaths
+# Author: Shanmugamp7
+# Author: Surya Prakash.S.A.
+# Author: TRYPPN
+ta:
+ activerecord:
+ attributes:
+ diary_comment:
+ body: உள்ளடக்கம்
+ diary_entry:
+ language: மொழி
+ latitude: குறுக்குக் கோடு
+ longitude: குத்துயரக் கோடு
+ title: தலைப்பு
+ user: பயனர்
+ friend:
+ friend: நண்பர்
+ user: பயனர்
+ message:
+ body: உள்ளடக்கம்
+ recipient: பெறுனர்
+ sender: அனுப்புனர்
+ title: தலைப்பு
+ trace:
+ description: விளக்கம்
+ latitude: குறுக்குக் கோடு
+ longitude: குத்துயரம்
+ name: பெயர்
+ public: பொது
+ size: அளவு
+ user: பயனர்
+ visible: காணக்கூடியது
+ user:
+ active: செயல்பாட்டிலுள்ளது
+ description: விளக்கம்
+ display_name: காட்டவிரும்பும் பெயர்
+ email: மின்னஞ்சல்
+ languages: மொழிகள்
+ pass_crypt: கடவுச்சொல்
+ models:
+ acl: அனுமதிக் கட்டுப்பாட்டுப் பட்டியல்
+ changeset: மாற்றங்கள்
+ changeset_tag: மாற்றத் தொடுப்பு
+ country: நாடு
+ diary_comment: கையேடு கருத்துரை
+ diary_entry: Diary பதிவு
+ friend: நண்பர்
+ language: மொழி
+ message: செய்தி
+ node: முனையம்
+ node_tag: முனைய இணைப்பு
+ notifier: தெரிவிப்பான்
+ old_node: பழைய முனையம்
+ old_node_tag: பழைய முனைய இணைப்பு
+ old_relation: பழைய உறவு
+ old_relation_member: பழைய உறவு உறுப்பினர்
+ old_relation_tag: பழைய உறவு இணைப்பு
+ old_way: பழைய வழி
+ old_way_node: பழைய வழி முனையம்
+ old_way_tag: பழைய வழி இணைப்பு
+ relation: தொடர்பு
+ relation_member: தொடர்பு உறுப்பினர்
+ relation_tag: தொடர்பு இணைப்பு
+ session: அமர்வு
+ trace: சுவடு
+ tracepoint: சுவடு புள்ளி
+ tracetag: சுவடு இணைப்பு
+ user: பயனர்
+ user_preference: பயனர் விருப்பத்தேர்வு
+ user_token: பயனர் அடையாளம்
+ way: வழி
+ way_node: வழி முனையம்
+ way_tag: வழி இணைப்பு
+ browse:
+ changeset:
+ changeset: "மாற்றங்கள்: %{id}"
+ changesetxml: மாற்றத்தொடுப்பு XML
+ download: "%{changeset_xml_link} அல்லது %{osmchange_xml_link} -ஐப் பதிவிறக்கு"
+ feed:
+ title: "மாற்றங்கள்: %{id}"
+ title_comment: மாற்றங்கள் %{id}-%{comment}
+ osmchangexml: osmChange XML
+ title: மாற்றங்கள்
+ changeset_details:
+ belongs_to: "உரியது:"
+ bounding_box: சூழ்பெட்டி
+ box: பெட்டி
+ closed_at: "மூடப்பட்டது:"
+ created_at: "உருவாக்கப்பட்டது:"
+ no_bounding_box: இந்த மாற்றத்துக்கு எந்த சூழ்பெட்டியும் இதுவரை சேமிக்கப்படவில்லை.
+ show_area_box: பரப்புப் பெட்டியைக் காட்டு
+ common_details:
+ changeset_comment: "கருத்து:"
+ deleted_at: "நீக்கப்பட்ட நேரம்:"
+ deleted_by: "நீக்கியவர்:"
+ edited_at: "திருத்தப்பட்டது:"
+ edited_by: "தொகுத்தவர்:"
+ in_changeset: "மாற்றத்தொகுப்பில்:"
+ version: "பதிப்பு:"
+ containing_relation:
+ entry: தொடர்பு %{relation_name}
+ entry_role: தொடர்பு %{relation_name} (%{relation_role} ஆக)
+ map:
+ deleted: நீக்கப்பட்டது
+ edit:
+ area: பகுதி திருத்து
+ relation: தொடர்பை திருத்து
+ way: வழியை திருத்து
+ larger:
+ area: பரப்பைப் பெரிய வரைபடத்தில் பார்க்கவும்
+ node: முனையத்தைப் பெரிய வரைபடத்தில் பார்க்கவும்
+ relation: தொடர்பைப் பெரிய வரைபடத்தில் பார்க்கவும்
+ way: வழியைப் பெரிய வரைபடத்தில் பார்க்கவும்
+ loading: ஏற்றப்படுகிறது...
+ navigation:
+ all:
+ next_changeset_tooltip: அடுத்த மாற்றம்
+ next_node_tooltip: அடுத்த முனையம்
+ next_relation_tooltip: அடுத்த தொடர்பு
+ next_way_tooltip: அடுத்த வழி
+ prev_changeset_tooltip: முந்தைய மாற்றம்
+ prev_node_tooltip: முந்தைய முனையம்
+ prev_relation_tooltip: முந்தைய தொடர்பு
+ prev_way_tooltip: முந்தைய வழி
+ user:
+ name_changeset_tooltip: "%{user} என்பவரின் தொகுப்புகளைக் காண்க"
+ next_changeset_tooltip: "%{user} என்ற பயனரின் அடுத்த தொகுப்பு"
+ prev_changeset_tooltip: "%{user} என்ற பயனரின் முந்தைய தொகுப்பு"
+ node:
+ download: "%{download_xml_link}, %{view_history_link} அல்லது %{edit_link}"
+ download_xml: XML பதிவிறக்கு
+ edit: தொகு
+ node: சந்தி
+ node_title: "சந்தி: %{node_name}"
+ view_history: வரலாற்றை பார்க்கவும்
+ node_details:
+ coordinates: "ஆயக்கூறுகள்:"
+ part_of: "பகுதி:"
+ node_history:
+ download: "%{download_xml_link} அல்லது %{view_details_link}"
+ download_xml: XML பதிவிறக்கு
+ node_history: "முனைய வரலாறு:"
+ node_history_title: "முனைய வரலாறு: %{node_name}"
+ view_details: விவரங்களைக் காணவும்
+ not_found:
+ sorry: மன்னிக்கவும், %{id} என்ற அடையாளம் கொண்ட %{type} என்பது கிடைக்கவில்லை.
+ type:
+ changeset: மாற்றங்கள்
+ node: முனையம்
+ relation: தொடர்பு
+ way: வழி
+ paging_nav:
+ of: ","
+ showing_page: காட்டப்பட்டுக் கொண்டிருக்கும் பக்கம்
+ relation:
+ download: "%{download_xml_link} அல்லது %{view_history_link}"
+ download_xml: XML பதிவிறக்கு
+ relation: தொடர்பு
+ relation_title: "தொடர்பு: %{relation_name}"
+ view_history: வரலாறைப் பார்க்கவும்
+ relation_details:
+ members: "உறுப்பினர்கள்:"
+ part_of: "பகுதி:"
+ relation_history:
+ download: "%{download_xml_link} அல்லது %{view_details_link}"
+ download_xml: XML பதிவிறக்கு
+ relation_history: தொடர்பு வரலாறு
+ relation_history_title: "தொடர்பு வரலாறு: %{relation_name}"
+ view_details: விவரங்களைக் காணவும்
+ relation_member:
+ entry_role: "%{type} %{name} %{role} ஆக"
+ type:
+ node: சந்தி
+ relation: தொடர்பு
+ way: வழி
+ start:
+ manually_select: நீங்களாகவே வேறு பகுதியைத் தேர்ந்தெடுக்கவும்
+ view_data: நடப்பு வரைபடக் காட்சிக்கான தரவுகளைப் பார்க்கவும்
+ start_rjs:
+ data_frame_title: தரவு
+ data_layer_name: தரவு
+ details: விளக்கம்
+ drag_a_box: குறிப்பிட்ட பரப்பைத் தேர்வு செய்ய ஒரு பெட்டியை வரைபடத்தின் மீது இழுத்து வரவும்
+ edited_by_user_at_timestamp: தொகுத்தவர் [[user]] அன்று [[timestamp]]
+ hide_areas: பகுதிகளை மறை
+ loading: ஏற்றப்படுகிறது ...
+ manually_select: நீங்களாகவே வேறு பகுதியைத் தேர்ந்தெடுக்கவும்
+ object_list:
+ back: பொருள் பட்டியலை காண்பி
+ details: விளக்கம்
+ heading: பொருட்களின் பட்டியல்
+ history:
+ type:
+ node: சந்தி [[id]]
+ way: வழி [[id]]
+ selected:
+ type:
+ node: சந்தி [[id]]
+ way: வழி [[id]]
+ type:
+ node: சந்தி
+ way: வழி
+ private_user: தனிப்பட்ட பயனர்
+ show_areas: பகுதிகளைக் காண்பி
+ show_history: வரலாற்றைக் காட்டவும்
+ wait: காத்திருக்கவும்...
+ zoom_or_select: வரைபடத்தைப் பார்ப்பதற்கு ஒரு பகுதியை நெருங்கிப் பார்க்கவும் அல்லது தேர்ந்தெடுக்கவும்
+ tag_details:
+ tags: "குறிப்புக்கள்:"
+ wiki_link:
+ key: விக்கி விளக்கப்பக்கம் %{key} குறிச்சொல்லுக்காக
+ timeout:
+ sorry: மன்னிக்கவும், %{id} என்ற அடையாளம் கொண்ட %{type} -ற்கான தரவு மீக்கொணரப்பட அதிக நேரம் எடுத்துக் கொள்கிறது.
+ type:
+ changeset: மாற்றங்கள்
+ node: சந்தி
+ relation: தொடர்பு
+ way: வழி
+ way:
+ edit: தொகு
+ view_history: வரலாற்றை பார்க்கவும்
+ way: வழி
+ way_title: "வழி: %{way_name}"
+ way_details:
+ nodes: "சந்திகள்:"
+ way_history:
+ download_xml: XML கோப்பாக பதிவிறக்கு
+ view_details: விவரங்களைக் காணவும்
+ changeset:
+ changeset:
+ anonymous: அடையாளமற்றவர்
+ no_comment: (எதுவுமில்லை)
+ no_edits: (திருத்தங்கள் இல்லை)
+ show_area_box: பரப்புப் பெட்டியைக் காட்டு
+ still_editing: (இன்னும் திருத்தப்படுகிறது)
+ changeset_paging_nav:
+ next: அடுத்து »
+ previous: « முந்தைய
+ changesets:
+ area: பகுதி
+ comment: கருத்து
+ saved_at: சேமிக்கப்பட்ட
+ user: பயனர்
+ list:
+ description: அண்மைய மாற்றங்கள்
+ heading: மாற்ற தொகுப்புகள்
+ heading_bbox: மாற்ற தொகுப்புகள்
+ heading_friend: மாற்ற தொகுப்புகள்
+ heading_nearby: மாற்ற தொகுப்புகள்
+ heading_user: மாற்ற தொகுப்புகள்
+ heading_user_bbox: மாற்ற தொகுப்புகள்
+ title: மாற்றங்கள்
+ diary_entry:
+ diary_comment:
+ confirm: உறுதிசெய்
+ diary_entry:
+ comment_link: இந்த உள்ளீடு குறித்து கருத்துகூறு
+ confirm: உறுதிசெய்
+ edit_link: இந்த உள்ளீட்டை திருத்தவும்
+ hide_link: இந்த உள்ளீட்டை மறைக்கவும்
+ reply_link: இந்த உள்ளீட்டுக்கு பதிலளி
+ edit:
+ body: "உரை:"
+ language: "மொழி:"
+ latitude: "அட்சரேகை:"
+ location: "இடம்:"
+ longitude: "தீர்க்கரேகை:"
+ marker_text: டைரி உள்ளீடு பகுதி
+ save_button: சேமி
+ subject: "பொருள்:"
+ title: நாட்குறிப்பேடு உள்ளீட்டை திருத்து
+ use_map_link: வரைப்படத்தை பயன்படுத்தவும்
+ list:
+ in_language_title: "%{language}ல் நாட்குறிப்பேடு உள்ளீடுகள்"
+ new: புதிய நாட்குறிப்பேடு உள்ளீடு
+ new_title: ஒரு புதிய பதிவை உங்கள் பயனர் நாட்குறிப்பேட்டில் உருவாக்கு
+ newer_entries: புதிய உள்ளீடுகள்
+ no_entries: டைரி உள்ளீடுகள் இல்லை
+ older_entries: பழைய உள்ளீடுகள்
+ recent_entries: "சமீபத்திய டைரி உள்ளீடுகள்:"
+ title: பயனரின் நாட்குறிப்பேடுகள்
+ title_friends: நண்பர்களின் நாட்குறிப்பேடுகள்
+ title_nearby: அருகிலுள்ள பயனர்களின் நாட்குறிப்பேடுகள்
+ user_title: "%{user}'ரின் நாட்குறிப்பேடு"
+ location:
+ edit: தொகு
+ location: "இடம்:"
+ view: காண்
+ new:
+ title: புதிய டைரி உள்ளீடு
+ no_such_entry:
+ heading: இந்த id :%{id} மூலமாக எந்த உள்ளீடும் இல்லை
+ title: இத்தகைய டைரி உள்ளீடு இல்லை.
+ no_such_user:
+ heading: பயனர் %{user} இல்லை
+ title: அப்படியொரு பயனர் இல்லை.
+ view:
+ leave_a_comment: ஒரு குறிப்பை இடவும்
+ login: புகுபதிகை
+ login_to_leave_a_comment: "%{login_link} ஒரு குறிப்பைவிட"
+ save_button: சேமி
+ title: "%{user}'ன் நாட்குறிப்பேடு| %{title}"
+ user_title: "%{user}ன் நாட்குறிப்பேடு"
+ editor:
+ default: இயல்புநிலை (தற்போதைய %{name})
+ potlatch:
+ description: Potlatch 1 (உலவியினுள்ளேயே அமைந்த தொகுப்பி)
+ name: Potlatch 1
+ potlatch2:
+ description: Potlatch 2 (உலவியினுள்ளேயே அமைந்த தொகுப்பி)
+ name: Potlatch 2
+ remote:
+ description: தொலைவு கட்டுப்பாடு (JOSM அல்லது Merkaartor)
+ name: தொலைவுக் கட்டுப்பாடு
+ export:
+ start:
+ export_button: ஏற்றுமதி செய்
+ format: வடிவமைப்பு
+ image_size: பட அளவு
+ licence: உரிமம்
+ max: அதிகபட்சம்
+ options: விருப்பத் தேர்வுகள்
+ output: வெளியீடு
+ scale: அளவுவீதம்
+ zoom: பெரிதாக்கு
+ start_rjs:
+ click_add_marker: வரைபடம் மீது ஒரு குறியீட்டை சேர்க்க அதை கிளிக் செய்யவும்
+ drag_a_box: குறிப்பிட்ட பரப்பைத் தேர்வு செய்ய ஒரு பெட்டியை வரைபடத்தின் மீது இழுத்து வரவும்
+ export: ஏற்றுமதி செய்
+ manually_select: நீங்களாகவே வேறு பகுதியைத் தேர்ந்தெடுக்கவும்
+ geocoder:
+ description:
+ types:
+ cities: மாநகரங்கள்
+ places: இடங்கள்
+ towns: நகரங்கள்
+ direction:
+ east: கிழக்கு
+ north: வடக்கு
+ north_east: வட கிழக்கு
+ north_west: வட மேற்கு
+ south: தெற்கு
+ south_east: தென் கிழக்கு
+ south_west: தென் மேற்கு
+ west: மேற்கு
+ results:
+ more_results: மேலும் முடிவுகள்
+ no_results: முடிவுகள் எதுவும் காணப்படவில்லை
+ search_osm_nominatim:
+ prefix:
+ amenity:
+ airport: விமான நிலையம்
+ arts_centre: கலை மையம்
+ auditorium: கலையரங்கம்
+ bank: வங்கி
+ bar: பார்
+ bicycle_parking: சைக்கிள் நிறுத்துமிடம்
+ bicycle_rental: சைக்கிள் வாடகைக்குவிடுமிடம்
+ brothel: விலைமாதர் இல்லம்
+ bus_station: பேருந்து நிலையம்
+ car_rental: கார் வாடகைக்கு
+ car_wash: கார் சுத்தம் செய்யும் இடம்
+ cinema: சினிமா (திரையரங்கம்)
+ club: சங்கம்
+ college: கல்லுரி
+ community_centre: சமுதாய மையம்
+ courthouse: நீதிமன்றம்
+ crematorium: சுடுகாடு
+ dentist: பல் மருத்துவர்கள்
+ doctors: மருத்துவர்கள்
+ dormitory: பலர் தூங்கும் இடம்
+ drinking_water: குடிநீர்
+ driving_school: ஓட்டுநர் பயிற்சிப்பள்ளி
+ embassy: தூதரகம்
+ emergency_phone: அவசர தொலைபேசி
+ fire_station: தீயணைப்பு நிலையம்
+ fountain: நீரூற்று
+ fuel: எரிபொருள்
+ grave_yard: இடுகாடு
+ gym: உடற்பயிற்சி மையம் / ஜிம்
+ hall: கூடம்
+ health_centre: சுகாதார மையம்
+ hospital: மருத்துவமனை
+ hotel: உண்டுறை விடுதி
+ ice_cream: ஐஸ் கிரீம்
+ kindergarten: சிறு குழந்தைகளுக்கு உரிய (விளையாட்டு முறை) கல்வி கூடம்
+ library: நூலகம்
+ market: சந்தை
+ marketplace: சந்தை கூடுமிடம்
+ nightclub: இரவு கிளப்
+ nursery: குழந்தைகள் பள்ளி
+ nursing_home: மருத்துவ இல்லம்
+ office: அலுவலகம்
+ park: பூங்கா
+ parking: வண்டிகள் நிறுத்துமிடம்
+ pharmacy: மருந்தகம்
+ police: காவல்
+ post_box: அஞ்சல் பெட்டி
+ post_office: தபால் நிலையம்
+ prison: சிறைச்சாலை
+ public_building: பொது கட்டிடம்
+ public_market: பொது சந்தை
+ reception_area: வரவேற்பு பகுதி
+ recycling: மறுசுழற்சி புள்ளி
+ restaurant: உணவு விடுதி
+ retirement_home: ஓய்வு இல்லம்
+ school: பள்ளிக்கூடம்
+ shelter: தங்குமிடம்
+ shop: கடை
+ studio: ஸ்டுடியோ
+ taxi: வாடகை வண்டி
+ telephone: பொது தொலைபேசி
+ theatre: திரையரங்கம்
+ toilets: கழிவறைகள்
+ townhall: நகர சபை
+ university: பல்கலைக்கழகம்
+ vending_machine: விற்பனை இயந்திரம்
+ veterinary: கால்நடை அறுவை சிகிச்சை
+ village_hall: கிராம சபை
+ youth_centre: இளைஞர் மையம்
+ boundary:
+ administrative: நிர்வாக எல்லை
+ building:
+ church: தேவாலயம்
+ city_hall: மாநகர கூடம்
+ commercial: வணிக கட்டிடம்
+ entrance: கட்டட நுழைவுவாயில்
+ faculty: ஆசிரியர்கள் கட்டிடம்
+ farm: பண்ணை கட்டிடம்
+ flats: அடுக்குமாடி குடியிருப்புகள்
+ garage: வாகனம் நிறுத்தும் அறை
+ hall: கூடம்
+ hospital: மருத்துவமனை கட்டிடம்
+ hotel: விடுதி
+ house: வீடு
+ industrial: தொழிற்சாலை கட்டிடம்
+ office: அலுவலக கட்டிடம்
+ public: பொது கட்டிடம்
+ residential: குடியிருப்பு கட்டிடம்
+ retail: சில்லறை வியாபார கட்டிடம்
+ school: பள்ளிக் கட்டிடம்
+ shop: கடை
+ stadium: விளையாட்டு மைதானம்
+ store: கடை
+ terrace: டெரஸ் கட்டடம்
+ tower: கோபுரம்
+ train_station: ரயில் நிலையம்
+ university: பல்கலைக்கழக கட்டிடம்
+ highway:
+ bus_guideway: வழிநடத்தப்பட்ட பேருந்து தடம்
+ bus_stop: பேருந்து நிறுத்தம்
+ construction: நெடுஞ்சாலை கட்டுமானப் பணிகள் நடந்து கொண்டுள்ளது.
+ cycleway: மிதிவண்டி பாதை
+ distance_marker: தூரக் குறியீடு
+ emergency_access_point: அவசர அணுகல் புள்ளி
+ footway: நடைபாதை
+ gate: வாயில்
+ living_street: வாழும் வீதி
+ minor: சிறு சாலை
+ path: பாதை
+ pedestrian: பாதசாரிகள் வழி
+ platform: நடைமேடை
+ primary: முதன்மையான சாலை
+ primary_link: முதன்மையான சாலை
+ residential: குடியிருப்பு
+ road: சாலை
+ secondary: இரண்டாம் நிலை சாலை
+ secondary_link: இரண்டாம் நிலை சாலை
+ steps: படிகள்
+ unclassified: வகைப்படுத்தாத சாலை
+ historic:
+ archaeological_site: தொல்பொருள் தளம்
+ battlefield: போர்க்களம்
+ boundary_stone: எல்லைக் கல்
+ building: கட்டிடம்
+ castle: கோட்டை
+ house: வீடு
+ icon: படவுரு
+ memorial: நினைவிடம்
+ mine: சுரங்கம்
+ monument: நினைவுச்சின்னம்
+ museum: அருங்காட்சியகம்
+ tower: கோபுரம்
+ wreck: சேதமானது
+ landuse:
+ commercial: வணிக பகுதி
+ construction: கட்டுமானம்
+ farm: பண்ணை
+ farmland: பண்ணை நிலம்
+ forest: வனம்
+ grass: புல்
+ industrial: தொழிலக பகுதி
+ military: ராணுவ பகுதி
+ mine: சுரங்கம்
+ mountain: மலை
+ park: பூங்கா
+ railway: தொடர்வண்டி பாதை
+ reservoir: நீர்த்தேக்கம்
+ residential: குடியிருப்பு பகுதி
+ retail: சில்லறை
+ wood: மரம்
+ leisure:
+ beach_resort: கடற்கரை தங்குமிடம்
+ common: பொதுவான நிலம்
+ fishing: மீன்பிடிக்கும் பகுதி
+ garden: தோட்டம்
+ park: பூங்கா
+ pitch: விளையாட்டு களம்
+ playground: விளையாட்டு மைதானம்
+ recreation_ground: பொழுதுபோக்கு மைதானம்
+ sports_centre: விளையாட்டு மையம்
+ stadium: விளையாட்டு மைதானம்
+ swimming_pool: நீச்சல் குளம்
+ track: ஓடு தளம்
+ water_park: நீர் பூங்கா
+ natural:
+ bay: வளைகுடா
+ beach: கடற்கரை
+ cave_entrance: குகை நுழைவாயில்
+ coastline: கடற்கரை பகுதி
+ heath: சுகாதாரம்
+ hill: குன்று
+ island: தீவு
+ land: நிலம்
+ river: நதி
+ rock: கல்
+ spring: வசந்த காலம்
+ tree: மரம்
+ valley: பள்ளத்தாக்கு
+ volcano: எரிமலை
+ water: நீர்
+ wood: மரம்
+ place:
+ airport: விமான நிலையம்
+ city: நகரம்
+ country: நாடு
+ county: நாடு
+ farm: பண்ணை
+ house: வீடு
+ houses: வீடுகள்
+ island: தீவு
+ postcode: அஞ்சல் குறியீட்டு எண்
+ region: பிராந்தியம்
+ sea: கடல்
+ state: மாநிலம்
+ subdivision: துணைப்பிரிவு
+ suburb: புறநகர்
+ town: நகரம்
+ unincorporated_area: இணைக்கப்படாத பகுதி
+ village: கிராமம்
+ railway:
+ abandoned: கைவிடப்பட்ட தொடர்வண்டி பாதை
+ construction: தொடர்வண்டி பாதை கட்டுமானப் பணிகள் நடந்து கொண்டுள்ளது.
+ halt: ரயில் நிறுத்துமிடம்
+ historic_station: வரலாற்று சிறப்புமிக்க ரயில் நிலையம்
+ junction: ரயில்வே சந்திப்பு
+ platform: ரயில்வே நடைமேடை
+ station: ரயில் நிலையம்
+ shop:
+ bakery: அடுமனை
+ beauty: அழகு நிலையம்
+ beverages: பானங்கள் கடை
+ bicycle: இருசக்கர வாகன கடை
+ books: புத்தகக் கடை
+ butcher: கசாப்புக்கடை
+ car: மகிழ்வுந்து (கார்) கடை
+ car_dealer: கார் விற்பனையாளர்
+ car_parts: கார் பாகங்கள்
+ car_repair: கார் சரிசெய்தல்
+ carpet: கம்பளக் கடை
+ charity: அறப்பணி கடை
+ clothes: துணிக் கடை
+ computer: கணினி கடை
+ farm: விவசாய கடை
+ fashion: நாகரிக கடை
+ fish: மீன் கடை
+ food: உணவுக் கடை
+ insurance: காப்புறுதி
+ jewelry: நகைக் கடை
+ laundry: சலவை
+ market: சந்தை
+ mobile_phone: கைப்பேசி கடை
+ motorcycle: மோட்டார் சைக்கிள் கடை
+ pet: வளர்ப்பு விலங்குகள் கடை
+ photo: புகைப்பட கடை
+ salon: முடி திருத்தகம்
+ shoes: காலணிகள் கடை
+ shopping_centre: ஷாப்பிங் மையம்
+ stationery: எழுதுபொருள் கடை
+ tourism:
+ guest_house: விருந்தினர் இல்லம்
+ hostel: விடுதி
+ hotel: விடுதி
+ information: தகவல்
+ museum: அருங்காட்சியகம்
+ valley: பள்ளத்தாக்கு
+ viewpoint: காட்சிமுனை
+ zoo: விலங்கு காட்சி சாலை
+ waterway:
+ boatyard: படகுஇல்லம்
+ canal: கால்வாய்
+ dam: அணை
+ lock: பூட்டு
+ river: நதி
+ riverbank: நதிக்கரை
+ waterfall: நீர்வீழ்ச்சி
+ javascripts:
+ site:
+ history_tooltip: இந்த பகுதிக்கான திருத்தங்களை காண்
+ layouts:
+ community_blogs: சமுதாய வலைப்பதிவுகள்
+ copyright: பதிப்புரிமை & உரிமம்
+ documentation: ஆவணமாக்கல்
+ edit: தொகு
+ export_tooltip: வரைபட தரவை ஏற்று
+ foundation: அறக்கட்டளை
+ foundation_title: OpenStreetMap அறக்கட்டளை
+ help: உதவி
+ help_centre: உதவி மையம்
+ history: வரலாறு
+ home: முகப்பு
+ home_tooltip: முகப்பு பகுதிக்கு செல்லவும்
+ inbox: உள்பெட்டி (%{count})
+ intro_3_partners: விக்கி
+ log_in: புகுபதிகை
+ log_in_tooltip: ஏற்கனவே உள்ள கணக்கு மூலம் புகுபதிகை செய்
+ logout: விடுபதிகை
+ logout_tooltip: விடுபதிகை
+ make_a_donation:
+ text: ஒரு நன்கொடையை அளிக்கவும்
+ view: காண்
+ view_tooltip: வரைபடத்தை காண்
+ welcome_user: வரவேற்பு, %{user_link}
+ welcome_user_link_tooltip: உங்கள் பயனர் பக்கம்
+ wiki: விக்கி
+ license_page:
+ foreign:
+ title: இந்த மொழிபெயர்ப்பு பற்றி
+ message:
+ delete:
+ deleted: தகவல் நீக்கப்பட்டது
+ inbox:
+ date: நாள்
+ from: "அனுப்புநர்:"
+ subject: பொருள்
+ title: உள்பெட்டி
+ message_summary:
+ delete_button: நீக்கு
+ read_button: வாசித்ததாக குறியிடு
+ reply_button: பதில் அளி
+ unread_button: வாசிக்கப்படாததாக என குறியிடு
+ new:
+ back_to_inbox: உள்பெட்டிக்கு திரும்பவும்
+ body: உரை
+ message_sent: செய்தி அனுப்பப்பட்டுவிட்டது
+ send_button: அனுப்பு
+ send_message_to: "%{name} க்கு புதிய தகவல் அனுப்பு"
+ subject: பொருள்
+ title: தகவல் அனுப்பு
+ no_such_message:
+ heading: அப்படியொரு தகவல் இல்லை
+ title: அப்படியொரு தகவல் இல்லை
+ no_such_user:
+ body: மன்னிக்கவும், அந்த பெயரில் பயனர் யாரும் இல்லை.
+ heading: அப்படியொரு பயனர் இல்லை.
+ title: அப்படியொரு பயனர் இல்லை.
+ outbox:
+ date: நாள்
+ inbox: உள்பெட்டி
+ outbox: வெளிப்பெட்டி
+ subject: பொருள்
+ read:
+ back_to_inbox: உள்பெட்டிக்கு திரும்பவும்
+ date: நாள்
+ from: அனுப்புநர்
+ reply_button: பதில் அளி
+ subject: பொருள்
+ title: தகவலை வாசிக்கவும்
+ to: பெறுநர்
+ unread_button: வாசிக்கப்படாததாக குறியிடு
+ sent_message_summary:
+ delete_button: நீக்கு
+ notifier:
+ email_confirm_html:
+ greeting: வணக்கம்,
+ email_confirm_plain:
+ greeting: வணக்கம்,
+ gpx_notification:
+ greeting: வணக்கம்,
+ lost_password_html:
+ greeting: வணக்கம்,
+ lost_password_plain:
+ greeting: வணக்கம்,
+ oauth_clients:
+ edit:
+ submit: தொகு
+ form:
+ name: பெயர்
+ required: தேவைப்படும்
+ index:
+ revoke: திரும்பபெறு
+ new:
+ submit: பதிவுசெய்
+ site:
+ edit:
+ user_page_link: பயனர் பக்கம்
+ key:
+ table:
+ entry:
+ building: குறிப்பிடத்தக்க கட்டிடம்
+ centre: விளையாட்டு மையம்
+ commercial: வணிக பகுதி
+ common:
+ - பொதுவான
+ construction: சாலைகளில் கட்டுமானப் பணிகள் நடந்து வருகின்றன.
+ farm: பண்ணை
+ forest: காடு
+ industrial: தொழிற்சாலை பகுதி
+ lake:
+ - ஏரி
+ - நீர்த்தேக்கம்
+ military: ராணுவ பகுதி
+ park: பூங்கா
+ primary: முதன்மையான சாலை
+ private: தனியார் அனுமதி
+ rail: இரயில்வே
+ school:
+ - பள்ளி
+ - பல்கலைக்கழகம்
+ secondary: இரண்டாம் நிலை சாலை
+ station: தொடர்வண்டி நிலையம்
+ summit:
+ - உச்சி மாநாடு
+ - உயரமான இடம்
+ unclassified: வகைப்படுத்தாத சாலை
+ unsurfaced: பாவப்படாத சாலை
+ wood: விறகு
+ search:
+ search: தேடல்
+ submit_text: செல்
+ sidebar:
+ close: மூடு
+ search_results: தேடல் முடிவுகள்
+ time:
+ formats:
+ friendly: "%e %B %Y, %H:%M"
+ trace:
+ edit:
+ description: "விளக்கம்:"
+ download: தரவிறக்கு
+ edit: தொகு
+ filename: "கோப்புப்பெயர்:"
+ map: வரைபடம்
+ owner: "உரிமையாளர்:"
+ points: "புள்ளிகள்:"
+ save_button: மாற்றங்களை சேமி
+ tags: "குறிச்சொற்கள்:"
+ tags_help: காற்புள்ளி வரம்பில்லை
+ uploaded_at: "பதிவேற்றப்பட்டது:"
+ visibility: "காணும்தூரம்:"
+ visibility_help: இது எதைக் குறிக்கிறது?
+ no_such_user:
+ heading: பயனர் %{user} இல்லை
+ title: அப்படியொரு பயனர் இல்லை.
+ trace:
+ by: மூலம்
+ edit: தொகு
+ edit_map: வரைபடத்தை திருத்து
+ identifiable: அடையாளம் காணக்கூடிய
+ in: உள்
+ map: வரைபடம்
+ private: தனியார்
+ public: பொது
+ view_map: வரைபடத்தை காண்
+ trace_form:
+ description: "விளக்கம்:"
+ help: உதவி
+ tags: "குறிச்சொற்கள்:"
+ tags_help: காற்புள்ளி வரம்பில்லை
+ upload_button: பதிவேற்று
+ visibility: "காணும்தூரம்:"
+ visibility_help: இது எதைக் குறிக்கிறது?
+ trace_header:
+ see_all_traces: அனைத்து சுவடுகளையும் காண்
+ see_your_traces: உங்கள் சுவடுகளை காண்
+ upload_trace: சுவடை பதிவேற்றவும்
+ trace_optionals:
+ tags: குறிச்சொற்கள்
+ trace_paging_nav:
+ next: அடுத்து »
+ previous: « முந்தைய
+ view:
+ delete_track: இந்த சுவடை நீக்கவும்
+ description: "விளக்கம்:"
+ download: தரவிறக்கு
+ edit: தொகு
+ edit_track: இந்த சுவடை திருத்து
+ filename: "கோப்புப்பெயர்:"
+ map: வரைபடம்
+ none: ஏதுமில்லை
+ owner: "உரிமையாளர்:"
+ pending: நிலுவையில்
+ points: "புள்ளிகள்:"
+ tags: "குறிச்சொற்கள்:"
+ trace_not_found: சுவடு காணப்படவில்லை!
+ uploaded: "பதிவேற்றப்பட்டது:"
+ user:
+ account:
+ contributor terms:
+ link text: இது என்ன?
+ current email address: "தற்பொழுதுள்ள மின்னஞ்சல் முகவரி:"
+ delete image: நடப்பு படத்தை நீக்கு
+ image: "படம்:"
+ keep image: நடப்பு படத்தை வைத்திரு
+ my settings: என் அமைப்புகள்
+ new email address: "புதிய மின்னஞ்சல் முகவரி:"
+ new image: ஒரு படத்தை சேர்
+ openid:
+ link text: இது என்ன?
+ preferred editor: "விருப்பப்பட்ட திருத்துனர்:"
+ preferred languages: "விருப்பமான மொழிகள்:"
+ profile description: "சுயகுறிப்பு விளக்கம்:"
+ save changes button: மாற்றங்களைச் சேமி
+ title: கணக்கை திருத்து
+ list:
+ heading: பயனர்கள்
+ title: பயனர்கள்
+ login:
+ email or username: "மின்னஞ்சல் முகவரி அல்லது பயனர் பெயர்:"
+ heading: புகுபதிகை
+ login_button: புகுபதிகை
+ lost password link: உங்கள் கடவுச்சொல் மறந்துவிட்டதா?
+ openid_providers:
+ google:
+ title: கூகிள் மூலம் புகுபதிகை செய்
+ yahoo:
+ title: யாகூ கணக்கு மூலம் புகுபதிகை செய்
+ password: "கடவுச்சொல்:"
+ register now: இப்போது பதிவுசெய்யுங்கள்
+ remember: என்னை நினைவில் வைத்துக்கொள்ளவும்
+ title: புகுபதிகை
+ logout:
+ logout_button: விடுபதிகை
+ title: விடுபதிகை
+ lost_password:
+ email address: "மின்னஞ்சல் முகவரி:"
+ heading: கடவுச்சொல் மறந்துவிட்டதா?
+ new password button: கடவுச்சொல்லை மீட்டமை
+ title: காணப்படாத கடவுச்சொல்
+ new:
+ confirm email address: "மின்னஞ்சல் முகவரியை உறுதி செய்யவும்:"
+ confirm password: "கடவுச்சொல்லை உறுதிசெய்:"
+ email address: "மின்னஞ்சல் முகவரி:"
+ heading: பயனர் கணக்கு ஒன்றை உருவாக்கு
+ password: "கடவுச்சொல்:"
+ title: கணக்கை உருவாக்கு
+ no_such_user:
+ heading: பயனர் %{user} இல்லை
+ title: அப்படியொரு பயனர் இல்லை.
+ popup:
+ friend: நண்பர்
+ reset_password:
+ confirm password: "கடவுச்சொல்லை உறுதிசெய்:"
+ flash changed: உங்கள் கடவுச்சொல் மாற்றப்பட்டது.
+ heading: " %{user}க்கு கடவுச்சொல் மீட்டமை"
+ password: "கடவுச்சொல்:"
+ reset: கடவுச்சொல்லை மீட்டமை
+ title: கடவுச்சொல்லை மீட்டமை
+ suspended:
+ heading: கணக்கு இடைநீக்கம் செய்யப்பட்டுள்ளது
+ title: கணக்கு இடைநீக்கம் செய்யப்பட்டுள்ளது
+ terms:
+ agree: ஏற்றுக் கொள்
+ decline: நிராகரி
+ legale_names:
+ france: பிரான்சு
+ italy: இத்தாலி
+ rest_of_world: உலகின் மற்ற பகுதிகள்
+ view:
+ activate_user: இந்த பயனரை செயற்படுத்து
+ add as friend: நண்பராக சேர்
+ ago: (%{time_in_words_ago} முன்பு)
+ block_history: பெறப்பட்ட தடுப்புகளை காண்
+ confirm: உறுதிசெய்
+ confirm_user: இந்த பயனரை உறுதிசெய்
+ create_block: இப் பயனரைத் தடைசெய்
+ ct declined: நிராகரிக்கப்பட்டது
+ ct status: "பங்களிப்பாளர் விதிமுறைகள்:"
+ ct undecided: முடிவு செய்யப்படாத
+ deactivate_user: இந்த பயனரை செயல் நிறுத்து
+ delete_user: இப்பயனரை நீக்கவும்
+ description: விளக்கம்
+ diary: நாட்குறிப்பேடு
+ edits: தொகுப்புகள்
+ email address: "மின்னஞ்சல் முகவரி:"
+ hide_user: இந்த பயனரை மறை
+ km away: "%{count}கிமீ தாண்டி"
+ latest edit: "தற்போதைய திருத்தம் %{ago}:"
+ m away: "%{count}மீ தாண்டி"
+ moderator_history: கொடுக்கப்பட்ட தடைகளை காண்
+ my diary: எனது நாட்குறிப்பேடு
+ my edits: என் திருத்தங்கள்
+ my settings: என் அமைப்புகள்
+ nearby users: மற்ற அருகிலுள்ள பயனர்கள்
+ new diary entry: புதிய நாட்குறிப்பேடு உள்ளீடு
+ no friends: நீங்கள் இதுவரை எந்த நண்பர்களையும் சேர்க்கவில்லை
+ role:
+ administrator: இந்த பயனர் ஒரு நிர்வாகி
+ grant:
+ administrator: நிர்வாகி அனுமதியை அளிக்கவும்
+ moderator: நடுவர் அனுமதி அளிக்கவும்
+ moderator: இந்த பயனர் ஒரு நடுவர்
+ revoke:
+ administrator: நிர்வாகி அனுமதியை திரும்பபெறவும்
+ moderator: நடுவர் அனுமதியை திரும்பபெறவும்
+ settings_link_text: அமைப்புகள்
+ status: "நிலை:"
+ unhide_user: இந்த பயனரை மறைத்ததை நீக்கு
+ user location: பயனர் அமைவிடம்
+ your friends: உங்கள் நண்பர்கள்
+ user_block:
+ partial:
+ confirm: உறுதியாகவா?
+ creator_name: உருவாக்கியவர்
+ display_name: தடைசெய்யப்பட்ட பயனர்
+ edit: தொகு
+ revoke: திரும்பபெறு!
+ show: காண்பி
+ status: நிலை
+ show:
+ confirm: உறுதியாகவா?
+ edit: தொகு
+ reason: "தடைக்கான காரணம்:"
+ revoke: திரும்பபெறு!
+ show: காண்பி
+ status: நிலை
+ user_role:
+ revoke:
+ confirm: உறுதிப்படுத்து
licence: Lisensiya
longitude: "Longhitud:"
manually_select: Kinakamay na pumili ng ibang lugar
- mapnik_image: Larawan ng Mapnik
max: pinakamataas
options: Mga mapagpipilian
osm_xml_data: Dato ng XML ng OpenStreetMap
- osmarender_image: Larawan ng Osmarender
output: Kinalabasan
paste_html: Idikit ang HTML na ibabaon sa websayt
scale: Sukat
people_mapping_nearby: mga taong kalapit na nagmamapa
subject: Paksa
title: Kahon ng pumapasok
- you_have: Mayroon kang %{new_count} bagong mga mensahe at %{old_count} lumang mga mensahe
mark:
as_read: Minarkahan ang mensahe bilang nabasa na
as_unread: Minarkahan ang mensahe bilang hindi pa nababasa
subject: Paksa
title: Kahong-labasan
to: Para kay
- you_have_sent_messages: Mayroon kang %{count} naipadalang mga mensahe
read:
back_to_inbox: Bumalik sa kahong-tanggapan
back_to_outbox: Bumalik sa kahong-labasan
title: Mga tagagamit
login:
account not active: Paumanhin, hindi pa binubuhay ang akawnt mo.<br />Mangyaring gamitin ang kawing na nasa loob ng e-liham ng pagtitiyak ng akawnt upang buhayin ang akawnt mo, o <a href="%{reconfirm}">humiling ng isang panibagong e-liham ng pagtitiyak</a>.
- account suspended: Paumanhin, inantala ang akawnt mo dahil sa kahina-hinalang gawain. <br />Mangyaring makipag-ugnayan sa %{webmaster} kung nais mong talakayin ito.
auth failure: Paumanhin, hindi makalagda sa pamamagitan ng mga detalyeng iyan.
create account minute: Lumikha ng isang akawnt. Aabutin lamang ng isang minuto.
email or username: "Tirahan ng E-liham o Pangalan ng Tagagamit:"
remember: "Tandaan ako:"
title: Lumagda
to make changes: Upang makagawa ng mga pagbabago sa dato ng OpenStreetMap data, kailangang mayroon kang isang akawnt.
- webmaster: panginoon ng sapot
logout:
heading: Umalis sa pagkakalagda mula sa OpenStreetMap
logout_button: Umalis sa pagkakalagda
# Exported from translatewiki.net
# Export driver: syck-pecl
# Author: Alerque
+# Author: Emperyan
# Author: George Animal
# Author: Gizemb
# Author: Katpatuka
latitude: Enlem
longitude: Boylam
name: Ad
+ public: Kamu
size: Boyut
user: Kullanıcı
visible: Görünür
pass_crypt: Şifre
models:
acl: Erişim Kontrol Listesi
+ changeset: Değişiklik Kayıdı
+ changeset_tag: Değişiklik kayıdının etiketi
country: Ülke
diary_comment: Günlük Yorumu
diary_entry: Günlük Girdisi
friend: Arkadaş
language: Dil
message: Mesaj
- old_way: Eski yol
- old_way_tag: Eski yol etiketi
+ notifier: Bildir
+ old_way: Eski Yol
+ old_way_tag: Eski Yol Etiketi
session: Oturum
user: Kullanıcı
- user_preference: Kullanıcı Ayarları
+ user_preference: Kullanıcı Tercihleri
way: Yol
way_node: Yol Noktası
browse:
list:
description: Son değişiklikler
description_bbox: "%{bbox} alanındaki bulunan harita değişiklik setleri"
+ description_friend: Arkadaşların değişiklik kayıtları
+ description_nearby: Yakındaki kullanıcıların değişiklik kayıtları
description_user: "%{user} tarafından değişiklik setleri"
description_user_bbox: "%{user} tarafından %{bbox} alanındaki değişiklik setleri"
heading: Değişiklik Setleri
heading_bbox: Değişiklik Setleri
+ heading_friend: Değişiklik Kayıtları
+ heading_nearby: Değişiklik Kayıtları
heading_user: Değişiklik Setleri
heading_user_bbox: Değişiklik Setleri
title: Değişiklik Setleri
title_bbox: "%{bbox} alanındaki bulunan harita değişiklik setleri"
+ title_friend: Arkadaşların değişiklik kayıtları
+ title_nearby: Yakındaki kullanıcıların değişiklik kayıtları
title_user: "%{user} tarafından değişiklik setleri"
title_user_bbox: "%{user} tarafından %{bbox} alanındaki değişiklik setleri"
+ timeout:
+ sorry: Üzgünüz, değişiklik kayıtlarının listelenmesi fazla sürdü.
diary_entry:
+ comments:
+ comment: Yorum
+ has_commented_on: "%{display_name} aşağıdaki günlük girdilerini yorumladı"
+ newer_comments: Daha yeni yorumlar
+ older_comments: Daha eski yorumlar
+ post: Yazı
+ when: Tarih
diary_comment:
comment_from: "%{link_user} tarafından %{comment_created_at} tarihindeki yorum"
confirm: Onayla
older_entries: Daha eski kayıtlar
recent_entries: "Son günlük kayıtları:"
title: Kullanıcıların günlükleri
+ title_friends: Arkadaşlarının günlükleri
+ title_nearby: Yakındaki kullanıcıların günlükleri
user_title: "%{user} (Günlük)"
location:
edit: Düzenle
licence: Lisans
longitude: "Boylam:"
manually_select: Fare kullanarak farklı bir alan seç
- mapnik_image: Mapnik resim
+ map_image: Harita (varsayılan katmanı gösterir)
max: maks.
options: Seçenekler
osm_xml_data: OpenStreetMap XML Veri
- osmarender_image: Osmarender resim
output: Çıktı
paste_html: Yukarıdaki HTML kodu kopyalayıp websitesinde yapıştırabilir
scale: Ölçek
veterinary: Veteriner
village_hall: Köy odası
waste_basket: Çöp sepeti
- wifi: WiFi erisim noktası
+ wifi: WiFi erişim
youth_centre: Gençlik Merkezi
boundary:
administrative: İdari Sınır
guest_house: Konuk Evi
hostel: Hostel
hotel: Hotel
- information: Turist Enformasyon
+ information: Bilgi
lean_to: Ek binası
motel: Motel
museum: Müze
map:
base:
cycle_map: Topoğrafik Haritası
+ standard: Standart
+ transport_map: Ulaştırma Haritası
site:
edit_disabled_tooltip: Harita düzenlemek için yakınlaştırmak gerek
edit_tooltip: Haritayı düzenle
sign_up: Kaydol
sign_up_tooltip: Düzenleme moduna girmek için bir hesap oluştur
sotm2011: 2011 OpenStreetMap konferans, The State of the Map (Haritanın Durumu), 9-11 Eylül Denver'de!
- tag_line: Özgür bir Viki Dünya Haritası
+ tag_line: Özgür Viki Dünya Haritası
user_diaries: Günlük
user_diaries_tooltip: Kullanıcı günlükleri görüntüle
view: Harita
people_mapping_nearby: yakın çevredeki haritacılar
subject: Konu
title: Gelen Kutusu
- you_have: "%{new_count} yeni mesaj ve %{old_count} eski mesaj var"
mark:
as_read: Mesaj okundu olarak işaretlendi
as_unread: Mesaj okunmadı olarak işaretlendi
subject: Konu
title: Gönderilmiş Kutusu
to: Alıcı
- you_have_sent_messages: Gönderilen iletilerin sayısı %{count}
read:
back_to_inbox: Gelen kutusuna dön
back_to_outbox: Gönderilmiş kutusuna dön
wood: Orman
search:
search: Ara
- search_help: "örneğin: 'demirkazık', 'istiklal caddesi, istanbul', '50500', veya 'post office near Lünen' <a href='http://wiki.openstreetmap.org/wiki/Search'>daha fazla örnek...</a>"
+ search_help: "örneğin: 'Beyoğlu', 'İstiklal Caddesi, İstanbul', 'CB2 5AQ' ya da 'Fatih yakınlarında postane' <a href='http://wiki.openstreetmap.org/wiki/Search'>daha fazla örnek...</a>"
submit_text: Git
where_am_i: Ben neredeyim?
where_am_i_title: Arama motoru kullanarak geçerli konumunu tanımlar
user:
account:
contributor terms:
+ agreed: Yeni katılımcı şartları kabul ettin.
heading: "Katılımcı Şartları:"
link text: nemiş bu?
+ not yet agreed: Yeni katılımcı şartları kabul etmedin.
current email address: "Geçerli E-posta Adresi:"
delete image: Geçerli resim kaldır
email never displayed publicly: (asla genel olarak görüntülenir)
new email address: "Yeni E-posta Adresi:"
new image: Resim ekle
no home location: Konumunu girmedin.
+ openid:
+ link: http://wiki.openstreetmap.org/wiki/OpenID
+ link text: nemiş bu?
+ openid: "OpenID:"
preferred editor: "Tercih edilen harita düzenleyici:"
preferred languages: "Tercih edilen diller (mesela tr,en,de):"
profile description: "Profil Açıklaması:"
public editing:
+ disabled: Devre dışı ve verileri düzenleyemez; önceki düzenlemeleri hepsi anonimdir.
disabled link text: neden düzenleyemiyorum?
+ enabled: Etkin. Anonim değil ve verileri düzenleyebilir.
enabled link: http://wiki.openstreetmap.org/wiki/Anonymous_edits
enabled link text: bu da ne?
heading: "Herkese açık düzenleme modu:"
button: Onayla
success: E-posta adresinizi doğrulandı, kaydolduğu için teşekkür ederiz! İyi çalışmaları dileriz!
confirm_resend:
- failure: "%{user} kullanıcısı bulunamadı."
+ failure: "%{name} kullanıcısı bulunamadı."
success: Yeni bir onay mesajı %{email} adresine gönderdik. Mesajı onaylar onaylamaz haritacılığı başlayabilirsiniz.<br><br>Eğer onaylama mesajını almadısanız e-postanızın Antispam/Junk/İstenmeyen klasörüne lütfen kontrol ediniz.
list:
heading: Kullanıcılar
+ showing:
+ one: Sayfa %{page} (%{first_item} - toplam %{items})
+ other: Sayfa %{page} (%{first_item}-%{last_item} - toplam %{items})
summary_no_ip: "%{name} %{date} tarihinde oluşturuldu."
title: Kullanıcılar
login:
login_button: Gir
lost password link: Şifren mi unuttun?
new to osm: OpenStreetMap sitesinde yeni misiniz?
+ no account: Hesabın yok mu?
password: "Şifre:"
register now: Şimdi kayıt ol
remember: "Beni hatırla:"
display name description: Herkes tarafından görünen ad. Bu adı istediği zaman 'tercihlerim' bölümünde değiştirebilirsin.
email address: "E-posta Adresi:"
heading: Kullanıcı Hesabı Oluştur
+ openid: "%{logo} OpenID:"
password: "Şifre:"
+ terms accepted: Yeni katılımcı şartları kabul ettiğin için teşekkür ederiz!
title: Hesap oluştur
no_such_user:
body: Üzgünüz, %{user} adlı bir kullanıcı yok. Lütfen yazımınızı denetleyin veya tıkladığınız bağlantı belki yanlış idi.
block_history: verilen engellemeleri görüntüle
blocks by me: engellediklerim
blocks on me: engellendiklerim
+ comments: yorumlar
confirm: Onayla
confirm_user: bu kullanıcıyı onayla
create_block: Bu kullanıcıyı engelle
+ created from: "Kullanıldı yazılım:"
+ ct accepted: "%{ago} önce kabul etti"
+ ct declined: Reddetti
+ ct status: "Katılımcının şartları:"
+ ct undecided: Kararsız
deactivate_user: bu kullanıcıyı pasifleştir
delete_user: bu kullanıcıyı sil
description: Açıklama
diary: günlük
edits: düzenlemeleri
email address: "E-posta adresi:"
+ friends_changesets: Arkadaşların bütün değişiklik kayıtları görüntüle
+ friends_diaries: Arkadaşların bütün günlük girdileri görüntüle
hide_user: bu kullanıcı gizle
km away: "%{count} km uzak"
+ latest edit: "Son değişiklik %{ago}:"
m away: "%{count} metre yakın"
mapper since: "Haritacılığın başlangıç tarihi:"
moderator_history: verilen engellemeleri görüntüle
+ my comments: yorumladıklarım
my diary: günlüğüm
my edits: katkılarım
my settings: tercihlerim
my traces: GPS izlerim
nearby users: Yakın çevrede bulunan kullanıcılar
+ nearby_changesets: Yakındaki kullanıcıların bütün değişiklik kayıtları görüntüle
+ nearby_diaries: Yakındaki kullanıcıların bütün günlük girdileri görüntüle
new diary entry: yeni kayıt
no friends: Henüz herhangi bir arkadaş eklemediniz.
no nearby users: Yakın çevredeki herhangi başka kullanıcı henüz yok.
oauth settings: OAuth ayarları
remove as friend: Arkadaş listesinden çıkar
+ role:
+ administrator: Bu kullanıcı bir yönetici dir.
+ moderator: Bu kullanıcı bir moderatör dür.
send message: mesaj gönder
settings_link_text: ayarları
spam score: "Spam puanı:"
revoker_name: İptal eden
show: Göster
status: Durum
+ period:
+ one: 1 saat
+ other: "%{count} saat"
revoke:
confirm: Bu engeli kaldırmak istediğine emin misin?
flash: Engel kaldırıldı.
user:
active: Активний
description: Опис
- display_name: Показуване ім’я
+ display_name: "Показувати ім’я:"
email: Ел. пошта
languages: Мови
pass_crypt: Пароль
deleted: Вилучено
edit:
area: Редагувати область
- node: Редагувати вузол
+ node: Редагувати точку
relation: Редагувати відношення
way: Редагувати шлях
larger:
relation_member:
entry_role: "%{type} %{name} як %{role}"
type:
- node: Ð\92Ñ\83зол
+ node: ТоÑ\87ка
relation: Зв’язок
way: Лінія
start:
way: Лінія
private_user: приватний користувч
show_areas: Показати ділянки
- show_history: Показати Історію
+ show_history: Показати історію
unable_to_load_size: "Неможливо завантажити: розмір ділянки [[bbox_size]] завеликий (повинен бути менше ніж %{max_bbox_size})"
wait: Зачекайте…
zoom_or_select: Збільшить масштаб або виберіть ділянку на мапі для перегляду
list:
description: Останні зміни
description_bbox: Набір змін в межах %{bbox}
+ description_friend: Набори змін ваших друзів
+ description_nearby: Набори змін близьких користувачів
description_user: Набір змін користувача %{user}
description_user_bbox: Набір змін користувача %{user} в межах %{bbox}
heading: Набір змін
heading_bbox: Набір змін
+ heading_friend: Набори змін
+ heading_nearby: Набір змін
heading_user: Набір змін
heading_user_bbox: Набір змін
title: Набір змін
title_bbox: Набір змін в межах %{bbox}
+ title_friend: Набори змін ваших друзів
+ title_nearby: Набори змін близьких користувачів
title_user: Набір змін користувача %{user}
title_user_bbox: Набір змін користувача %{user} в межах %{bbox}
timeout:
older_entries: Старі записи
recent_entries: "Останні записи:"
title: Щоденник
+ title_friends: Щоденники друзів
+ title_nearby: Щоденники близьких користувачів
user_title: Щоденник користувача %{user}
location:
edit: Редагувати
licence: Ліцензія
longitude: "Дов.:"
manually_select: Виділіть іншу ділянку
- mapnik_image: Зображення Mapnik
max: макс.
options: Опції
osm_xml_data: Дані OpenStreetMap XML
- osmarender_image: Зображення Osmarender
output: Результат
paste_html: HTML-код для вбудовування до сайту
scale: Масштаб
post_box: Поштова скриня
post_office: Пошта
preschool: Дошкільний заклад
- prison: В'язниця
+ prison: В’язниця
pub: Паб
public_building: Громадський заклад
public_market: Базар
school: Школа
shelter: Укриття
shop: Магазин
- shopping: ШопÑ\96нг
+ shopping: ТоÑ\80говелÑ\8cний Ñ\86енÑ\82Ñ\80
social_club: Клуб за інтересами
studio: Студія
supermarket: Супермаркет
living_street: Житлова зона
minor: Другорядна дорога
motorway: Автомагістраль
- motorway_junction: В'їзд на автомагістраль
+ motorway_junction: В’їзд на автомагістраль
motorway_link: З’єднання з автомагістраллю
path: алея
pedestrian: Пішохідна дорога
conservation: Заповідник
construction: Будівництво
farm: Ферма
- farmland: ФеÑ\80ма
+ farmland: Ð Ñ\96ллÑ\8f
farmyard: Фермерське подвір'я
forest: Ліс
grass: Трава
valley: Долина
volcano: Вулкан
water: Вода
- wetland: Ð\92одно-болоÑ\82нÑ\96 Ñ\83гÑ\96ддÑ\8f
+ wetland: Ð\91олоÑ\82о
wetlands: Водно-болотні угіддя
wood: Гай
place:
mineral_spring: Мінеральне джерело
mooring: Якірна стоянка
rapids: Пороги
- river: Ріка
+ river: Річка
riverbank: Берег ріки
stream: Струмок
- wadi: Ð\9fеÑ\80еÑ\81оÑ\85ле Ñ\80Ñ\83Ñ\81ло
+ wadi: Ð\92адÑ\96
water_point: Пункт водопостачання
waterfall: Водоспад
weir: Ставок
map:
base:
cycle_map: Мапа для велосипедистів
+ mapquest: MapQuest Open
+ transport_map: Мапа Транспорту
site:
edit_disabled_tooltip: Збільшить масштаб для редагування мапи
edit_tooltip: Редагування мапи
welcome_user_link_tooltip: Ваша сторінка користувача
wiki: Вікі
wiki_title: Вікі-сайт проекту
+ wiki_url: http://wiki.openstreetmap.org/wiki/Uk:Main_Page
license_page:
foreign:
english_link: оригіналом англійською
inbox:
date: Дата
from: Від
+ messages: У вас %{new_messages} і %{old_messages}
my_inbox: Мої вхідні
+ new_messages:
+ one: "%{count} нове повідомлення"
+ other: "%{count} нових повідомлень"
no_messages_yet: У вас ще немає повідомлень. Чому б не поспілкуватись з кимось із %{people_mapping_nearby_link}?
+ old_messages:
+ one: "%{count} старе повідомлення"
+ other: "%{count} стари повідомлень"
outbox: вихідні
people_mapping_nearby: користувачів поблизу вас
subject: Тема
title: Вхідні
- you_have: У вас %{new_count} нових повідомлень і %{old_count} старих
mark:
as_read: Повідомлення позначене як прочитане
as_unread: Повідомлення позначене як непрочитане
outbox:
date: Дата
inbox: вхідні
+ messages:
+ one: У вас %{count} надіслане повідомлення
+ other: У вас %{count} надісланих повідомлень
my_inbox: Мої %{inbox_link}
no_sent_messages: У вас немає відправлених повідомлень. Чому б не поспілкуватись з кимось із %{people_mapping_nearby_link}?
outbox: вихідні
subject: Тема
title: Вихідні
to: Кому
- you_have_sent_messages: Ви відправили %{count} повідомлень
read:
back_to_inbox: Назад до вхідних
back_to_outbox: Назад до вихідних
hopefully_you: Хтось (сподіваємось, що ви) бажає створити обліковий запис на
introductory_video: "Ви можете подивитися відео-вступ про OpenStreetMap тут:"
more_videos: "Ще більше відео тут:"
- opengeodata: "OpenGeoData.org — це блог засновника OpenStreetMap — Стіва Коуст (Steve Coast), тут також можна знайти підкасти:"
+ opengeodata: "OpenGeoData.org — це блог засновника OpenStreetMap — Стіва Коуста (Steve Coast), тут також можна знайти підкасти:"
the_wiki: "Почитати про OpenStreetMap у Вікі:"
the_wiki_url: http://wiki.openstreetmap.org/wiki/Uk:Beginners%27_Guide
user_wiki_1: Ми рекомендуємо вам створити сторінку користувача Віки, яка містить
agreed: Ви погодилися на нові Умови Співпраці.
agreed_with_pd: Ви також заявляєте, що ви розглядаєте свій внесок в якості Суспільного Надбання.
heading: "Умови Співпраці:"
+ link: http://wiki.openstreetmap.org/wiki/Uk:Open_Database_License/Contributor_Terms
link text: що це?
not yet agreed: Ви ще не погодилися на нові Умови Співпраці.
review link text: Перейдіть за цим посиланням у зручний для Вас спосіб, щоб переглянути і прийняти нові Умови Співпраці
summary_no_ip: "%{name} зареєстврований %{date}"
title: Користувачі
login:
+ account is suspended: На жаль, ваш обліковий запис був заблокований через підозрілу діяльність.<br />Будь ласка, зв'яжіться з <a href="%{webmaster}">адміністратором</a>, якщо ви маєте заперечення.
account not active: Вибачте, ваш обліковий запис ще не активовано. <br /> Щоб його активувати, будь ласка, перевірте вашу поштову скриньку та натисніть на посилання в листі з проханням про підтвердження, або <a href="%{reconfirm}"> запросіть нове підтвердження по електронній пошті</a>.
- account suspended: На жаль, ваш обліковий запис був заблокований через підозрілу діяльність. <br />Будь ласка, зв'яжіться з %{webmaster}, якщо ви хочете обговорити це.
auth failure: Вибачте, вхід з цими ім'ям або паролем неможливий.
create account minute: Створити обліковий запис. Це займе всього хвилину.
email or username: "Ел. пошта або ім'я користувача:"
lost password link: Забули пароль?
new to osm: Вперше на OpenStreetMap?
notice: <a href="http://www.osmfoundation.org/wiki/License/We_Are_Changing_The_License">Дізнайтеся більше про майбутні зміни ліцензії OpenStreetMap</a> ( <a href="http://wiki.openstreetmap.org/wiki/ODbL/We_Are_Changing_The_License">переклади</a> ) ( <a href="http://wiki.openstreetmap.org/wiki/Talk:ODbL/Upcoming">обговорення</a> )
+ notice_terms: OpenStreetMap переходить на нову ліцензію з 1 квітня 2012 року. Вона така ж відкрита як діюча, але юридично набагато краще підходить для нашої картографічної бази даних. Ми хотіли б зберегти ваш внесок у OpenStreetMap, але це буде можливо тільки якщо ви згодні поширювати ваші правки на умовах нової ліцензії. В іншому разі, нам доведеться видалити їх з бази даних. <br /> <br /> Будь ласка, ввійдіть в систему і потратьте декілька секунд на ознайомлення і прийняття нових умов. Спасибі!
openid: "%{logo} OpenID:"
openid invalid: На жаль, схоже ваш OpenID спотворений
openid missing provider: На жаль, не вдається зв’язатись з вашим постачальником OpenID
remember: "Запам'ятати мене:"
title: Представтесь
to make changes: Щоб вносити зміни до даних OpenStreetMap, ви повинні мати обліковий запис.
- webmaster: веб-майстер
with openid: "Крім того, для входу ви можете скористатись вашим OpenID:"
with username: "Вже є обліковий запис OpenStreetMap? Будь ласка, введіть ваше ім'я користувача та пароль:"
logout:
openid no password: Під час використання OpenID пароль не потрібний, але для деяких додаткових інструментів або серверів він все ще потрібен.
password: "Пароль:"
terms accepted: Дякуємо за прийняття нових умов співпраці!
- terms declined: Ð\9dам Ñ\88кода, Ñ\89о ви виÑ\80Ñ\96Ñ\88или не пÑ\80иймаÑ\82и новÑ\96 Умови УÑ\87аÑ\81Ñ\82і. Для отримання додаткової інформації, будь ласка, перегляньте <a href="%{url}">цю сторінку</a> .
+ terms declined: Ð\9dам Ñ\88кода, Ñ\89о ви виÑ\80Ñ\96Ñ\88или не пÑ\80иймаÑ\82и новÑ\96 Умови СпÑ\96впÑ\80аÑ\86і. Для отримання додаткової інформації, будь ласка, перегляньте <a href="%{url}">цю сторінку</a> .
title: Реєстрація
use openid: Або використовуйте для входу %{logo} OpenID
no_such_user:
set_home:
flash success: Ваше місце розташування збережено
suspended:
- body: " <p>\n На жаль, ваш обліковий запис був автоматично заблокований через підозрілу\n діяльність. \n </p>\n <p>\n Це рішення буде розглянуто найближчим часом адміністратором, або\n ви можете зв'язатися з %{webmaster}, якщо ви хочете обговорити це.\n </p>"
+ body: " <p>\n На жаль, ваш обліковий запис був автоматично заблокований через підозрілу\n діяльність. \n </p>\n <p>\n Це рішення буде розглянуто найближчим часом адміністратором, або\n ви можете зв’язатися з %{webmaster}, якщо ви хочете обговорити це.\n </p>"
heading: Обліковий запис заблоковано
title: Обліковий запис заблоковано
webmaster: веб-майстер
confirm_user: підтвердити користувача
create_block: блокувати користувача
created from: "Створено з:"
+ ct accepted: Прийняті %{ago} тому
+ ct declined: Відхилили
+ ct status: "Умови Співпраці:"
+ ct undecided: Невизначились
deactivate_user: де-активувати цього користувача
delete_user: вилучити цього користувача
description: Опис
diary: щоденник
edits: правки
email address: "Адреса Е-пошти:"
+ friends_changesets: Переглянути усі набори змін друзів
+ friends_diaries: Переглянути всі записи в щоденнику друзів
hide_user: приховати цього користувача
- if set location: Якщо ви вкажете своє місце розташування, мапа і додаткові інструменти з'являться нижче. Ви можете встановити ваше місце розташування на вашій сторінці %{settings_link}.
+ if set location: Якщо ви вкажете своє місце розташування, мапа і додаткові інструменти з’являться нижче. Ви можете встановити ваше місце розташування на вашій сторінці %{settings_link}.
km away: "%{count} км від вас"
latest edit: "Остання правка %{ago}:"
m away: "%{count} м від вас"
my settings: мої налаштування
my traces: мої треки
nearby users: Інші найближчі користувачі
+ nearby_changesets: Переглянути всі набори змін близьких користувачів
+ nearby_diaries: Переглянути всі записи в щоденниках близьких користувачів
new diary entry: новий запис
no friends: Ви не додали ще жодного друга.
no nearby users: Поблизу поки немає користувачів, які займаються складанням мапи.
spam score: "Оцінка Спаму:"
status: "Статус:"
traces: треки
- unhide_user: вÑ\96добÑ\80азити цього користувача
+ unhide_user: показати цього користувача
user location: Місце знаходження користувача
your friends: Ваші друзі
user_block:
list:
description: Những thay đổi gần đây
description_bbox: Những bộ thay đổi ở trong %{bbox}
+ description_friend: Những bộ thay đổi của bạn bè
+ description_nearby: Những bộ thay đổi của người dùng ở gần
description_user: Những bộ thay đổi của %{user}
description_user_bbox: Những bộ thay đổi của %{user} ở trong %{bbox}
heading: Các bộ thay đổi
heading_bbox: Các bộ thay đổi
+ heading_friend: Các bộ thay đổi
+ heading_nearby: Các bộ thay đổi
heading_user: Các bộ thay đổi
heading_user_bbox: Các bộ thay đổi
title: Các bộ thay đổi
title_bbox: Những bộ thay đổi ở trong %{bbox}
+ title_friend: Những bộ thay đổi của bạn bè
+ title_nearby: Những bộ thay đổi của người dùng ở gần
title_user: Những bộ thay đổi của %{user}
title_user_bbox: Những bộ thay đổi của %{user} ở trong %{bbox}
timeout:
sorry: Rất tiếc, lấy danh sách bộ thay đổi tốn quá nhiều thì giờ.
diary_entry:
+ comments:
+ ago: cách đây %{ago}
+ comment: Bình luận
+ has_commented_on: "%{display_name} đã bình luận về các mục nhật ký sau"
+ newer_comments: Các Bình luận Sau
+ older_comments: Các Bình luận Trước
+ post: Mục nhật ký
+ when: Lúc đăng
diary_comment:
comment_from: Bình luận của %{link_user} lúc %{comment_created_at}
confirm: Xác nhận
older_entries: Mục Trước
recent_entries: "Mục nhật ký gần đây:"
title: Các Nhật ký Cá nhân
+ title_friends: Các nhật ký của bạn bè
+ title_nearby: Các nhật ký của người dùng ở gần
user_title: Nhật ký của %{user}
location:
edit: Sửa
licence: Giấy phép
longitude: "Kinh độ:"
manually_select: Chọn vùng khác thủ công
- mapnik_image: Hình Mapnik
+ map_image: Hình Bản đồ (Lớp Chuẩn)
max: tối đa
options: Tùy chọn
osm_xml_data: Dữ liệu OpenStreetMap XML
- osmarender_image: Hình Osmarender
output: Đầu ra
paste_html: Dán HTML để nhúng vào trang Web
scale: Tỷ lệ
veterinary: Phẫu thuật Thú y
village_hall: Trụ sở Làng
waste_basket: Thùng rác
- wifi: Điểm Truy cập Không dây
+ wifi: Điểm Truy cập Wi-Fi
youth_centre: Trung tâm Thanh niên
boundary:
administrative: Biên giới Hành chính
landuse:
allotments: Khu Vườn Gia đình
basin: Lưu vực
+ brownfield: Cánh đồng Nâu
cemetery: Nghĩa địa
commercial: Khu vực Thương mại
conservation: Bảo tồn
farmyard: Sân Trại
forest: Rừng Trồng Cây
grass: Cỏ
+ greenfield: Cánh đồng Xanh
industrial: Khu vực Công nghiệp
landfill: Nơi Đổ Rác
meadow: Đồng cỏ
reservoir: Bể nước
residential: Khu vực Nhà ở
retail: Khu vực Buôn bán
+ village_green: Sân Làng
vineyard: Vườn Nho
wetland: Đầm lầy
wood: Rừng
cliff: Vách đá
coastline: Bờ biển
crater: Miệng Núi
+ feature: Đối tượng Thiên nhiên
fell: Đồi đá
fjord: Vịnh hẹp
geyser: Mạch nước Phun
grocery: Tiệm Tạp phẩm
hairdresser: Tiệm Làm tóc
hardware: Tiệm Ngũ kim
+ hifi: Cửa hàng Hi-fi
insurance: Bảo hiểm
jewelry: Tiệm Kim hoàn
+ kiosk: Quán
laundry: Tiệm Giặt Quần áo
mall: Trung tâm Mua sắm
market: Chợ
newsagent: Tiệm Báo
optician: Tiệm Kính mắt
organic: Tiệm Thực phẩm Hữu cơ
+ outdoor: Cửa hàng Ngoài trời
pet: Tiệm Vật nuôi
photo: Tiệm Rửa Hình
salon: Tiệm Làm tóc
bed_and_breakfast: Nhà trọ
cabin: Túp lều
camp_site: Nơi Cắm trại
+ caravan_site: Bãi Đậu Nhà lưu động
chalet: Nhà ván
guest_house: Nhà khách
hostel: Nhà trọ
dock: Vũng tàu
drain: Cống
lock: Âu tàu
+ lock_gate: Âu tàu
mineral_spring: Suối Nước khoáng
+ mooring: Cột neo tàu
rapids: Thác ghềnh
river: Sông
riverbank: Bờ sông
map:
base:
cycle_map: Bản đồ Xe đạp
- mapnik: Mapnik
mapquest: MapQuest Mở
- osmarender: Osmarender
+ standard: Chuẩn
transport_map: Bản đồ Giao thông
overlays:
maplint: Maplint
export: Xuất
export_tooltip: Xuất dữ liệu bản đồ
foundation: Quỹ OpenStreetMap
- foundation_title: Quỹ Hỗ trợ OpenStreetMap
+ foundation_title: Quỹ OpenStreetMap
gps_traces: Tuyến đường GPS
gps_traces_tooltip: Quản lý tuyến đường GPS
help: Trợ giúp
intro_3: OpenStreetMap hoạt động nhờ sự hỗ trợ hosting của %{ucl}, %{ic}, và %{bytemark}. Các nhà bảo trợ khác được liệt kê tại %{partners}.
intro_3_ic: Đại học Hoàng gia Luân Đôn
intro_3_partners: wiki
+ intro_3_partners_url: http://wiki.openstreetmap.org/wiki/Partners?uselang=vi
intro_3_ucl: Trung tâm VR tại UCL
license:
alt: CC BY-SA 2.0
english_link: nguyên bản tiếng Anh
text: Trong trường hợp có xung đột giữa trang dịch và trang %{english_original_link}, trang tiếng Anh sẽ được ưu tiên
title: Thông tin về bản dịch này
- legal_babble: "<h2>Bản quyền và Giấy phép</h2>\n<p>\n OpenStreetMap là <i>dữ liệu mở</i> được phát hành theo giấy phép <a href=\"http://creativecommons.org/licenses/by-sa/2.0/deed.vi\">Creative Commons Ghi công–Chia sẻ tương tự 2.0</a> (CC-BY-SA).\n</p>\n<p>\n Bạn được tự do sao chép, phân phối, truyền, và tạo ra các tác phẩm phái sinh từ các bản đồ và dữ liệu của chúng ta, miễn là bạn ghi công OpenStreetMap và những người đóng góp vào nó. Nếu bạn sửa đổi hoặc tạo sản phẩm dựa trên các bản đồ và dữ liệu của chúng tôi, bạn chỉ được phép phân phối kết quả theo cùng giấy phép. <a href=\"http://creativecommons.org/licenses/by-sa/2.0/legalcode\">mã pháp lý</a> đầy đủ giải thích các quyền và trách nhiệm của bạn.\n</p>\n\n<h3>Cách ghi công OpenStreetMap</h3>\n<p>\n Nếu bạn đang sử dụng các hình ảnh bản đồ OpenStreetMap, chúng tôi yêu cầu rằng lời ghi công của bạn ít nhất đề “© những người đóng góp vào OpenStreetMap, CC-BY-SA”. Nếu bạn chỉ đang sử dụng dữ liệu bản đồ, chúng tôi xin câu “Dữ liệu © những người đóng góp vào OpenStreetMap, CC-BY-SA”.\n</p>\n<p>\n Lúc nào có thể, “OpenStreetMap” nên có liên kết đến <a href=\"http://www.openstreetmap.org/\">http://www.openstreetmap.org/</a> và “CC-BY-SA” đến <a href=\"http://creativecommons.org/licenses/by-sa/2.0/\">http://creativecommons.org/licenses/by-sa/2.0/</a>. Nếu bạn đang sử dụng phương tiện không cho phép đặt liên kết (thí dụ trong tác phẩm in giấy), chúng tôi gợi ý chỉ các độc giả đến www.openstreetmap.org (có lẽ bằng cách mở rộng “OpenStreetMap” trở thành địa chỉ đầy đủ này) và đến www.creativecommons.org.\n</p>\n\n<h3>Tìm hiểu thêm</h3>\n<p>\n Hãy đọc thêm chi tiết về việc sử dụng dữ liệu của chúng tôi trong <a href=\"http://wiki.openstreetmap.org/wiki/Legal_FAQ?uselang=vi\">Hỏi đáp Pháp lý</a>.\n</p>\n<p>\n Những người đóng góp vào OSM được khuyên không bao giờ bổ sung dữ liệu từ những nguồn có bản quyền (chẳng hạn Bản đồ Google hoặc các bản đồ trên giấy) trước khi người hay công ty giữ bản quyền cho phép rõ ràng.\n</p>\n<p>\n Tuy OpenStreetMap là dữ liệu mở, nhưng chúng tôi không thể cung cấp API miễn phí để cho những nhà phát triển bên thứ ba truy cập bản đồ. Hãy xem <a href=\"http://wiki.openstreetmap.org/wiki/API_usage_policy?uselang=vi\">Quy định Sử dụng API</a>, <a href=\"http://wiki.openstreetmap.org/wiki/Tile_usage_policy?uselang=vi\">Quy định Sử dụng Hình ảnh Bản đồ</a>, và <a href=\"http://wiki.openstreetmap.org/wiki/Nominatim?uselang=vi#Usage_Policy\">Quy định Sử dụng Nominatim</a>.\n</p>\n\n<h3>Những người đóng góp vào đây</h3>\n<p>\n Giấy phép CC-BY-SA của chúng tôi bắt bạn phải “ghi công Tác giả Đầu tiên bằng cách hợp với phương tiện Bạn đang sử dụng”. Những cá nhân vẽ bản đồ OSM không yêu cầu lời ghi công dứt khoát hơn “những người đóng góp vào OpenStreetMap”, nhưng trong những trường hợp dữ liệu của cơ quan khảo sát quốc gia hoặc nguồn lớn khác đã được nhập vào OpenStreetMap, có thể có lý ghi công nguồn này bằng cách ghi công họ thẳng hoặc đặt liên kết đến trang này.\n</p>\n\n<!--\nThông tin cho những người giữ gìn trang này\n\nSau đây chỉ là những tổ chức có điều khoản bắt phải ghi công họ trước khi OpenStreetMap nhập dữ liệu của họ được. Đây không phải là tập hợp thông tin đầy đủ về các lượt nhập. Phần này chỉ có được sử dụng khi nào cần thiết để tuân theo các điều khoản trong giấy phép của dữ liệu được nhập.\n\nTrước khi bổ sung vào phần này, hãy thảo luận với các quản lý viên hệ thống của OSM.\n-->\n\n<ul id=\"contributors\">\n <li><strong>Áo</strong>: Bao gồm dữ liệu từ <a href=\"http://data.wien.gv.at/\">Stadt Wien</a> theo <a href=\"http://creativecommons.org/licenses/by/3.0/at/deed.vi\">CC-BY</a>.</li>\n <li><strong>Ba Lan</strong>: Bao gồm dữ liệu từ các <a\n href=\"http://ump.waw.pl/\">bản đồ UMP-pcPL</a>. Bản quyền những người đóng góp UMP-pcPL.</li>\n <li><strong>Canada</strong>: Bao gồm dữ liệu từ GeoBase®, GeoGratis (© Bộ Tài nguyên Canada), CanVec (© Bộ Tài nguyên Canada), và StatCan (Sở Địa lý, Statistics Canada).</li>\n <li><strong>New Zealand</strong>: Bao gồm dữ liệu bắt nguồn từ Land Information New Zealand. Bản quyền Crown Copyright được bảo lưu.</li>\n <li><strong>Pháp</strong>: Bao gồm dữ liệu từ Sở thuế Pháp (<i lang=\"fr\" xml:lang=\"fr\">Direction générale des Impôts</i>).</li>\n <li><strong>Úc</strong>: Bao gồm dữ liệu về ngoại ô dựa trên dữ liệu của Cục Thống kê Úc.</li>\n <li><strong>Vương quốc Anh</strong>: Bao gồm dữ liệu Ordnance Survey © bản quyền Crown Copyright và quyền cơ sở dữ liệu 2010.</li>\n</ul>\n\n<p>\n Việc bao gồm dữ liệu trong OpenStreetMap không ngụ ý rằng nhà cung cấp dữ liệu đầu tiên ủng hộ OpenStreetMap, biện hộ sự chính xác của nó, hoặc nhận trách nhiệm pháp lý nào.\n</p>"
+ legal_babble: "<h2>Bản quyền và Giấy phép</h2>\n<p>\n OpenStreetMap là <i>dữ liệu mở</i> được phát hành theo giấy phép <a href=\"http://creativecommons.org/licenses/by-sa/2.0/deed.vi\">Creative Commons Ghi công–Chia sẻ tương tự 2.0</a> (CC BY-SA).\n</p>\n<p>\n Bạn được tự do sao chép, phân phối, truyền, và tạo ra các tác phẩm phái sinh từ các bản đồ và dữ liệu của chúng ta, miễn là bạn ghi công OpenStreetMap và những người đóng góp vào nó. Nếu bạn sửa đổi hoặc tạo sản phẩm dựa trên các bản đồ và dữ liệu của chúng tôi, bạn chỉ được phép phân phối kết quả theo cùng giấy phép. <a href=\"http://creativecommons.org/licenses/by-sa/2.0/legalcode\">mã pháp lý</a> đầy đủ giải thích các quyền và trách nhiệm của bạn.\n</p>\n\n<h3>Cách ghi công OpenStreetMap</h3>\n<p>\n Nếu bạn đang sử dụng các hình ảnh bản đồ OpenStreetMap, chúng tôi yêu cầu rằng lời ghi công của bạn ít nhất đề “© những người đóng góp vào OpenStreetMap, CC BY-SA”. Nếu bạn chỉ đang sử dụng dữ liệu bản đồ, chúng tôi xin câu “Dữ liệu © những người đóng góp vào OpenStreetMap, CC BY-SA”.\n</p>\n<p>\n Lúc nào có thể, “OpenStreetMap” nên có liên kết đến <a href=\"http://www.openstreetmap.org/\">http://www.openstreetmap.org/</a> và “CC BY-SA” đến <a href=\"http://creativecommons.org/licenses/by-sa/2.0/\">http://creativecommons.org/licenses/by-sa/2.0/</a>. Nếu bạn đang sử dụng phương tiện không cho phép đặt liên kết (thí dụ trong tác phẩm in giấy), chúng tôi gợi ý chỉ các độc giả đến www.openstreetmap.org (có lẽ bằng cách mở rộng “OpenStreetMap” trở thành địa chỉ đầy đủ này) và đến www.creativecommons.org.\n</p>\n\n<h3>Tìm hiểu thêm</h3>\n<p>\n Hãy đọc thêm chi tiết về việc sử dụng dữ liệu của chúng tôi trong <a href=\"http://wiki.openstreetmap.org/wiki/Legal_FAQ?uselang=vi\">Hỏi đáp Pháp lý</a>.\n</p>\n<p>\n Những người đóng góp vào OSM được khuyên không bao giờ bổ sung dữ liệu từ những nguồn có bản quyền (chẳng hạn Bản đồ Google hoặc các bản đồ trên giấy) trước khi người hay công ty giữ bản quyền cho phép rõ ràng.\n</p>\n<p>\n Tuy OpenStreetMap là dữ liệu mở, nhưng chúng tôi không thể cung cấp API miễn phí để cho những nhà phát triển bên thứ ba truy cập bản đồ. Hãy xem <a href=\"http://wiki.openstreetmap.org/wiki/API_usage_policy?uselang=vi\">Quy định Sử dụng API</a>, <a href=\"http://wiki.openstreetmap.org/wiki/Tile_usage_policy?uselang=vi\">Quy định Sử dụng Hình ảnh Bản đồ</a>, và <a href=\"http://wiki.openstreetmap.org/wiki/Nominatim?uselang=vi#Usage_Policy\">Quy định Sử dụng Nominatim</a>.\n</p>\n\n<h3>Những người đóng góp vào đây</h3>\n<p>\n Giấy phép CC BY-SA của chúng tôi bắt bạn phải “ghi công Tác giả Đầu tiên bằng cách hợp với phương tiện Bạn đang sử dụng”. Những cá nhân vẽ bản đồ OSM không yêu cầu lời ghi công dứt khoát hơn “những người đóng góp vào OpenStreetMap”, nhưng trong những trường hợp dữ liệu của cơ quan khảo sát quốc gia hoặc nguồn lớn khác đã được nhập vào OpenStreetMap, có thể có lý ghi công nguồn này bằng cách ghi công họ thẳng hoặc đặt liên kết đến trang này.\n</p>\n\n<!--\nThông tin cho những người giữ gìn trang này\n\nSau đây chỉ là những tổ chức có điều khoản bắt phải ghi công họ trước khi OpenStreetMap nhập dữ liệu của họ được. Đây không phải là tập hợp thông tin đầy đủ về các lượt nhập. Phần này chỉ có được sử dụng khi nào cần thiết để tuân theo các điều khoản trong giấy phép của dữ liệu được nhập.\n\nTrước khi bổ sung vào phần này, hãy thảo luận với các quản lý viên hệ thống của OSM.\n-->\n\n<ul id=\"contributors\">\n <li><strong>Áo</strong>: Bao gồm dữ liệu từ <a href=\"http://data.wien.gv.at/\">Tiểu bang Viên</a> theo <a href=\"http://creativecommons.org/licenses/by/3.0/at/deed.vi\">CC BY</a>.</li>\n <li><strong>Ba Lan</strong>: Bao gồm dữ liệu từ các <a\n href=\"http://ump.waw.pl/\">bản đồ UMP-pcPL</a>. Bản quyền những người đóng góp UMP-pcPL. Xem thêm chi tiết về <a href=\"http://wiki.openstreetmap.org/wiki/Pl:UMP2OSM/Import?uselang=vi\">cách sử dụng dữ liệu UMP tại OpenStreetMap</a>.</li></li>\n <li><strong>Canada</strong>: Bao gồm dữ liệu từ GeoBase®, GeoGratis (© Bộ Tài nguyên Canada), CanVec (© Bộ Tài nguyên Canada), và StatCan (Sở Địa lý, Statistics Canada).</li>\n <li><strong>Nam Phi</strong>: Bao gồm dữ liệu từ <a href=\"http://www.ngi.gov.za/\">Tổng cục: Thông tin Không gian địa lý Quốc gia</a>, bản quyền nhà nước được bảo lưu.</li>\n <li><strong>New Zealand</strong>: Bao gồm dữ liệu bắt nguồn từ Land Information New Zealand. Bản quyền Crown Copyright được bảo lưu.</li>\n <li><strong>Pháp</strong>: Bao gồm dữ liệu từ Sở thuế Pháp (<i lang=\"fr\" xml:lang=\"fr\">Direction générale des Impôts</i>).</li>\n <li><strong>Úc</strong>: Bao gồm dữ liệu về ngoại ô dựa trên dữ liệu của Cục Thống kê Úc.</li>\n <li><strong>Vương quốc Anh</strong>: Bao gồm dữ liệu Ordnance Survey © bản quyền Crown Copyright và quyền cơ sở dữ liệu 2010.</li>\n</ul>\n\n<p>\n Việc bao gồm dữ liệu trong OpenStreetMap không ngụ ý rằng nhà cung cấp dữ liệu đầu tiên ủng hộ OpenStreetMap, biện hộ sự chính xác của nó, hoặc nhận trách nhiệm pháp lý nào.\n</p>"
native:
mapping_link: bắt đầu vẽ bản đồ
native_link: bản dịch tiếng Việt
inbox:
date: Ngày
from: Từ
+ messages: Bạn có %{new_messages} và %{old_messages}
my_inbox: Hộp thư đến
+ new_messages: "%{count} thư mới"
no_messages_yet: Bạn chưa nhận thư nào. Hãy thử liên lạc với %{people_mapping_nearby_link}?
+ old_messages: "%{count} thư cũ"
outbox: đã gửi
people_mapping_nearby: những người ở gần
subject: Tiêu đề
title: Hộp thư
- you_have: Bạn có %{new_count} thư mới và %{old_count} thư cũ
mark:
as_read: Thư đã đọc
as_unread: Thư chưa đọc
outbox:
date: Ngày
inbox: thư đến
+ messages: Bạn có %{count} thư đã gửi
my_inbox: Hộp %{inbox_link}
no_sent_messages: Bạn chưa gửi thư cho người nào. Hãy thử liên lạc với %{people_mapping_nearby_link}?
outbox: thư đã gửi
subject: Tiêu đề
title: Hộp thư đã gửi
to: Tới
- you_have_sent_messages: Bạn đã gửi %{count} thư
read:
back_to_inbox: Trở về hộp thư đến
back_to_outbox: Trở về hộp thư đã gửi
- nhà ga hành khách
bridge: Đường rắn = cầu
bridleway: Đường cưỡi ngựa
- brownfield: Sân để trống
+ brownfield: Cánh đồng nâu
building: Kiến trúc quan trọng
byway: Đường mòn đa mốt
cable:
agreed: Bạn đã đồng ý với các Điều khoản Đóng góp mới.
agreed_with_pd: Bạn cũng đã tuyên bố coi rằng các đóng góp của bạn thuộc về phạm vi công cộng.
heading: "Các Điều khoản Đóng góp:"
+ link: http://www.osmfoundation.org/wiki/License/Contributor_Terms?uselang=vi
link text: đây là gì?
not yet agreed: Bạn chưa đồng ý với các Điều khoản Đóng góp mới.
review link text: Xin vui lòng theo liên kết này khi nào có thì giờ để đọc lại và chấp nhận các Điều khoản Đóng góp mới.
summary_no_ip: "%{name} mở ngày %{date}"
title: Người dùng
login:
+ account is suspended: Rất tiếc, tài khoản của bạn đã bị đình chỉ vì hoạt động bị nghi ngờ.<br />Xin vui lòng liên lạc với <a href="%{webmaster}">webmaster</a> để thảo luận về điều này.
account not active: Rất tiếc, tài khoản của bạn chưa được kích hoạt.<br />Xin hãy nhấn chuột vào liên kết trong thư điện tử xác nhận tài khoản để kích hoạt tài khoản, hoặc <a href="%{reconfirm}">yêu cầu thư xác nhận mới</a>.
- account suspended: Đáng tiếc, tài khoản của bạn đang bị cấm do các hoạt động nghi ngờ.<br />Vui lòng liên lạc với %{webmaster} để thảo luận về vụ cấm này.
auth failure: Rất tiếc, không thể đăng nhập với những chi tiết đó.
create account minute: Chỉ mất một phút để mở tài khoản mới.
email or username: "Địa chỉ Thư điện tử hoặc Tên đăng ký:"
login_button: Đăng nhập
lost password link: Quên mất Mật khẩu?
new to osm: Mới đến OpenStreetMap?
+ no account: Chưa có tài khoản?
notice: <a href="http://www.osmfoundation.org/wiki/License/We_Are_Changing_The_License?uselang=vi">Tìm hiểu thêm về thay đổi giấy phép sắp tới của OpenStreetMap</a> (<a href="http://wiki.openstreetmap.org/wiki/ODbL/We_Are_Changing_The_License?uselang=vi">bản dịch</a>) (<a href="http://wiki.openstreetmap.org/wiki/Talk:ODbL/Upcoming?uselang=vi">thảo luận</a>)
+ notice_terms: OpenStreetMap sẽ đổi qua một giấy phép mới vào ngày 1 tháng 4 năm 2012. Giấy phép mới vẫn mở như giấy phép hiện tại, trong khi các chi tiết pháp lý mới phù hợp hơn với cơ sở dữ liệu bản đồ của chúng ta. Chúng tôi rất muốn tiếp tục bao gồm các đóng góp của bạn trong OpenStreetMap; tuy nhiên, bạn cần phải cho phép chúng tôi phân phối các đóng góp này theo các điều khoản của giấy phép mới. Nếu không cho phép, chúng tôi sẽ phải xóa chúng khỏi cơ sở dữ liệu.<br /><br />Xin làm ơn đăng nhập rồi đọc lại và chấp nhận các điều khoản mới, chỉ mất vài giây thôi. Cám ơn!
openid: "%{logo} OpenID:"
openid invalid: Rất tiếc, hình như OpenID của bạn không hợp lệ
openid missing provider: Rất tiếc, không thể kết nối với nhà cung cấp OpenID của bạn
remember: "Nhớ tôi:"
title: Đăng nhập
to make changes: Bạn phải có tài khoản để thay đổi dữ liệu OpenStreetMap.
- webmaster: chủ trang
with openid: "Hoặc đăng nhập dùng OpenID của bạn:"
with username: "Đã có tài khoản OpenStreetMap? Hãy đăng nhập với tên người dùng và mật khẩu của bạn:"
logout:
password: "Mật khẩu:"
terms accepted: Cám ơn bạn đã chấp nhận các điều khoản đóng góp mới!
terms declined: Chúng tôi rất tiếc rằng bạn đã quyết định không chấp nhận các Điều khoản Đóng góp mới. Vui lòng xem chi tiết tại <a href="%{url}">trang wiki này</a>.
+ terms declined url: http://wiki.openstreetmap.org/wiki/Contributor_Terms_Declined?uselang=vi
title: Mở tài khoản
use openid: Hoặc đăng nhập dùng %{logo} OpenID
no_such_user:
agree: Chấp nhận
consider_pd: Ngoài các thỏa thuận ở trên, tôi coi rằng các đóng góp của tôi thuộc về phạm vi công cộng
consider_pd_why: đây là gì?
+ consider_pd_why_url: http://www.osmfoundation.org/wiki/License/Why_would_I_want_my_contributions_to_be_public_domain?uselang=vi
decline: Từ chối
+ declined: http://wiki.openstreetmap.org/wiki/Contributor_Terms_Declined?uselang=vi
guidance: "Thông tin để tìm hiểu về các điều khoản này: <a href=\"%{summary}\">bản tóm tắt dễ đọc</a> và <a href=\"%{translations}\">một số bản dịch không chính thức</a>"
heading: Điều kiện đóng góp
legale_names:
block_history: xem các tác vụ cấm người này
blocks by me: tác vụ cấm bởi tôi
blocks on me: tác vụ cấm tôi
+ comments: bình luận
confirm: Xác nhận
confirm_user: xác nhận người dùng này
create_block: cấm người dùng này
created from: "Địa chỉ IP khi mở:"
+ ct accepted: Chấp nhận cách đây %{ago}
+ ct declined: Từ chối
+ ct status: "Điều khoản đóng góp:"
+ ct undecided: Chưa quyết định
deactivate_user: vô hiệu hóa tài khoản này
delete_user: xóa tài khoản này
description: Miêu tả
diary: nhật ký
edits: đóng góp
email address: "Địa chỉ thư điện tử:"
+ friends_changesets: Xem những bộ thay đổi của bạn bè
+ friends_diaries: Đọc những mục nhật ký của bạn bè
hide_user: ẩn tài khoản này
if set location: Nếu đặt vị trí, bản đồ đẹp đẽ và những thứ đó sẽ được hiển thị ở dưới. Bạn có thể đặt vị trí nhà tại trang %{settings_link}.
km away: cách %{count} km
m away: cách %{count} m
mapper since: "Tham gia:"
moderator_history: xem các tác vụ cấm bởi người này
+ my comments: bình luận của tôi
my diary: nhật ký của tôi
my edits: đóng góp của tôi
my settings: tùy chọn
my traces: tuyến đường của tôi
nearby users: Người dùng khác ở gần
+ nearby_changesets: Xem các bộ thay đổi của người dùng ở gần
+ nearby_diaries: Đọc các mục nhật ký của người dùng ở gần
new diary entry: mục nhật ký mới
no friends: Bạn chưa thêm người bạn.
no nearby users: Không có người dùng nào nhận rằng họ ở gần.
list:
description: 最近更改
description_bbox: "%{bbox} 内的修改集合"
+ description_friend: 您的朋友的修改集合
+ description_nearby: 附近用户的修改集合
description_user: "%{user} 的修改集合"
description_user_bbox: "%{user} 在 %{bbox} 内的修改集合"
heading: 修改集合
heading_bbox: 修改集合
+ heading_friend: 修改集合
+ heading_nearby: 修改集合
heading_user: 修改集合
heading_user_bbox: 修改集合
title: 修改集合
title_bbox: "%{bbox} 内的修改集合"
+ title_friend: 您的朋友的修改集合
+ title_nearby: 附近用户的修改集合
title_user: "%{user} 的修改集合"
title_user_bbox: "%{user} 在 %{bbox} 内的修改集合"
timeout:
sorry: 对不起,取得您要求的修改集合列表时花了太长的时间。
diary_entry:
+ comments:
+ ago: "%{ago}前"
+ comment: 评论
+ has_commented_on: "%{display_name} 在以下的日记中发表了评论"
+ newer_comments: 新的评论
+ older_comments: 旧的评论
+ post: 发布
+ when: 于
diary_comment:
comment_from: 由 %{link_user} 于 %{comment_created_at} 发表的评论
confirm: 确认
older_entries: 更早的条目
recent_entries: 最近的日记条目:
title: 用户的日记
+ title_friends: 朋友的日记
+ title_nearby: 附近用户的日记
user_title: "%{user} 的日记"
location:
edit: 编辑
licence: 协议
longitude: 经度:
manually_select: 手动选择一个不同的区域
- mapnik_image: Mapnik 图像
+ map_image: 地图图片(显示于标准图层)
max: 最大
options: 选项
osm_xml_data: OpenStreetMap XML 数据
- osmarender_image: Osmarender 图像
output: 输出
paste_html: 在网页上粘贴 HTML
scale: 比率
map:
base:
cycle_map: Cycle Map
- mapnik: Mapnik
mapquest: MapQuest Open
- osmarender: Osmarender
+ standard: 标准
transport_map: Transport Map
overlays:
maplint: Maplint
inbox:
date: 日期
from: 来自
+ messages: 您有 %{new_messages}和 %{old_messages}
my_inbox: 我的收件箱
+ new_messages: "%{count} 条新消息"
no_messages_yet: 您还没有消息,何不联系一些%{people_mapping_nearby_link}?
+ old_messages: "%{count} 条旧消息"
outbox: 发件箱
people_mapping_nearby: 在您附近的人
subject: 标题
title: 收件箱
- you_have: 您有 %{new_count} 条新消息和 %{old_count} 条旧消息
mark:
as_read: 标记消息为已读
as_unread: 标记消息为未读
outbox:
date: 日期
inbox: 收件箱
+ messages: 您有 %{count} 条已发送消息
my_inbox: 我的%{inbox_link}
no_sent_messages: 您尚未发送信息。何不联系一些%{people_mapping_nearby_link}?
outbox: 发件箱
subject: 主题
title: 发件箱
to: 给
- you_have_sent_messages: 您有 %{count} 个已发送信息
read:
back_to_inbox: 返回收件箱
back_to_outbox: 返回发件箱
summary_no_ip: "%{name} 创建于 %{date}"
title: 用户
login:
+ account is suspended: 对不起,您的帐户因可疑活动已被暂停。<br />如果你想讨论这个,请联系<a href="%{webmaster}">网站管理员</a>。
account not active: 对不起,您的账户尚未激活。<br />请点击在账户确认邮件中的链接来激活您的账户,或<a href="%{reconfirm}">请求新的确认电子邮件</a>。
- account suspended: 对不起,您的帐户已因可疑活动被暂停了。 <br />如果您想讨论这一点,请联系%{webmaster}。
auth failure: 对不起,凭这些信息您无法登录。
create account minute: 创建一个帐户。只需要一分钟。
email or username: 电子邮件地址或用户名:
login_button: 登录
lost password link: 找回密码?
new to osm: 第一次来到 OpenStreetMap?
+ no account: 还没有帐户?
notice: <a href="http://www.osmfoundation.org/wiki/License/We_Are_Changing_The_License">了解有关 OpenStreetMap 即将更换许可协议的信息</a> (<a href="http://wiki.openstreetmap.org/wiki/ODbL/We_Are_Changing_The_License">翻译</a>) (<a href="http://wiki.openstreetmap.org/wiki/Talk:ODbL/Upcoming">讨论</a>)
+ notice_terms: OpenStreetMap 将于 2012 年 4 月 1 日更换到新的许可。这和当前的许可一样开放,但法律地位更适合我们的地图数据库。我们很乐意在 OpenStreetMap 保留您的贡献,但我们只能在您同意让我们根据新的许可证分发时,才能这么做。否则,我们将不得不从数据库中删除您的贡献。<br><br>请登录,然后花几秒钟查看并接受新的条款。谢谢!
openid: "%{logo} OpenID:"
openid invalid: 对不起,您的 OpenID 格式似乎不正确
openid missing provider: 对不起,无法联系您的 OpenID 提供者
remember: 记住我:
title: 登录
to make changes: 要修改 OpenStreetMap 的数据,您必须拥有一个帐户。
- webmaster: 网站管理员
with openid: 或者请使用您的 OpenID 登录:
with username: 已经有一个 OpenStreetMap 帐户?请使用您的用户名和密码登录:
logout:
block_history: 查看接受的封禁
blocks by me: 被我所封禁
blocks on me: 对我的封禁
+ comments: 注释
confirm: 确认
confirm_user: 确认此用户
create_block: 阻止此用户
created from: 建立于:
+ ct accepted: 于%{ago}以前接受
+ ct declined: 已拒绝
+ ct status: 贡献者条款:
+ ct undecided: 未决定
deactivate_user: 停用该用户
delete_user: 删除此用户
description: 说明
diary: 日记
edits: 编辑
email address: 电子邮件地址:
+ friends_changesets: 浏览朋友的所有修改集合
+ friends_diaries: 浏览朋友的所有日记条目
hide_user: 隐藏此用户
if set location: 如果您设定您的位置,一张精美的地图及其他相关信息将出现在下方。您可以通过您的%{settings_link}页面来设置您的位置。
km away: "%{count} 公里之外"
m away: "%{count} 米之外"
mapper since: 成为制图者于:
moderator_history: 查看封禁来自
+ my comments: 我的评论
my diary: 我的日记
my edits: 我的编辑
my settings: 我的设置
my traces: 我的轨迹
nearby users: 附近的其他用户
+ nearby_changesets: 浏览附近用户的所有修改集合
+ nearby_diaries: 浏览附近用户的所有日记条目
new diary entry: 新日记入口
no friends: 您还没有添加任何好友。
no nearby users: 附近没有在进行制图的用户。
licence: 授權
longitude: 經度:
manually_select: 手動選擇不同的區域
- mapnik_image: Mapnik 圖片
max: 最大
options: 選項
osm_xml_data: OpenStreetMap XML 資料
- osmarender_image: Osmarender 圖片
output: 輸出
paste_html: 貼上 HTML 內嵌於網站
scale: 比例
people_mapping_nearby: 附近製作地圖
subject: 主旨
title: 收件匣
- you_have: 您有 %{new_count} 個新訊息和 %{old_count} 個舊訊息
mark:
as_read: 訊息標記為已讀
as_unread: 訊息標記為未讀
subject: 主旨
title: 寄件匣
to: 收件者
- you_have_sent_messages: 您有 %{count} 個寄送的訊息
read:
back_to_inbox: 回到收件匣
back_to_outbox: 回到寄件匣
title: 使用者
login:
account not active: 抱歉,您的帳號尚未啟用。<br />請點選帳號確認電子郵件中的連結來啟用您的帳號,或是<a href="%{reconfirm}">要求寄一封新的確認信</a>。
- account suspended: 對不起,您的帳號已因可疑活動被暫停了。 <br />如果你想討論這一點,請聯繫%{webmaster}。
auth failure: 抱歉,無法以這些資料登入。
create account minute: 建立一個帳號。只需要一分鐘。
email or username: 電子郵件位址或使用者名稱:
remember: 記住我:
title: 登入
to make changes: 要更改的 OpenStreetMap 的資料,您必須擁有一個帳號。
- webmaster: 網站管理員
logout:
heading: 從 OpenStreetMap 登出
logout_button: 登出
+++ /dev/null
-# MySQL (default setup). Versions 4.1 and 5.0 are recommended.
-#
-# Install the MySQL driver:
-# gem install mysql
-# On MacOS X:
-# gem install mysql -- --include=/usr/local/lib
-# On Windows:
-# There is no gem for Windows. Install mysql.so from RubyForApache.
-# http://rubyforge.org/projects/rubyforapache
-#
-# And be sure to use new-style password hashing:
-# http://dev.mysql.com/doc/refman/5.0/en/old-client.html
-development:
- adapter: mysql
- database: openstreetmap
- username: openstreetmap
- password: openstreetmap
- host: localhost
- encoding: utf8
-
-# Warning: The database defined as 'test' will be erased and
-# re-generated from your development database when you run 'rake'.
-# Do not set this db to the same as development or production.
-test:
- adapter: mysql
- database: osm_test
- username: osm_test
- password: osm_test
- host: localhost
- encoding: utf8
-
-production:
- adapter: mysql
- database: osm
- username: osm
- password: osm
- host: localhost
- encoding: utf8
+++ /dev/null
-{
- :ar => {
- :i18n => {
- :plural => {
- :rule => lambda { |count|
- case count
- when 1 then :one
- when 2 then :two
- else case count % 100
- when 3..10 then :few
- when 11..99 then :many
- else :other
- end
- end
- }
- }
- }
- },
- :ru => {
- :i18n => {
- :plural => {
- :rule => lambda { |count|
- case count % 100
- when 11,12,13,14 then :many
- else case count % 10
- when 1 then :one
- when 2,3,4 then :few
- when 5,6,7,8,9,0 then :many
- else :other
- end
- end
- }
- }
- }
- },
- :sl => {
- :i18n => {
- :plural => {
- :rule => lambda { |count|
- case count % 100
- when 1 then :one
- when 2 then :two
- when 3,4 then :few
- else :other
- end
- }
- }
- }
- }
-}
match '/user/:display_name/edits' => 'changeset#list'
match '/user/:display_name/edits/feed' => 'changeset#feed', :format => :atom
match '/browse/friends' => 'changeset#list', :friends => true
+ match '/browse/nearby' => 'changeset#list', :nearby => true
match '/browse/changesets' => 'changeset#list'
match '/browse/changesets/feed' => 'changeset#feed', :format => :atom
match '/browse/note/:id' => 'browse#note', :id => /\d+/
match '/browse' => 'changeset#list'
# web site
- match '/' => 'site#index'
+ root :to => 'site#index'
match '/edit' => 'site#edit'
- match '/copyright' => 'site#copyright'
match '/copyright/:copyright_locale' => 'site#copyright'
+ match '/copyright' => 'site#copyright'
match '/history' => 'changeset#list'
match '/history/feed' => 'changeset#feed', :format => :atom
match '/export' => 'site#export'
# diary pages
match '/diary/new' => 'diary_entry#new'
+ match '/diary/friends' => 'diary_entry#list', :friends => true
+ match '/diary/nearby' => 'diary_entry#list', :nearby => true
match '/user/:display_name/diary/rss' => 'diary_entry#rss', :format => :rss
match '/diary/:language/rss' => 'diary_entry#rss', :format => :rss
match '/diary/rss' => 'diary_entry#rss', :format => :rss
+ match '/user/:display_name/diary/comments/:page' => 'diary_entry#comments', :page => /\d+/
+ match '/user/:display_name/diary/comments/' => 'diary_entry#comments'
match '/user/:display_name/diary' => 'diary_entry#list'
match '/diary/:language' => 'diary_entry#list'
match '/diary' => 'diary_entry#list'
+++ /dev/null
-*_structure.sql
Creating database
===================
-OSM server uses a database with the following name:
+OSM server uses a Postgres database with the following name:
openstreetmap
You may create it with your preferable client or run next (linux) command:
-$ mysql -u <uid> -p
-
-(change <uid> with appropriate username of administrative user eg. root )
-
-> create database openstreetmap default character set utf8;
-> exit
-
-Creating user, password, and access rights
-============================================
-
-$ mysql -u <uid> -p
-
-(change <uid> with appropriate username of administrative user eg. root )
-
-> grant all privileges on openstreetmap.* to 'openstreetmap'@'localhost' identified by 'openstreetmap';
-> flush privileges;
-> exit
-
-Creating functions For MySQL
-==============================
-
-Run this command in the db/functions directory:
-
-$ make libmyosm.so
-
-You might also need to install:
-- mysql client development libraries: $ sudo apt-get install libmysqlclient16-dev
-- ruby development libraries: $ sudo apt-get install ruby1.8-dev
-for build to succeed.
-
-Make sure the db/functions directory is on the MySQL server's library
-path and restart the MySQL server.
-
-On Linux the easiest way to do this is to create /etc/ld.so.conf.d/osm.conf, and place the path to the db/functions directory in it and then run the ldconfig command as root.
-
-On OS X: sudo ln -s /path_to_your_osm_install/sites/rails_port/db/functions/libmyosm.so /usr/local/lib/libmyosm.so
-
-Now create the functions as follows:
-
-$ mysql -u <uid> -p openstreetmap
-
-(change <uid> with appropriate username of administrative user eg. root )
-
-> create function tile_for_point returns integer soname 'libmyosm.so';
-> create function maptile_for_point returns integer soname 'libmyosm.so';
-> exit
+$ createdb openstreetmap
Creating functions for PgSQL
==============================
You will need to make sure the database connection is configured in database.yml in config directory
You might start with example configuration provided:
-$ cp config/mysql.example.database.yml config/database.yml
+$ cp config/example.database.yml config/database.yml
LDFLAGS=-shared
endif
-all: libmyosm.so libpgosm.so
+all: libpgosm.so
clean:
$(RM) *.so *.o
-libmyosm.so: quadtile-mysql.o maptile-mysql.o
- cc ${LDFLAGS} -o libmyosm.so quadtile-mysql.o maptile-mysql.o
-
libpgosm.so: quadtile-pgsql.o maptile-pgsql.o xid_to_int4-pgsql.o
cc ${LDFLAGS} -o libpgosm.so quadtile-pgsql.o maptile-pgsql.o xid_to_int4-pgsql.o
-quadtile-mysql.o: quadtile.c ${QTDIR}/quad_tile.h
- cc `mysql_config --include` -I${QTDIR} -fPIC -O3 -DUSE_MYSQL -c -o quadtile-mysql.o quadtile.c
-
quadtile-pgsql.o: quadtile.c ${QTDIR}/quad_tile.h
cc -I `pg_config --includedir` -I `pg_config --includedir-server` -I${QTDIR} -fPIC -O3 -DUSE_PGSQL -c -o quadtile-pgsql.o quadtile.c
-maptile-mysql.o: maptile.c
- cc `mysql_config --include` -fPIC -O3 -DUSE_MYSQL -c -o maptile-mysql.o maptile.c
-
maptile-pgsql.o: maptile.c
cc -I `pg_config --includedir` -I `pg_config --includedir-server` -fPIC -O3 -DUSE_PGSQL -c -o maptile-pgsql.o maptile.c
-#ifndef USE_MYSQL
-#ifndef USE_PGSQL
-#error One of USE_MYSQL or USE_PGSQL must be defined
-#endif
-#endif
-
#include <math.h>
+#include <postgres.h>
+#include <fmgr.h>
-/* The real maptile-for-point functionality is here */
-
-static long long internal_maptile_for_point(double lat, double lon, long long zoom)
+Datum
+maptile_for_point(PG_FUNCTION_ARGS)
{
- double scale = pow(2, zoom);
- double r_per_d = M_PI / 180;
+ double lat = PG_GETARG_INT64(0) / 10000000.0;
+ double lon = PG_GETARG_INT64(1) / 10000000.0;
+ int zoom = PG_GETARG_INT32(2);
+ double scale = pow(2, zoom);
+ double r_per_d = M_PI / 180;
unsigned int x;
unsigned int y;
x = floor((lon + 180.0) * scale / 360.0);
y = floor((1 - log(tan(lat * r_per_d) + 1.0 / cos(lat * r_per_d)) / M_PI) * scale / 2.0);
- return (x << zoom) | y;
-}
-
-#ifdef USE_MYSQL
-#ifdef USE_PGSQL
-#error ONLY one of USE_MYSQL and USE_PGSQL should be defined
-#endif
-
-#include <my_global.h>
-#include <my_sys.h>
-#include <m_string.h>
-#include <mysql.h>
-
-my_bool maptile_for_point_init(UDF_INIT *initid, UDF_ARGS *args, char *message)
-{
- if ( args->arg_count != 3 ||
- args->arg_type[0] != INT_RESULT ||
- args->arg_type[1] != INT_RESULT ||
- args->arg_type[2] != INT_RESULT )
- {
- strcpy( message, "Your maptile_for_point arguments are bogus!" );
- return 1;
- }
-
- return 0;
-}
-
-void maptile_for_point_deinit(UDF_INIT *initid)
-{
- return;
-}
-
-long long maptile_for_point(UDF_INIT *initid, UDF_ARGS *args, char *is_null, char *error)
-{
- double lat = *(long long *)args->args[0] / 10000000.0;
- double lon = *(long long *)args->args[1] / 10000000.0;
- long long zoom = *(long long *)args->args[2];
-
- return internal_maptile_for_point(lat, lon, zoom);
-}
-#endif
-
-#ifdef USE_PGSQL
-#ifdef USE_MYSQL
-#error ONLY one of USE_MYSQL and USE_PGSQL should be defined
-#endif
-
-#include <postgres.h>
-#include <fmgr.h>
-
-Datum
-maptile_for_point(PG_FUNCTION_ARGS)
-{
- double lat = PG_GETARG_INT64(0) / 10000000.0;
- double lon = PG_GETARG_INT64(1) / 10000000.0;
- int zoom = PG_GETARG_INT32(2);
-
- PG_RETURN_INT32(internal_maptile_for_point(lat, lon, zoom));
+ PG_RETURN_INT32((x << zoom) | y);
}
PG_FUNCTION_INFO_V1(maptile_for_point);
#ifdef PG_MODULE_MAGIC
PG_MODULE_MAGIC;
#endif
-
-#endif
-#ifndef USE_MYSQL
-#ifndef USE_PGSQL
-#error One of USE_MYSQL or USE_PGSQL must be defined
-#endif
-#endif
-
#include <math.h>
#include <quad_tile.h>
-
-#ifdef USE_MYSQL
-#ifdef USE_PGSQL
-#error ONLY one of USE_MYSQL and USE_PGSQL should be defined
-#endif
-
-#include <my_global.h>
-#include <my_sys.h>
-#include <m_string.h>
-#include <mysql.h>
-
-my_bool tile_for_point_init(UDF_INIT *initid, UDF_ARGS *args, char *message)
-{
- if ( args->arg_count != 2 ||
- args->arg_type[0] != INT_RESULT ||
- args->arg_type[1] != INT_RESULT )
- {
- strcpy( message, "Your tile_for_point arguments are bogus!" );
- return 1;
- }
-
- return 0;
-}
-
-void tile_for_point_deinit(UDF_INIT *initid)
-{
- return;
-}
-
-long long tile_for_point(UDF_INIT *initid, UDF_ARGS *args, char *is_null, char *error)
-{
- long long lat = *(long long *)args->args[0];
- long long lon = *(long long *)args->args[1];
-
- return xy2tile(lon2x(lon / 10000000.0), lat2y(lat / 10000000.0));
-}
-#endif
-
-#ifdef USE_PGSQL
-#ifdef USE_MYSQL
-#error ONLY one of USE_MYSQL and USE_PGSQL should be defined
-#endif
-
#include <postgres.h>
#include <fmgr.h>
*
* (without all the *s)
*/
-
-#endif
-#ifndef USE_MYSQL
-#ifndef USE_PGSQL
-#error One of USE_MYSQL or USE_PGSQL must be defined
-#endif
-#endif
-
-#ifdef USE_PGSQL
-#ifdef USE_MYSQL
-#error ONLY one of USE_MYSQL and USE_PGSQL should be defined
-#endif
-
#include <postgres.h>
#include <fmgr.h>
*
* (without all the *s)
*/
-
-#endif
-require 'lib/migrate'
+require 'migrate'
class CreateOsmDb < ActiveRecord::Migration
def self.up
-require 'lib/migrate'
+require 'migrate'
class CleanupOsmDb < ActiveRecord::Migration
def self.up
-require 'lib/migrate'
+require 'migrate'
class SqlSessionStoreSetup < ActiveRecord::Migration
def self.up
-require 'lib/migrate'
+require 'migrate'
class UserEnhancements < ActiveRecord::Migration
def self.up
-require 'lib/migrate'
+require 'migrate'
class TileTracepoints < ActiveRecord::Migration
def self.up
-require 'lib/migrate'
+require 'migrate'
class TileNodes < ActiveRecord::Migration
def self.upgrade_table(from_table, to_table, model)
-require 'lib/migrate'
+require 'migrate'
class AddRelations < ActiveRecord::Migration
def self.up
-require 'lib/migrate'
+require 'migrate'
class RemoveSegments < ActiveRecord::Migration
def self.up
-require 'lib/migrate'
+require 'migrate'
class DiaryComments < ActiveRecord::Migration
def self.up
-require 'lib/migrate'
+require 'migrate'
class CreateAcls < ActiveRecord::Migration
def self.up
-require 'lib/migrate'
+require 'migrate'
class PopulateNodeTagsAndRemove < ActiveRecord::Migration
def self.up
-require 'lib/migrate'
+require 'migrate'
class MoveToInnodb < ActiveRecord::Migration
@@conv_tables = ['nodes', 'ways', 'way_tags', 'way_nodes',
-require 'lib/migrate'
+require 'migrate'
class KeyConstraints < ActiveRecord::Migration
def self.up
-require 'lib/migrate'
+require 'migrate'
class AddChangesets < ActiveRecord::Migration
@@conv_user_tables = ['current_nodes',
-require 'lib/migrate'
+require 'migrate'
class OrderRelationMembers < ActiveRecord::Migration
def self.up
-require 'lib/migrate'
+require 'migrate'
class AddEndTimeToChangesets < ActiveRecord::Migration
def self.up
-require 'lib/migrate'
+require 'migrate'
class AddUserForeignKeys < ActiveRecord::Migration
def self.up
-require 'lib/migrate'
+require 'migrate'
class AddForeignKeys < ActiveRecord::Migration
def self.up
-require 'lib/migrate'
+require 'migrate'
require 'rexml/document'
class CreateCountries < ActiveRecord::Migration
maxlon = ele.get_text("bBoxEast").to_s
maxlat = ele.get_text("bBoxNorth").to_s
- Country.create(:code => code,
- :min_lat => minlat.to_f, :max_lat => maxlat.to_f,
- :min_lon => minlon.to_f, :max_lon => maxlon.to_f)
+ Country.create({
+ :code => code,
+ :min_lat => minlat.to_f, :max_lat => maxlat.to_f,
+ :min_lon => minlon.to_f, :max_lon => maxlon.to_f
+ }, :without_protection => true)
end
end
end
-require 'lib/migrate'
+require 'migrate'
class CreateLanguages < ActiveRecord::Migration
def self.up
-require 'lib/migrate'
+require 'migrate'
class ChangeUserLocale < ActiveRecord::Migration
def self.up
-require 'lib/migrate'
+require 'migrate'
class AddMoreControlsToGpxFiles < ActiveRecord::Migration
def self.up
-require 'lib/migrate'
+require 'migrate'
class AddForeignKeysToOauthTables < ActiveRecord::Migration
def self.up
-require 'lib/migrate'
+require 'migrate'
class CreateUserRoles < ActiveRecord::Migration
def self.up
-require 'lib/migrate'
+require 'migrate'
class CreateUserBlocks < ActiveRecord::Migration
def self.up
-require 'lib/migrate'
+require 'migrate'
class AlterUserRolesAndBlocks < ActiveRecord::Migration
def self.up
-require 'lib/migrate'
+require 'migrate'
class AddStatusToUser < ActiveRecord::Migration
def self.up
-require 'lib/migrate'
+require 'migrate'
class AddLowercaseUserIndexes < ActiveRecord::Migration
def up
--- /dev/null
+class SwitchToPaperclip < ActiveRecord::Migration
+ def up
+ rename_column :users, :image, :image_file_name
+ end
+
+ def down
+ rename_column :users, :image_file_name, :image
+ end
+end
--- /dev/null
+require "ipaddr"
+
+class IPAddr
+ def address
+ _to_string(@addr)
+ end
+
+ def netmask
+ _to_string(@mask_addr)
+ end
+end
+
+class MergeAclAddressAndMask < ActiveRecord::Migration
+ def up
+ Acl.find_each do |acl|
+ address = IPAddr.new(acl.address)
+ netmask = IPAddr.new(acl.netmask)
+ prefix = 0
+
+ while netmask != "0.0.0.0"
+ netmask = netmask << 1
+ prefix = prefix + 1
+ end
+
+ acl.address = "#{address.mask(prefix)}/#{prefix}"
+ acl.save!
+ end
+
+ remove_column :acls, :netmask
+ end
+
+ def down
+ add_column :acls, :netmask, :inet
+
+ Acl.find_each do |acl|
+ address = IPAddr.new(acl.address)
+
+ acl.address = address.address
+ acl.netmask = address.netmask
+ acl.save!
+ end
+
+ change_column :acls, :netmask, :inet, :null => false
+ end
+end
--- /dev/null
+class AddDomainToAcl < ActiveRecord::Migration
+ def up
+ add_column :acls, :domain, :string
+ change_column :acls, :address, :inet, :null => true
+ end
+
+ def down
+ change_column :acls, :address, :inet, :null => false
+ remove_column :acls, :domain
+ end
+end
--- /dev/null
+class AddUserImageFingerprint < ActiveRecord::Migration
+ def up
+ add_column :users, :image_fingerprint, :string, :null => true
+
+ User.where("image_file_name IS NOT NULL").find_each do |user|
+ image = user.image
+
+ user.image_fingerprint = image.generate_fingerprint(image)
+ user.save!
+ end
+ end
+
+ def down
+ remove_column :users, :image_fingerprint
+ end
+end
--- /dev/null
+--
+-- PostgreSQL database dump
+--
+
+SET statement_timeout = 0;
+SET client_encoding = 'UTF8';
+SET standard_conforming_strings = on;
+SET check_function_bodies = false;
+SET client_min_messages = warning;
+
+--
+-- Name: plpgsql; Type: EXTENSION; Schema: -; Owner: -
+--
+
+CREATE EXTENSION IF NOT EXISTS plpgsql WITH SCHEMA pg_catalog;
+
+
+--
+-- Name: EXTENSION plpgsql; Type: COMMENT; Schema: -; Owner: -
+--
+
+COMMENT ON EXTENSION plpgsql IS 'PL/pgSQL procedural language';
+
+
+--
+-- Name: btree_gist; Type: EXTENSION; Schema: -; Owner: -
+--
+
+CREATE EXTENSION IF NOT EXISTS btree_gist WITH SCHEMA public;
+
+
+--
+-- Name: EXTENSION btree_gist; Type: COMMENT; Schema: -; Owner: -
+--
+
+COMMENT ON EXTENSION btree_gist IS 'support for indexing common datatypes in GiST';
+
+
+SET search_path = public, pg_catalog;
+
+--
+-- Name: format_enum; Type: TYPE; Schema: public; Owner: -
+--
+
+CREATE TYPE format_enum AS ENUM (
+ 'html',
+ 'markdown'
+);
+
+
+--
+-- Name: gpx_visibility_enum; Type: TYPE; Schema: public; Owner: -
+--
+
+CREATE TYPE gpx_visibility_enum AS ENUM (
+ 'private',
+ 'public',
+ 'trackable',
+ 'identifiable'
+);
+
+
+--
+-- Name: nwr_enum; Type: TYPE; Schema: public; Owner: -
+--
+
+CREATE TYPE nwr_enum AS ENUM (
+ 'Node',
+ 'Way',
+ 'Relation'
+);
+
+
+--
+-- Name: user_role_enum; Type: TYPE; Schema: public; Owner: -
+--
+
+CREATE TYPE user_role_enum AS ENUM (
+ 'administrator',
+ 'moderator'
+);
+
+
+--
+-- Name: user_status_enum; Type: TYPE; Schema: public; Owner: -
+--
+
+CREATE TYPE user_status_enum AS ENUM (
+ 'pending',
+ 'active',
+ 'confirmed',
+ 'suspended',
+ 'deleted'
+);
+
+
+--
+-- Name: maptile_for_point(bigint, bigint, integer); Type: FUNCTION; Schema: public; Owner: -
+--
+
+CREATE FUNCTION maptile_for_point(bigint, bigint, integer) RETURNS integer
+ LANGUAGE c STRICT
+ AS '/srv/www/master.osm.compton.nu/db/functions/libpgosm.so', 'maptile_for_point';
+
+
+--
+-- Name: tile_for_point(integer, integer); Type: FUNCTION; Schema: public; Owner: -
+--
+
+CREATE FUNCTION tile_for_point(integer, integer) RETURNS bigint
+ LANGUAGE c STRICT
+ AS '/srv/www/master.osm.compton.nu/db/functions/libpgosm.so', 'tile_for_point';
+
+
+--
+-- Name: xid_to_int4(xid); Type: FUNCTION; Schema: public; Owner: -
+--
+
+CREATE FUNCTION xid_to_int4(xid) RETURNS integer
+ LANGUAGE c IMMUTABLE STRICT
+ AS '/srv/www/master.osm.compton.nu/db/functions/libpgosm.so', 'xid_to_int4';
+
+
+SET default_tablespace = '';
+
+SET default_with_oids = false;
+
+--
+-- Name: acls; Type: TABLE; Schema: public; Owner: -; Tablespace:
+--
+
+CREATE TABLE acls (
+ id integer NOT NULL,
+ address inet,
+ k character varying(255) NOT NULL,
+ v character varying(255),
+ domain character varying(255)
+);
+
+
+--
+-- Name: acls_id_seq; Type: SEQUENCE; Schema: public; Owner: -
+--
+
+CREATE SEQUENCE acls_id_seq
+ START WITH 1
+ INCREMENT BY 1
+ NO MINVALUE
+ NO MAXVALUE
+ CACHE 1;
+
+
+--
+-- Name: acls_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: -
+--
+
+ALTER SEQUENCE acls_id_seq OWNED BY acls.id;
+
+
+--
+-- Name: changeset_tags; Type: TABLE; Schema: public; Owner: -; Tablespace:
+--
+
+CREATE TABLE changeset_tags (
+ changeset_id bigint NOT NULL,
+ k character varying(255) DEFAULT ''::character varying NOT NULL,
+ v character varying(255) DEFAULT ''::character varying NOT NULL
+);
+
+
+--
+-- Name: changesets; Type: TABLE; Schema: public; Owner: -; Tablespace:
+--
+
+CREATE TABLE changesets (
+ id bigint NOT NULL,
+ user_id bigint NOT NULL,
+ created_at timestamp without time zone NOT NULL,
+ min_lat integer,
+ max_lat integer,
+ min_lon integer,
+ max_lon integer,
+ closed_at timestamp without time zone NOT NULL,
+ num_changes integer DEFAULT 0 NOT NULL
+);
+
+
+--
+-- Name: changesets_id_seq; Type: SEQUENCE; Schema: public; Owner: -
+--
+
+CREATE SEQUENCE changesets_id_seq
+ START WITH 1
+ INCREMENT BY 1
+ NO MINVALUE
+ NO MAXVALUE
+ CACHE 1;
+
+
+--
+-- Name: changesets_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: -
+--
+
+ALTER SEQUENCE changesets_id_seq OWNED BY changesets.id;
+
+
+--
+-- Name: client_applications; Type: TABLE; Schema: public; Owner: -; Tablespace:
+--
+
+CREATE TABLE client_applications (
+ id integer NOT NULL,
+ name character varying(255),
+ url character varying(255),
+ support_url character varying(255),
+ callback_url character varying(255),
+ key character varying(50),
+ secret character varying(50),
+ user_id integer,
+ created_at timestamp without time zone,
+ updated_at timestamp without time zone,
+ allow_read_prefs boolean DEFAULT false NOT NULL,
+ allow_write_prefs boolean DEFAULT false NOT NULL,
+ allow_write_diary boolean DEFAULT false NOT NULL,
+ allow_write_api boolean DEFAULT false NOT NULL,
+ allow_read_gpx boolean DEFAULT false NOT NULL,
+ allow_write_gpx boolean DEFAULT false NOT NULL
+);
+
+
+--
+-- Name: client_applications_id_seq; Type: SEQUENCE; Schema: public; Owner: -
+--
+
+CREATE SEQUENCE client_applications_id_seq
+ START WITH 1
+ INCREMENT BY 1
+ NO MINVALUE
+ NO MAXVALUE
+ CACHE 1;
+
+
+--
+-- Name: client_applications_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: -
+--
+
+ALTER SEQUENCE client_applications_id_seq OWNED BY client_applications.id;
+
+
+--
+-- Name: countries; Type: TABLE; Schema: public; Owner: -; Tablespace:
+--
+
+CREATE TABLE countries (
+ id integer NOT NULL,
+ code character varying(2) NOT NULL,
+ min_lat double precision NOT NULL,
+ max_lat double precision NOT NULL,
+ min_lon double precision NOT NULL,
+ max_lon double precision NOT NULL
+);
+
+
+--
+-- Name: countries_id_seq; Type: SEQUENCE; Schema: public; Owner: -
+--
+
+CREATE SEQUENCE countries_id_seq
+ START WITH 1
+ INCREMENT BY 1
+ NO MINVALUE
+ NO MAXVALUE
+ CACHE 1;
+
+
+--
+-- Name: countries_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: -
+--
+
+ALTER SEQUENCE countries_id_seq OWNED BY countries.id;
+
+
+--
+-- Name: current_node_tags; Type: TABLE; Schema: public; Owner: -; Tablespace:
+--
+
+CREATE TABLE current_node_tags (
+ node_id bigint NOT NULL,
+ k character varying(255) DEFAULT ''::character varying NOT NULL,
+ v character varying(255) DEFAULT ''::character varying NOT NULL
+);
+
+
+--
+-- Name: current_nodes; Type: TABLE; Schema: public; Owner: -; Tablespace:
+--
+
+CREATE TABLE current_nodes (
+ id bigint NOT NULL,
+ latitude integer NOT NULL,
+ longitude integer NOT NULL,
+ changeset_id bigint NOT NULL,
+ visible boolean NOT NULL,
+ "timestamp" timestamp without time zone NOT NULL,
+ tile bigint NOT NULL,
+ version bigint NOT NULL
+);
+
+
+--
+-- Name: current_nodes_id_seq; Type: SEQUENCE; Schema: public; Owner: -
+--
+
+CREATE SEQUENCE current_nodes_id_seq
+ START WITH 1
+ INCREMENT BY 1
+ NO MINVALUE
+ NO MAXVALUE
+ CACHE 1;
+
+
+--
+-- Name: current_nodes_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: -
+--
+
+ALTER SEQUENCE current_nodes_id_seq OWNED BY current_nodes.id;
+
+
+--
+-- Name: current_relation_members; Type: TABLE; Schema: public; Owner: -; Tablespace:
+--
+
+CREATE TABLE current_relation_members (
+ relation_id bigint NOT NULL,
+ member_type nwr_enum NOT NULL,
+ member_id bigint NOT NULL,
+ member_role character varying(255) NOT NULL,
+ sequence_id integer DEFAULT 0 NOT NULL
+);
+
+
+--
+-- Name: current_relation_tags; Type: TABLE; Schema: public; Owner: -; Tablespace:
+--
+
+CREATE TABLE current_relation_tags (
+ relation_id bigint NOT NULL,
+ k character varying(255) DEFAULT ''::character varying NOT NULL,
+ v character varying(255) DEFAULT ''::character varying NOT NULL
+);
+
+
+--
+-- Name: current_relations; Type: TABLE; Schema: public; Owner: -; Tablespace:
+--
+
+CREATE TABLE current_relations (
+ id bigint NOT NULL,
+ changeset_id bigint NOT NULL,
+ "timestamp" timestamp without time zone NOT NULL,
+ visible boolean NOT NULL,
+ version bigint NOT NULL
+);
+
+
+--
+-- Name: current_relations_id_seq; Type: SEQUENCE; Schema: public; Owner: -
+--
+
+CREATE SEQUENCE current_relations_id_seq
+ START WITH 1
+ INCREMENT BY 1
+ NO MINVALUE
+ NO MAXVALUE
+ CACHE 1;
+
+
+--
+-- Name: current_relations_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: -
+--
+
+ALTER SEQUENCE current_relations_id_seq OWNED BY current_relations.id;
+
+
+--
+-- Name: current_way_nodes; Type: TABLE; Schema: public; Owner: -; Tablespace:
+--
+
+CREATE TABLE current_way_nodes (
+ way_id bigint NOT NULL,
+ node_id bigint NOT NULL,
+ sequence_id bigint NOT NULL
+);
+
+
+--
+-- Name: current_way_tags; Type: TABLE; Schema: public; Owner: -; Tablespace:
+--
+
+CREATE TABLE current_way_tags (
+ way_id bigint NOT NULL,
+ k character varying(255) DEFAULT ''::character varying NOT NULL,
+ v character varying(255) DEFAULT ''::character varying NOT NULL
+);
+
+
+--
+-- Name: current_ways; Type: TABLE; Schema: public; Owner: -; Tablespace:
+--
+
+CREATE TABLE current_ways (
+ id bigint NOT NULL,
+ changeset_id bigint NOT NULL,
+ "timestamp" timestamp without time zone NOT NULL,
+ visible boolean NOT NULL,
+ version bigint NOT NULL
+);
+
+
+--
+-- Name: current_ways_id_seq; Type: SEQUENCE; Schema: public; Owner: -
+--
+
+CREATE SEQUENCE current_ways_id_seq
+ START WITH 1
+ INCREMENT BY 1
+ NO MINVALUE
+ NO MAXVALUE
+ CACHE 1;
+
+
+--
+-- Name: current_ways_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: -
+--
+
+ALTER SEQUENCE current_ways_id_seq OWNED BY current_ways.id;
+
+
+--
+-- Name: diary_comments; Type: TABLE; Schema: public; Owner: -; Tablespace:
+--
+
+CREATE TABLE diary_comments (
+ id bigint NOT NULL,
+ diary_entry_id bigint NOT NULL,
+ user_id bigint NOT NULL,
+ body text NOT NULL,
+ created_at timestamp without time zone NOT NULL,
+ updated_at timestamp without time zone NOT NULL,
+ visible boolean DEFAULT true NOT NULL
+);
+
+
+--
+-- Name: diary_comments_id_seq; Type: SEQUENCE; Schema: public; Owner: -
+--
+
+CREATE SEQUENCE diary_comments_id_seq
+ START WITH 1
+ INCREMENT BY 1
+ NO MINVALUE
+ NO MAXVALUE
+ CACHE 1;
+
+
+--
+-- Name: diary_comments_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: -
+--
+
+ALTER SEQUENCE diary_comments_id_seq OWNED BY diary_comments.id;
+
+
+--
+-- Name: diary_entries; Type: TABLE; Schema: public; Owner: -; Tablespace:
+--
+
+CREATE TABLE diary_entries (
+ id bigint NOT NULL,
+ user_id bigint NOT NULL,
+ title character varying(255) NOT NULL,
+ body text NOT NULL,
+ created_at timestamp without time zone NOT NULL,
+ updated_at timestamp without time zone NOT NULL,
+ latitude double precision,
+ longitude double precision,
+ language_code character varying(255) DEFAULT 'en'::character varying NOT NULL,
+ visible boolean DEFAULT true NOT NULL
+);
+
+
+--
+-- Name: diary_entries_id_seq; Type: SEQUENCE; Schema: public; Owner: -
+--
+
+CREATE SEQUENCE diary_entries_id_seq
+ START WITH 1
+ INCREMENT BY 1
+ NO MINVALUE
+ NO MAXVALUE
+ CACHE 1;
+
+
+--
+-- Name: diary_entries_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: -
+--
+
+ALTER SEQUENCE diary_entries_id_seq OWNED BY diary_entries.id;
+
+
+--
+-- Name: friends; Type: TABLE; Schema: public; Owner: -; Tablespace:
+--
+
+CREATE TABLE friends (
+ id bigint NOT NULL,
+ user_id bigint NOT NULL,
+ friend_user_id bigint NOT NULL
+);
+
+
+--
+-- Name: friends_id_seq; Type: SEQUENCE; Schema: public; Owner: -
+--
+
+CREATE SEQUENCE friends_id_seq
+ START WITH 1
+ INCREMENT BY 1
+ NO MINVALUE
+ NO MAXVALUE
+ CACHE 1;
+
+
+--
+-- Name: friends_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: -
+--
+
+ALTER SEQUENCE friends_id_seq OWNED BY friends.id;
+
+
+--
+-- Name: gps_points; Type: TABLE; Schema: public; Owner: -; Tablespace:
+--
+
+CREATE TABLE gps_points (
+ altitude double precision,
+ trackid integer NOT NULL,
+ latitude integer NOT NULL,
+ longitude integer NOT NULL,
+ gpx_id bigint NOT NULL,
+ "timestamp" timestamp without time zone,
+ tile bigint
+);
+
+
+--
+-- Name: gpx_file_tags; Type: TABLE; Schema: public; Owner: -; Tablespace:
+--
+
+CREATE TABLE gpx_file_tags (
+ gpx_id bigint DEFAULT 0 NOT NULL,
+ tag character varying(255) NOT NULL,
+ id bigint NOT NULL
+);
+
+
+--
+-- Name: gpx_file_tags_id_seq; Type: SEQUENCE; Schema: public; Owner: -
+--
+
+CREATE SEQUENCE gpx_file_tags_id_seq
+ START WITH 1
+ INCREMENT BY 1
+ NO MINVALUE
+ NO MAXVALUE
+ CACHE 1;
+
+
+--
+-- Name: gpx_file_tags_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: -
+--
+
+ALTER SEQUENCE gpx_file_tags_id_seq OWNED BY gpx_file_tags.id;
+
+
+--
+-- Name: gpx_files; Type: TABLE; Schema: public; Owner: -; Tablespace:
+--
+
+CREATE TABLE gpx_files (
+ id bigint NOT NULL,
+ user_id bigint NOT NULL,
+ visible boolean DEFAULT true NOT NULL,
+ name character varying(255) DEFAULT ''::character varying NOT NULL,
+ size bigint,
+ latitude double precision,
+ longitude double precision,
+ "timestamp" timestamp without time zone NOT NULL,
+ description character varying(255) DEFAULT ''::character varying NOT NULL,
+ inserted boolean NOT NULL,
+ visibility gpx_visibility_enum DEFAULT 'public'::gpx_visibility_enum NOT NULL
+);
+
+
+--
+-- Name: gpx_files_id_seq; Type: SEQUENCE; Schema: public; Owner: -
+--
+
+CREATE SEQUENCE gpx_files_id_seq
+ START WITH 1
+ INCREMENT BY 1
+ NO MINVALUE
+ NO MAXVALUE
+ CACHE 1;
+
+
+--
+-- Name: gpx_files_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: -
+--
+
+ALTER SEQUENCE gpx_files_id_seq OWNED BY gpx_files.id;
+
+
+--
+-- Name: languages; Type: TABLE; Schema: public; Owner: -; Tablespace:
+--
+
+CREATE TABLE languages (
+ code character varying(255) NOT NULL,
+ english_name character varying(255) NOT NULL,
+ native_name character varying(255)
+);
+
+
+--
+-- Name: messages; Type: TABLE; Schema: public; Owner: -; Tablespace:
+--
+
+CREATE TABLE messages (
+ id bigint NOT NULL,
+ from_user_id bigint NOT NULL,
+ title character varying(255) NOT NULL,
+ body text NOT NULL,
+ sent_on timestamp without time zone NOT NULL,
+ message_read boolean DEFAULT false NOT NULL,
+ to_user_id bigint NOT NULL,
+ to_user_visible boolean DEFAULT true NOT NULL,
+ from_user_visible boolean DEFAULT true NOT NULL
+);
+
+
+--
+-- Name: messages_id_seq; Type: SEQUENCE; Schema: public; Owner: -
+--
+
+CREATE SEQUENCE messages_id_seq
+ START WITH 1
+ INCREMENT BY 1
+ NO MINVALUE
+ NO MAXVALUE
+ CACHE 1;
+
+
+--
+-- Name: messages_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: -
+--
+
+ALTER SEQUENCE messages_id_seq OWNED BY messages.id;
+
+
+--
+-- Name: node_tags; Type: TABLE; Schema: public; Owner: -; Tablespace:
+--
+
+CREATE TABLE node_tags (
+ node_id bigint NOT NULL,
+ version bigint NOT NULL,
+ k character varying(255) DEFAULT ''::character varying NOT NULL,
+ v character varying(255) DEFAULT ''::character varying NOT NULL
+);
+
+
+--
+-- Name: nodes; Type: TABLE; Schema: public; Owner: -; Tablespace:
+--
+
+CREATE TABLE nodes (
+ node_id bigint NOT NULL,
+ latitude integer NOT NULL,
+ longitude integer NOT NULL,
+ changeset_id bigint NOT NULL,
+ visible boolean NOT NULL,
+ "timestamp" timestamp without time zone NOT NULL,
+ tile bigint NOT NULL,
+ version bigint NOT NULL
+);
+
+
+--
+-- Name: oauth_nonces; Type: TABLE; Schema: public; Owner: -; Tablespace:
+--
+
+CREATE TABLE oauth_nonces (
+ id integer NOT NULL,
+ nonce character varying(255),
+ "timestamp" integer,
+ created_at timestamp without time zone,
+ updated_at timestamp without time zone
+);
+
+
+--
+-- Name: oauth_nonces_id_seq; Type: SEQUENCE; Schema: public; Owner: -
+--
+
+CREATE SEQUENCE oauth_nonces_id_seq
+ START WITH 1
+ INCREMENT BY 1
+ NO MINVALUE
+ NO MAXVALUE
+ CACHE 1;
+
+
+--
+-- Name: oauth_nonces_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: -
+--
+
+ALTER SEQUENCE oauth_nonces_id_seq OWNED BY oauth_nonces.id;
+
+
+--
+-- Name: oauth_tokens; Type: TABLE; Schema: public; Owner: -; Tablespace:
+--
+
+CREATE TABLE oauth_tokens (
+ id integer NOT NULL,
+ user_id integer,
+ type character varying(20),
+ client_application_id integer,
+ token character varying(50),
+ secret character varying(50),
+ authorized_at timestamp without time zone,
+ invalidated_at timestamp without time zone,
+ created_at timestamp without time zone,
+ updated_at timestamp without time zone,
+ allow_read_prefs boolean DEFAULT false NOT NULL,
+ allow_write_prefs boolean DEFAULT false NOT NULL,
+ allow_write_diary boolean DEFAULT false NOT NULL,
+ allow_write_api boolean DEFAULT false NOT NULL,
+ allow_read_gpx boolean DEFAULT false NOT NULL,
+ allow_write_gpx boolean DEFAULT false NOT NULL,
+ callback_url character varying(255),
+ verifier character varying(20),
+ scope character varying(255),
+ valid_to timestamp without time zone
+);
+
+
+--
+-- Name: oauth_tokens_id_seq; Type: SEQUENCE; Schema: public; Owner: -
+--
+
+CREATE SEQUENCE oauth_tokens_id_seq
+ START WITH 1
+ INCREMENT BY 1
+ NO MINVALUE
+ NO MAXVALUE
+ CACHE 1;
+
+
+--
+-- Name: oauth_tokens_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: -
+--
+
+ALTER SEQUENCE oauth_tokens_id_seq OWNED BY oauth_tokens.id;
+
+
+--
+-- Name: relation_members; Type: TABLE; Schema: public; Owner: -; Tablespace:
+--
+
+CREATE TABLE relation_members (
+ relation_id bigint DEFAULT 0 NOT NULL,
+ member_type nwr_enum NOT NULL,
+ member_id bigint NOT NULL,
+ member_role character varying(255) NOT NULL,
+ version bigint DEFAULT 0 NOT NULL,
+ sequence_id integer DEFAULT 0 NOT NULL
+);
+
+
+--
+-- Name: relation_tags; Type: TABLE; Schema: public; Owner: -; Tablespace:
+--
+
+CREATE TABLE relation_tags (
+ relation_id bigint DEFAULT 0 NOT NULL,
+ k character varying(255) DEFAULT ''::character varying NOT NULL,
+ v character varying(255) DEFAULT ''::character varying NOT NULL,
+ version bigint NOT NULL
+);
+
+
+--
+-- Name: relations; Type: TABLE; Schema: public; Owner: -; Tablespace:
+--
+
+CREATE TABLE relations (
+ relation_id bigint DEFAULT 0 NOT NULL,
+ changeset_id bigint NOT NULL,
+ "timestamp" timestamp without time zone NOT NULL,
+ version bigint NOT NULL,
+ visible boolean DEFAULT true NOT NULL
+);
+
+
+--
+-- Name: schema_migrations; Type: TABLE; Schema: public; Owner: -; Tablespace:
+--
+
+CREATE TABLE schema_migrations (
+ version character varying(255) NOT NULL
+);
+
+
+--
+-- Name: sessions; Type: TABLE; Schema: public; Owner: -; Tablespace:
+--
+
+CREATE TABLE sessions (
+ id integer NOT NULL,
+ session_id character varying(255),
+ data text,
+ created_at timestamp without time zone,
+ updated_at timestamp without time zone
+);
+
+
+--
+-- Name: sessions_id_seq; Type: SEQUENCE; Schema: public; Owner: -
+--
+
+CREATE SEQUENCE sessions_id_seq
+ START WITH 1
+ INCREMENT BY 1
+ NO MINVALUE
+ NO MAXVALUE
+ CACHE 1;
+
+
+--
+-- Name: sessions_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: -
+--
+
+ALTER SEQUENCE sessions_id_seq OWNED BY sessions.id;
+
+
+--
+-- Name: user_blocks; Type: TABLE; Schema: public; Owner: -; Tablespace:
+--
+
+CREATE TABLE user_blocks (
+ id integer NOT NULL,
+ user_id bigint NOT NULL,
+ creator_id bigint NOT NULL,
+ reason text NOT NULL,
+ ends_at timestamp without time zone NOT NULL,
+ needs_view boolean DEFAULT false NOT NULL,
+ revoker_id bigint,
+ created_at timestamp without time zone,
+ updated_at timestamp without time zone
+);
+
+
+--
+-- Name: user_blocks_id_seq; Type: SEQUENCE; Schema: public; Owner: -
+--
+
+CREATE SEQUENCE user_blocks_id_seq
+ START WITH 1
+ INCREMENT BY 1
+ NO MINVALUE
+ NO MAXVALUE
+ CACHE 1;
+
+
+--
+-- Name: user_blocks_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: -
+--
+
+ALTER SEQUENCE user_blocks_id_seq OWNED BY user_blocks.id;
+
+
+--
+-- Name: user_preferences; Type: TABLE; Schema: public; Owner: -; Tablespace:
+--
+
+CREATE TABLE user_preferences (
+ user_id bigint NOT NULL,
+ k character varying(255) NOT NULL,
+ v character varying(255) NOT NULL
+);
+
+
+--
+-- Name: user_roles; Type: TABLE; Schema: public; Owner: -; Tablespace:
+--
+
+CREATE TABLE user_roles (
+ id integer NOT NULL,
+ user_id bigint NOT NULL,
+ created_at timestamp without time zone,
+ updated_at timestamp without time zone,
+ role user_role_enum NOT NULL,
+ granter_id bigint NOT NULL
+);
+
+
+--
+-- Name: user_roles_id_seq; Type: SEQUENCE; Schema: public; Owner: -
+--
+
+CREATE SEQUENCE user_roles_id_seq
+ START WITH 1
+ INCREMENT BY 1
+ NO MINVALUE
+ NO MAXVALUE
+ CACHE 1;
+
+
+--
+-- Name: user_roles_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: -
+--
+
+ALTER SEQUENCE user_roles_id_seq OWNED BY user_roles.id;
+
+
+--
+-- Name: user_tokens; Type: TABLE; Schema: public; Owner: -; Tablespace:
+--
+
+CREATE TABLE user_tokens (
+ id bigint NOT NULL,
+ user_id bigint NOT NULL,
+ token character varying(255) NOT NULL,
+ expiry timestamp without time zone NOT NULL,
+ referer text
+);
+
+
+--
+-- Name: user_tokens_id_seq; Type: SEQUENCE; Schema: public; Owner: -
+--
+
+CREATE SEQUENCE user_tokens_id_seq
+ START WITH 1
+ INCREMENT BY 1
+ NO MINVALUE
+ NO MAXVALUE
+ CACHE 1;
+
+
+--
+-- Name: user_tokens_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: -
+--
+
+ALTER SEQUENCE user_tokens_id_seq OWNED BY user_tokens.id;
+
+
+--
+-- Name: users; Type: TABLE; Schema: public; Owner: -; Tablespace:
+--
+
+CREATE TABLE users (
+ email character varying(255) NOT NULL,
+ id bigint NOT NULL,
+ pass_crypt character varying(255) NOT NULL,
+ creation_time timestamp without time zone NOT NULL,
+ display_name character varying(255) DEFAULT ''::character varying NOT NULL,
+ data_public boolean DEFAULT false NOT NULL,
+ description text DEFAULT ''::text NOT NULL,
+ home_lat double precision,
+ home_lon double precision,
+ home_zoom smallint DEFAULT 3,
+ nearby integer DEFAULT 50,
+ pass_salt character varying(255),
+ image_file_name text,
+ email_valid boolean DEFAULT false NOT NULL,
+ new_email character varying(255),
+ creation_ip character varying(255),
+ languages character varying(255),
+ status user_status_enum DEFAULT 'pending'::user_status_enum NOT NULL,
+ terms_agreed timestamp without time zone,
+ consider_pd boolean DEFAULT false NOT NULL,
+ preferred_editor character varying(255),
+ terms_seen boolean DEFAULT false NOT NULL,
+ openid_url character varying(255),
+ image_fingerprint character varying(255)
+);
+
+
+--
+-- Name: users_id_seq; Type: SEQUENCE; Schema: public; Owner: -
+--
+
+CREATE SEQUENCE users_id_seq
+ START WITH 1
+ INCREMENT BY 1
+ NO MINVALUE
+ NO MAXVALUE
+ CACHE 1;
+
+
+--
+-- Name: users_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: -
+--
+
+ALTER SEQUENCE users_id_seq OWNED BY users.id;
+
+
+--
+-- Name: way_nodes; Type: TABLE; Schema: public; Owner: -; Tablespace:
+--
+
+CREATE TABLE way_nodes (
+ way_id bigint NOT NULL,
+ node_id bigint NOT NULL,
+ version bigint NOT NULL,
+ sequence_id bigint NOT NULL
+);
+
+
+--
+-- Name: way_tags; Type: TABLE; Schema: public; Owner: -; Tablespace:
+--
+
+CREATE TABLE way_tags (
+ way_id bigint DEFAULT 0 NOT NULL,
+ k character varying(255) NOT NULL,
+ v character varying(255) NOT NULL,
+ version bigint NOT NULL
+);
+
+
+--
+-- Name: ways; Type: TABLE; Schema: public; Owner: -; Tablespace:
+--
+
+CREATE TABLE ways (
+ way_id bigint DEFAULT 0 NOT NULL,
+ changeset_id bigint NOT NULL,
+ "timestamp" timestamp without time zone NOT NULL,
+ version bigint NOT NULL,
+ visible boolean DEFAULT true NOT NULL
+);
+
+
+--
+-- Name: id; Type: DEFAULT; Schema: public; Owner: -
+--
+
+ALTER TABLE acls ALTER COLUMN id SET DEFAULT nextval('acls_id_seq'::regclass);
+
+
+--
+-- Name: id; Type: DEFAULT; Schema: public; Owner: -
+--
+
+ALTER TABLE changesets ALTER COLUMN id SET DEFAULT nextval('changesets_id_seq'::regclass);
+
+
+--
+-- Name: id; Type: DEFAULT; Schema: public; Owner: -
+--
+
+ALTER TABLE client_applications ALTER COLUMN id SET DEFAULT nextval('client_applications_id_seq'::regclass);
+
+
+--
+-- Name: id; Type: DEFAULT; Schema: public; Owner: -
+--
+
+ALTER TABLE countries ALTER COLUMN id SET DEFAULT nextval('countries_id_seq'::regclass);
+
+
+--
+-- Name: id; Type: DEFAULT; Schema: public; Owner: -
+--
+
+ALTER TABLE current_nodes ALTER COLUMN id SET DEFAULT nextval('current_nodes_id_seq'::regclass);
+
+
+--
+-- Name: id; Type: DEFAULT; Schema: public; Owner: -
+--
+
+ALTER TABLE current_relations ALTER COLUMN id SET DEFAULT nextval('current_relations_id_seq'::regclass);
+
+
+--
+-- Name: id; Type: DEFAULT; Schema: public; Owner: -
+--
+
+ALTER TABLE current_ways ALTER COLUMN id SET DEFAULT nextval('current_ways_id_seq'::regclass);
+
+
+--
+-- Name: id; Type: DEFAULT; Schema: public; Owner: -
+--
+
+ALTER TABLE diary_comments ALTER COLUMN id SET DEFAULT nextval('diary_comments_id_seq'::regclass);
+
+
+--
+-- Name: id; Type: DEFAULT; Schema: public; Owner: -
+--
+
+ALTER TABLE diary_entries ALTER COLUMN id SET DEFAULT nextval('diary_entries_id_seq'::regclass);
+
+
+--
+-- Name: id; Type: DEFAULT; Schema: public; Owner: -
+--
+
+ALTER TABLE friends ALTER COLUMN id SET DEFAULT nextval('friends_id_seq'::regclass);
+
+
+--
+-- Name: id; Type: DEFAULT; Schema: public; Owner: -
+--
+
+ALTER TABLE gpx_file_tags ALTER COLUMN id SET DEFAULT nextval('gpx_file_tags_id_seq'::regclass);
+
+
+--
+-- Name: id; Type: DEFAULT; Schema: public; Owner: -
+--
+
+ALTER TABLE gpx_files ALTER COLUMN id SET DEFAULT nextval('gpx_files_id_seq'::regclass);
+
+
+--
+-- Name: id; Type: DEFAULT; Schema: public; Owner: -
+--
+
+ALTER TABLE messages ALTER COLUMN id SET DEFAULT nextval('messages_id_seq'::regclass);
+
+
+--
+-- Name: id; Type: DEFAULT; Schema: public; Owner: -
+--
+
+ALTER TABLE oauth_nonces ALTER COLUMN id SET DEFAULT nextval('oauth_nonces_id_seq'::regclass);
+
+
+--
+-- Name: id; Type: DEFAULT; Schema: public; Owner: -
+--
+
+ALTER TABLE oauth_tokens ALTER COLUMN id SET DEFAULT nextval('oauth_tokens_id_seq'::regclass);
+
+
+--
+-- Name: id; Type: DEFAULT; Schema: public; Owner: -
+--
+
+ALTER TABLE sessions ALTER COLUMN id SET DEFAULT nextval('sessions_id_seq'::regclass);
+
+
+--
+-- Name: id; Type: DEFAULT; Schema: public; Owner: -
+--
+
+ALTER TABLE user_blocks ALTER COLUMN id SET DEFAULT nextval('user_blocks_id_seq'::regclass);
+
+
+--
+-- Name: id; Type: DEFAULT; Schema: public; Owner: -
+--
+
+ALTER TABLE user_roles ALTER COLUMN id SET DEFAULT nextval('user_roles_id_seq'::regclass);
+
+
+--
+-- Name: id; Type: DEFAULT; Schema: public; Owner: -
+--
+
+ALTER TABLE user_tokens ALTER COLUMN id SET DEFAULT nextval('user_tokens_id_seq'::regclass);
+
+
+--
+-- Name: id; Type: DEFAULT; Schema: public; Owner: -
+--
+
+ALTER TABLE users ALTER COLUMN id SET DEFAULT nextval('users_id_seq'::regclass);
+
+
+--
+-- Name: acls_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace:
+--
+
+ALTER TABLE ONLY acls
+ ADD CONSTRAINT acls_pkey PRIMARY KEY (id);
+
+
+--
+-- Name: changesets_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace:
+--
+
+ALTER TABLE ONLY changesets
+ ADD CONSTRAINT changesets_pkey PRIMARY KEY (id);
+
+
+--
+-- Name: client_applications_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace:
+--
+
+ALTER TABLE ONLY client_applications
+ ADD CONSTRAINT client_applications_pkey PRIMARY KEY (id);
+
+
+--
+-- Name: countries_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace:
+--
+
+ALTER TABLE ONLY countries
+ ADD CONSTRAINT countries_pkey PRIMARY KEY (id);
+
+
+--
+-- Name: current_node_tags_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace:
+--
+
+ALTER TABLE ONLY current_node_tags
+ ADD CONSTRAINT current_node_tags_pkey PRIMARY KEY (node_id, k);
+
+
+--
+-- Name: current_nodes_pkey1; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace:
+--
+
+ALTER TABLE ONLY current_nodes
+ ADD CONSTRAINT current_nodes_pkey1 PRIMARY KEY (id);
+
+
+--
+-- Name: current_relation_members_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace:
+--
+
+ALTER TABLE ONLY current_relation_members
+ ADD CONSTRAINT current_relation_members_pkey PRIMARY KEY (relation_id, member_type, member_id, member_role, sequence_id);
+
+
+--
+-- Name: current_relation_tags_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace:
+--
+
+ALTER TABLE ONLY current_relation_tags
+ ADD CONSTRAINT current_relation_tags_pkey PRIMARY KEY (relation_id, k);
+
+
+--
+-- Name: current_relations_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace:
+--
+
+ALTER TABLE ONLY current_relations
+ ADD CONSTRAINT current_relations_pkey PRIMARY KEY (id);
+
+
+--
+-- Name: current_way_nodes_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace:
+--
+
+ALTER TABLE ONLY current_way_nodes
+ ADD CONSTRAINT current_way_nodes_pkey PRIMARY KEY (way_id, sequence_id);
+
+
+--
+-- Name: current_way_tags_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace:
+--
+
+ALTER TABLE ONLY current_way_tags
+ ADD CONSTRAINT current_way_tags_pkey PRIMARY KEY (way_id, k);
+
+
+--
+-- Name: current_ways_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace:
+--
+
+ALTER TABLE ONLY current_ways
+ ADD CONSTRAINT current_ways_pkey PRIMARY KEY (id);
+
+
+--
+-- Name: diary_comments_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace:
+--
+
+ALTER TABLE ONLY diary_comments
+ ADD CONSTRAINT diary_comments_pkey PRIMARY KEY (id);
+
+
+--
+-- Name: diary_entries_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace:
+--
+
+ALTER TABLE ONLY diary_entries
+ ADD CONSTRAINT diary_entries_pkey PRIMARY KEY (id);
+
+
+--
+-- Name: friends_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace:
+--
+
+ALTER TABLE ONLY friends
+ ADD CONSTRAINT friends_pkey PRIMARY KEY (id);
+
+
+--
+-- Name: gpx_file_tags_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace:
+--
+
+ALTER TABLE ONLY gpx_file_tags
+ ADD CONSTRAINT gpx_file_tags_pkey PRIMARY KEY (id);
+
+
+--
+-- Name: gpx_files_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace:
+--
+
+ALTER TABLE ONLY gpx_files
+ ADD CONSTRAINT gpx_files_pkey PRIMARY KEY (id);
+
+
+--
+-- Name: languages_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace:
+--
+
+ALTER TABLE ONLY languages
+ ADD CONSTRAINT languages_pkey PRIMARY KEY (code);
+
+
+--
+-- Name: messages_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace:
+--
+
+ALTER TABLE ONLY messages
+ ADD CONSTRAINT messages_pkey PRIMARY KEY (id);
+
+
+--
+-- Name: node_tags_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace:
+--
+
+ALTER TABLE ONLY node_tags
+ ADD CONSTRAINT node_tags_pkey PRIMARY KEY (node_id, version, k);
+
+
+--
+-- Name: nodes_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace:
+--
+
+ALTER TABLE ONLY nodes
+ ADD CONSTRAINT nodes_pkey PRIMARY KEY (node_id, version);
+
+
+--
+-- Name: oauth_nonces_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace:
+--
+
+ALTER TABLE ONLY oauth_nonces
+ ADD CONSTRAINT oauth_nonces_pkey PRIMARY KEY (id);
+
+
+--
+-- Name: oauth_tokens_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace:
+--
+
+ALTER TABLE ONLY oauth_tokens
+ ADD CONSTRAINT oauth_tokens_pkey PRIMARY KEY (id);
+
+
+--
+-- Name: relation_members_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace:
+--
+
+ALTER TABLE ONLY relation_members
+ ADD CONSTRAINT relation_members_pkey PRIMARY KEY (relation_id, version, member_type, member_id, member_role, sequence_id);
+
+
+--
+-- Name: relation_tags_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace:
+--
+
+ALTER TABLE ONLY relation_tags
+ ADD CONSTRAINT relation_tags_pkey PRIMARY KEY (relation_id, version, k);
+
+
+--
+-- Name: relations_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace:
+--
+
+ALTER TABLE ONLY relations
+ ADD CONSTRAINT relations_pkey PRIMARY KEY (relation_id, version);
+
+
+--
+-- Name: sessions_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace:
+--
+
+ALTER TABLE ONLY sessions
+ ADD CONSTRAINT sessions_pkey PRIMARY KEY (id);
+
+
+--
+-- Name: user_blocks_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace:
+--
+
+ALTER TABLE ONLY user_blocks
+ ADD CONSTRAINT user_blocks_pkey PRIMARY KEY (id);
+
+
+--
+-- Name: user_preferences_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace:
+--
+
+ALTER TABLE ONLY user_preferences
+ ADD CONSTRAINT user_preferences_pkey PRIMARY KEY (user_id, k);
+
+
+--
+-- Name: user_roles_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace:
+--
+
+ALTER TABLE ONLY user_roles
+ ADD CONSTRAINT user_roles_pkey PRIMARY KEY (id);
+
+
+--
+-- Name: user_tokens_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace:
+--
+
+ALTER TABLE ONLY user_tokens
+ ADD CONSTRAINT user_tokens_pkey PRIMARY KEY (id);
+
+
+--
+-- Name: users_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace:
+--
+
+ALTER TABLE ONLY users
+ ADD CONSTRAINT users_pkey PRIMARY KEY (id);
+
+
+--
+-- Name: way_nodes_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace:
+--
+
+ALTER TABLE ONLY way_nodes
+ ADD CONSTRAINT way_nodes_pkey PRIMARY KEY (way_id, version, sequence_id);
+
+
+--
+-- Name: way_tags_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace:
+--
+
+ALTER TABLE ONLY way_tags
+ ADD CONSTRAINT way_tags_pkey PRIMARY KEY (way_id, version, k);
+
+
+--
+-- Name: ways_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace:
+--
+
+ALTER TABLE ONLY ways
+ ADD CONSTRAINT ways_pkey PRIMARY KEY (way_id, version);
+
+
+--
+-- Name: acls_k_idx; Type: INDEX; Schema: public; Owner: -; Tablespace:
+--
+
+CREATE INDEX acls_k_idx ON acls USING btree (k);
+
+
+--
+-- Name: changeset_tags_id_idx; Type: INDEX; Schema: public; Owner: -; Tablespace:
+--
+
+CREATE INDEX changeset_tags_id_idx ON changeset_tags USING btree (changeset_id);
+
+
+--
+-- Name: changesets_bbox_idx; Type: INDEX; Schema: public; Owner: -; Tablespace:
+--
+
+CREATE INDEX changesets_bbox_idx ON changesets USING gist (min_lat, max_lat, min_lon, max_lon);
+
+
+--
+-- Name: changesets_closed_at_idx; Type: INDEX; Schema: public; Owner: -; Tablespace:
+--
+
+CREATE INDEX changesets_closed_at_idx ON changesets USING btree (closed_at);
+
+
+--
+-- Name: changesets_created_at_idx; Type: INDEX; Schema: public; Owner: -; Tablespace:
+--
+
+CREATE INDEX changesets_created_at_idx ON changesets USING btree (created_at);
+
+
+--
+-- Name: changesets_user_id_created_at_idx; Type: INDEX; Schema: public; Owner: -; Tablespace:
+--
+
+CREATE INDEX changesets_user_id_created_at_idx ON changesets USING btree (user_id, created_at);
+
+
+--
+-- Name: changesets_user_id_id_idx; Type: INDEX; Schema: public; Owner: -; Tablespace:
+--
+
+CREATE INDEX changesets_user_id_id_idx ON changesets USING btree (user_id, id);
+
+
+--
+-- Name: countries_code_idx; Type: INDEX; Schema: public; Owner: -; Tablespace:
+--
+
+CREATE UNIQUE INDEX countries_code_idx ON countries USING btree (code);
+
+
+--
+-- Name: current_nodes_tile_idx; Type: INDEX; Schema: public; Owner: -; Tablespace:
+--
+
+CREATE INDEX current_nodes_tile_idx ON current_nodes USING btree (tile);
+
+
+--
+-- Name: current_nodes_timestamp_idx; Type: INDEX; Schema: public; Owner: -; Tablespace:
+--
+
+CREATE INDEX current_nodes_timestamp_idx ON current_nodes USING btree ("timestamp");
+
+
+--
+-- Name: current_relation_members_member_idx; Type: INDEX; Schema: public; Owner: -; Tablespace:
+--
+
+CREATE INDEX current_relation_members_member_idx ON current_relation_members USING btree (member_type, member_id);
+
+
+--
+-- Name: current_relations_timestamp_idx; Type: INDEX; Schema: public; Owner: -; Tablespace:
+--
+
+CREATE INDEX current_relations_timestamp_idx ON current_relations USING btree ("timestamp");
+
+
+--
+-- Name: current_way_nodes_node_idx; Type: INDEX; Schema: public; Owner: -; Tablespace:
+--
+
+CREATE INDEX current_way_nodes_node_idx ON current_way_nodes USING btree (node_id);
+
+
+--
+-- Name: current_ways_timestamp_idx; Type: INDEX; Schema: public; Owner: -; Tablespace:
+--
+
+CREATE INDEX current_ways_timestamp_idx ON current_ways USING btree ("timestamp");
+
+
+--
+-- Name: diary_comment_user_id_created_at_index; Type: INDEX; Schema: public; Owner: -; Tablespace:
+--
+
+CREATE INDEX diary_comment_user_id_created_at_index ON diary_comments USING btree (user_id, created_at);
+
+
+--
+-- Name: diary_comments_entry_id_idx; Type: INDEX; Schema: public; Owner: -; Tablespace:
+--
+
+CREATE UNIQUE INDEX diary_comments_entry_id_idx ON diary_comments USING btree (diary_entry_id, id);
+
+
+--
+-- Name: diary_entry_created_at_index; Type: INDEX; Schema: public; Owner: -; Tablespace:
+--
+
+CREATE INDEX diary_entry_created_at_index ON diary_entries USING btree (created_at);
+
+
+--
+-- Name: diary_entry_language_code_created_at_index; Type: INDEX; Schema: public; Owner: -; Tablespace:
+--
+
+CREATE INDEX diary_entry_language_code_created_at_index ON diary_entries USING btree (language_code, created_at);
+
+
+--
+-- Name: diary_entry_user_id_created_at_index; Type: INDEX; Schema: public; Owner: -; Tablespace:
+--
+
+CREATE INDEX diary_entry_user_id_created_at_index ON diary_entries USING btree (user_id, created_at);
+
+
+--
+-- Name: friends_user_id_idx; Type: INDEX; Schema: public; Owner: -; Tablespace:
+--
+
+CREATE INDEX friends_user_id_idx ON friends USING btree (user_id);
+
+
+--
+-- Name: gpx_file_tags_gpxid_idx; Type: INDEX; Schema: public; Owner: -; Tablespace:
+--
+
+CREATE INDEX gpx_file_tags_gpxid_idx ON gpx_file_tags USING btree (gpx_id);
+
+
+--
+-- Name: gpx_file_tags_tag_idx; Type: INDEX; Schema: public; Owner: -; Tablespace:
+--
+
+CREATE INDEX gpx_file_tags_tag_idx ON gpx_file_tags USING btree (tag);
+
+
+--
+-- Name: gpx_files_timestamp_idx; Type: INDEX; Schema: public; Owner: -; Tablespace:
+--
+
+CREATE INDEX gpx_files_timestamp_idx ON gpx_files USING btree ("timestamp");
+
+
+--
+-- Name: gpx_files_user_id_idx; Type: INDEX; Schema: public; Owner: -; Tablespace:
+--
+
+CREATE INDEX gpx_files_user_id_idx ON gpx_files USING btree (user_id);
+
+
+--
+-- Name: gpx_files_visible_visibility_idx; Type: INDEX; Schema: public; Owner: -; Tablespace:
+--
+
+CREATE INDEX gpx_files_visible_visibility_idx ON gpx_files USING btree (visible, visibility);
+
+
+--
+-- Name: index_client_applications_on_key; Type: INDEX; Schema: public; Owner: -; Tablespace:
+--
+
+CREATE UNIQUE INDEX index_client_applications_on_key ON client_applications USING btree (key);
+
+
+--
+-- Name: index_oauth_nonces_on_nonce_and_timestamp; Type: INDEX; Schema: public; Owner: -; Tablespace:
+--
+
+CREATE UNIQUE INDEX index_oauth_nonces_on_nonce_and_timestamp ON oauth_nonces USING btree (nonce, "timestamp");
+
+
+--
+-- Name: index_oauth_tokens_on_token; Type: INDEX; Schema: public; Owner: -; Tablespace:
+--
+
+CREATE UNIQUE INDEX index_oauth_tokens_on_token ON oauth_tokens USING btree (token);
+
+
+--
+-- Name: index_user_blocks_on_user_id; Type: INDEX; Schema: public; Owner: -; Tablespace:
+--
+
+CREATE INDEX index_user_blocks_on_user_id ON user_blocks USING btree (user_id);
+
+
+--
+-- Name: messages_from_user_id_idx; Type: INDEX; Schema: public; Owner: -; Tablespace:
+--
+
+CREATE INDEX messages_from_user_id_idx ON messages USING btree (from_user_id);
+
+
+--
+-- Name: messages_to_user_id_idx; Type: INDEX; Schema: public; Owner: -; Tablespace:
+--
+
+CREATE INDEX messages_to_user_id_idx ON messages USING btree (to_user_id);
+
+
+--
+-- Name: nodes_changeset_id_idx; Type: INDEX; Schema: public; Owner: -; Tablespace:
+--
+
+CREATE INDEX nodes_changeset_id_idx ON nodes USING btree (changeset_id);
+
+
+--
+-- Name: nodes_tile_idx; Type: INDEX; Schema: public; Owner: -; Tablespace:
+--
+
+CREATE INDEX nodes_tile_idx ON nodes USING btree (tile);
+
+
+--
+-- Name: nodes_timestamp_idx; Type: INDEX; Schema: public; Owner: -; Tablespace:
+--
+
+CREATE INDEX nodes_timestamp_idx ON nodes USING btree ("timestamp");
+
+
+--
+-- Name: points_gpxid_idx; Type: INDEX; Schema: public; Owner: -; Tablespace:
+--
+
+CREATE INDEX points_gpxid_idx ON gps_points USING btree (gpx_id);
+
+
+--
+-- Name: points_tile_idx; Type: INDEX; Schema: public; Owner: -; Tablespace:
+--
+
+CREATE INDEX points_tile_idx ON gps_points USING btree (tile);
+
+
+--
+-- Name: relation_members_member_idx; Type: INDEX; Schema: public; Owner: -; Tablespace:
+--
+
+CREATE INDEX relation_members_member_idx ON relation_members USING btree (member_type, member_id);
+
+
+--
+-- Name: relations_changeset_id_idx; Type: INDEX; Schema: public; Owner: -; Tablespace:
+--
+
+CREATE INDEX relations_changeset_id_idx ON relations USING btree (changeset_id);
+
+
+--
+-- Name: relations_timestamp_idx; Type: INDEX; Schema: public; Owner: -; Tablespace:
+--
+
+CREATE INDEX relations_timestamp_idx ON relations USING btree ("timestamp");
+
+
+--
+-- Name: sessions_session_id_idx; Type: INDEX; Schema: public; Owner: -; Tablespace:
+--
+
+CREATE UNIQUE INDEX sessions_session_id_idx ON sessions USING btree (session_id);
+
+
+--
+-- Name: unique_schema_migrations; Type: INDEX; Schema: public; Owner: -; Tablespace:
+--
+
+CREATE UNIQUE INDEX unique_schema_migrations ON schema_migrations USING btree (version);
+
+
+--
+-- Name: user_id_idx; Type: INDEX; Schema: public; Owner: -; Tablespace:
+--
+
+CREATE INDEX user_id_idx ON friends USING btree (friend_user_id);
+
+
+--
+-- Name: user_openid_url_idx; Type: INDEX; Schema: public; Owner: -; Tablespace:
+--
+
+CREATE UNIQUE INDEX user_openid_url_idx ON users USING btree (openid_url);
+
+
+--
+-- Name: user_roles_id_role_unique; Type: INDEX; Schema: public; Owner: -; Tablespace:
+--
+
+CREATE UNIQUE INDEX user_roles_id_role_unique ON user_roles USING btree (user_id, role);
+
+
+--
+-- Name: user_tokens_token_idx; Type: INDEX; Schema: public; Owner: -; Tablespace:
+--
+
+CREATE UNIQUE INDEX user_tokens_token_idx ON user_tokens USING btree (token);
+
+
+--
+-- Name: user_tokens_user_id_idx; Type: INDEX; Schema: public; Owner: -; Tablespace:
+--
+
+CREATE INDEX user_tokens_user_id_idx ON user_tokens USING btree (user_id);
+
+
+--
+-- Name: users_display_name_idx; Type: INDEX; Schema: public; Owner: -; Tablespace:
+--
+
+CREATE UNIQUE INDEX users_display_name_idx ON users USING btree (display_name);
+
+
+--
+-- Name: users_display_name_lower_idx; Type: INDEX; Schema: public; Owner: -; Tablespace:
+--
+
+CREATE INDEX users_display_name_lower_idx ON users USING btree (lower((display_name)::text));
+
+
+--
+-- Name: users_email_idx; Type: INDEX; Schema: public; Owner: -; Tablespace:
+--
+
+CREATE UNIQUE INDEX users_email_idx ON users USING btree (email);
+
+
+--
+-- Name: users_email_lower_idx; Type: INDEX; Schema: public; Owner: -; Tablespace:
+--
+
+CREATE INDEX users_email_lower_idx ON users USING btree (lower((email)::text));
+
+
+--
+-- Name: way_nodes_node_idx; Type: INDEX; Schema: public; Owner: -; Tablespace:
+--
+
+CREATE INDEX way_nodes_node_idx ON way_nodes USING btree (node_id);
+
+
+--
+-- Name: ways_changeset_id_idx; Type: INDEX; Schema: public; Owner: -; Tablespace:
+--
+
+CREATE INDEX ways_changeset_id_idx ON ways USING btree (changeset_id);
+
+
+--
+-- Name: ways_timestamp_idx; Type: INDEX; Schema: public; Owner: -; Tablespace:
+--
+
+CREATE INDEX ways_timestamp_idx ON ways USING btree ("timestamp");
+
+
+--
+-- Name: changeset_tags_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
+--
+
+ALTER TABLE ONLY changeset_tags
+ ADD CONSTRAINT changeset_tags_id_fkey FOREIGN KEY (changeset_id) REFERENCES changesets(id);
+
+
+--
+-- Name: changesets_user_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
+--
+
+ALTER TABLE ONLY changesets
+ ADD CONSTRAINT changesets_user_id_fkey FOREIGN KEY (user_id) REFERENCES users(id);
+
+
+--
+-- Name: client_applications_user_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
+--
+
+ALTER TABLE ONLY client_applications
+ ADD CONSTRAINT client_applications_user_id_fkey FOREIGN KEY (user_id) REFERENCES users(id);
+
+
+--
+-- Name: current_node_tags_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
+--
+
+ALTER TABLE ONLY current_node_tags
+ ADD CONSTRAINT current_node_tags_id_fkey FOREIGN KEY (node_id) REFERENCES current_nodes(id);
+
+
+--
+-- Name: current_nodes_changeset_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
+--
+
+ALTER TABLE ONLY current_nodes
+ ADD CONSTRAINT current_nodes_changeset_id_fkey FOREIGN KEY (changeset_id) REFERENCES changesets(id);
+
+
+--
+-- Name: current_relation_members_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
+--
+
+ALTER TABLE ONLY current_relation_members
+ ADD CONSTRAINT current_relation_members_id_fkey FOREIGN KEY (relation_id) REFERENCES current_relations(id);
+
+
+--
+-- Name: current_relation_tags_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
+--
+
+ALTER TABLE ONLY current_relation_tags
+ ADD CONSTRAINT current_relation_tags_id_fkey FOREIGN KEY (relation_id) REFERENCES current_relations(id);
+
+
+--
+-- Name: current_relations_changeset_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
+--
+
+ALTER TABLE ONLY current_relations
+ ADD CONSTRAINT current_relations_changeset_id_fkey FOREIGN KEY (changeset_id) REFERENCES changesets(id);
+
+
+--
+-- Name: current_way_nodes_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
+--
+
+ALTER TABLE ONLY current_way_nodes
+ ADD CONSTRAINT current_way_nodes_id_fkey FOREIGN KEY (way_id) REFERENCES current_ways(id);
+
+
+--
+-- Name: current_way_nodes_node_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
+--
+
+ALTER TABLE ONLY current_way_nodes
+ ADD CONSTRAINT current_way_nodes_node_id_fkey FOREIGN KEY (node_id) REFERENCES current_nodes(id);
+
+
+--
+-- Name: current_way_tags_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
+--
+
+ALTER TABLE ONLY current_way_tags
+ ADD CONSTRAINT current_way_tags_id_fkey FOREIGN KEY (way_id) REFERENCES current_ways(id);
+
+
+--
+-- Name: current_ways_changeset_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
+--
+
+ALTER TABLE ONLY current_ways
+ ADD CONSTRAINT current_ways_changeset_id_fkey FOREIGN KEY (changeset_id) REFERENCES changesets(id);
+
+
+--
+-- Name: diary_comments_diary_entry_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
+--
+
+ALTER TABLE ONLY diary_comments
+ ADD CONSTRAINT diary_comments_diary_entry_id_fkey FOREIGN KEY (diary_entry_id) REFERENCES diary_entries(id);
+
+
+--
+-- Name: diary_comments_user_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
+--
+
+ALTER TABLE ONLY diary_comments
+ ADD CONSTRAINT diary_comments_user_id_fkey FOREIGN KEY (user_id) REFERENCES users(id);
+
+
+--
+-- Name: diary_entries_language_code_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
+--
+
+ALTER TABLE ONLY diary_entries
+ ADD CONSTRAINT diary_entries_language_code_fkey FOREIGN KEY (language_code) REFERENCES languages(code);
+
+
+--
+-- Name: diary_entries_user_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
+--
+
+ALTER TABLE ONLY diary_entries
+ ADD CONSTRAINT diary_entries_user_id_fkey FOREIGN KEY (user_id) REFERENCES users(id);
+
+
+--
+-- Name: friends_friend_user_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
+--
+
+ALTER TABLE ONLY friends
+ ADD CONSTRAINT friends_friend_user_id_fkey FOREIGN KEY (friend_user_id) REFERENCES users(id);
+
+
+--
+-- Name: friends_user_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
+--
+
+ALTER TABLE ONLY friends
+ ADD CONSTRAINT friends_user_id_fkey FOREIGN KEY (user_id) REFERENCES users(id);
+
+
+--
+-- Name: gps_points_gpx_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
+--
+
+ALTER TABLE ONLY gps_points
+ ADD CONSTRAINT gps_points_gpx_id_fkey FOREIGN KEY (gpx_id) REFERENCES gpx_files(id);
+
+
+--
+-- Name: gpx_file_tags_gpx_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
+--
+
+ALTER TABLE ONLY gpx_file_tags
+ ADD CONSTRAINT gpx_file_tags_gpx_id_fkey FOREIGN KEY (gpx_id) REFERENCES gpx_files(id);
+
+
+--
+-- Name: gpx_files_user_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
+--
+
+ALTER TABLE ONLY gpx_files
+ ADD CONSTRAINT gpx_files_user_id_fkey FOREIGN KEY (user_id) REFERENCES users(id);
+
+
+--
+-- Name: messages_from_user_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
+--
+
+ALTER TABLE ONLY messages
+ ADD CONSTRAINT messages_from_user_id_fkey FOREIGN KEY (from_user_id) REFERENCES users(id);
+
+
+--
+-- Name: messages_to_user_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
+--
+
+ALTER TABLE ONLY messages
+ ADD CONSTRAINT messages_to_user_id_fkey FOREIGN KEY (to_user_id) REFERENCES users(id);
+
+
+--
+-- Name: node_tags_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
+--
+
+ALTER TABLE ONLY node_tags
+ ADD CONSTRAINT node_tags_id_fkey FOREIGN KEY (node_id, version) REFERENCES nodes(node_id, version);
+
+
+--
+-- Name: nodes_changeset_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
+--
+
+ALTER TABLE ONLY nodes
+ ADD CONSTRAINT nodes_changeset_id_fkey FOREIGN KEY (changeset_id) REFERENCES changesets(id);
+
+
+--
+-- Name: oauth_tokens_client_application_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
+--
+
+ALTER TABLE ONLY oauth_tokens
+ ADD CONSTRAINT oauth_tokens_client_application_id_fkey FOREIGN KEY (client_application_id) REFERENCES client_applications(id);
+
+
+--
+-- Name: oauth_tokens_user_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
+--
+
+ALTER TABLE ONLY oauth_tokens
+ ADD CONSTRAINT oauth_tokens_user_id_fkey FOREIGN KEY (user_id) REFERENCES users(id);
+
+
+--
+-- Name: relation_members_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
+--
+
+ALTER TABLE ONLY relation_members
+ ADD CONSTRAINT relation_members_id_fkey FOREIGN KEY (relation_id, version) REFERENCES relations(relation_id, version);
+
+
+--
+-- Name: relation_tags_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
+--
+
+ALTER TABLE ONLY relation_tags
+ ADD CONSTRAINT relation_tags_id_fkey FOREIGN KEY (relation_id, version) REFERENCES relations(relation_id, version);
+
+
+--
+-- Name: relations_changeset_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
+--
+
+ALTER TABLE ONLY relations
+ ADD CONSTRAINT relations_changeset_id_fkey FOREIGN KEY (changeset_id) REFERENCES changesets(id);
+
+
+--
+-- Name: user_blocks_moderator_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
+--
+
+ALTER TABLE ONLY user_blocks
+ ADD CONSTRAINT user_blocks_moderator_id_fkey FOREIGN KEY (creator_id) REFERENCES users(id);
+
+
+--
+-- Name: user_blocks_revoker_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
+--
+
+ALTER TABLE ONLY user_blocks
+ ADD CONSTRAINT user_blocks_revoker_id_fkey FOREIGN KEY (revoker_id) REFERENCES users(id);
+
+
+--
+-- Name: user_blocks_user_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
+--
+
+ALTER TABLE ONLY user_blocks
+ ADD CONSTRAINT user_blocks_user_id_fkey FOREIGN KEY (user_id) REFERENCES users(id);
+
+
+--
+-- Name: user_preferences_user_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
+--
+
+ALTER TABLE ONLY user_preferences
+ ADD CONSTRAINT user_preferences_user_id_fkey FOREIGN KEY (user_id) REFERENCES users(id);
+
+
+--
+-- Name: user_roles_granter_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
+--
+
+ALTER TABLE ONLY user_roles
+ ADD CONSTRAINT user_roles_granter_id_fkey FOREIGN KEY (granter_id) REFERENCES users(id);
+
+
+--
+-- Name: user_roles_user_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
+--
+
+ALTER TABLE ONLY user_roles
+ ADD CONSTRAINT user_roles_user_id_fkey FOREIGN KEY (user_id) REFERENCES users(id);
+
+
+--
+-- Name: user_tokens_user_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
+--
+
+ALTER TABLE ONLY user_tokens
+ ADD CONSTRAINT user_tokens_user_id_fkey FOREIGN KEY (user_id) REFERENCES users(id);
+
+
+--
+-- Name: way_nodes_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
+--
+
+ALTER TABLE ONLY way_nodes
+ ADD CONSTRAINT way_nodes_id_fkey FOREIGN KEY (way_id, version) REFERENCES ways(way_id, version);
+
+
+--
+-- Name: way_tags_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
+--
+
+ALTER TABLE ONLY way_tags
+ ADD CONSTRAINT way_tags_id_fkey FOREIGN KEY (way_id, version) REFERENCES ways(way_id, version);
+
+
+--
+-- Name: ways_changeset_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
+--
+
+ALTER TABLE ONLY ways
+ ADD CONSTRAINT ways_changeset_id_fkey FOREIGN KEY (changeset_id) REFERENCES changesets(id);
+
+
+--
+-- PostgreSQL database dump complete
+--
+
+INSERT INTO schema_migrations (version) VALUES ('1');
+
+INSERT INTO schema_migrations (version) VALUES ('10');
+
+INSERT INTO schema_migrations (version) VALUES ('11');
+
+INSERT INTO schema_migrations (version) VALUES ('12');
+
+INSERT INTO schema_migrations (version) VALUES ('13');
+
+INSERT INTO schema_migrations (version) VALUES ('14');
+
+INSERT INTO schema_migrations (version) VALUES ('15');
+
+INSERT INTO schema_migrations (version) VALUES ('16');
+
+INSERT INTO schema_migrations (version) VALUES ('17');
+
+INSERT INTO schema_migrations (version) VALUES ('18');
+
+INSERT INTO schema_migrations (version) VALUES ('19');
+
+INSERT INTO schema_migrations (version) VALUES ('2');
+
+INSERT INTO schema_migrations (version) VALUES ('20');
+
+INSERT INTO schema_migrations (version) VALUES ('20100513171259');
+
+INSERT INTO schema_migrations (version) VALUES ('20100516124737');
+
+INSERT INTO schema_migrations (version) VALUES ('20100910084426');
+
+INSERT INTO schema_migrations (version) VALUES ('20101114011429');
+
+INSERT INTO schema_migrations (version) VALUES ('20110322001319');
+
+INSERT INTO schema_migrations (version) VALUES ('20110925112722');
+
+INSERT INTO schema_migrations (version) VALUES ('20111116184519');
+
+INSERT INTO schema_migrations (version) VALUES ('20111212183945');
+
+INSERT INTO schema_migrations (version) VALUES ('20120123184321');
+
+INSERT INTO schema_migrations (version) VALUES ('20120208122334');
+
+INSERT INTO schema_migrations (version) VALUES ('20120208194454');
+
+INSERT INTO schema_migrations (version) VALUES ('20120219161649');
+
+INSERT INTO schema_migrations (version) VALUES ('21');
+
+INSERT INTO schema_migrations (version) VALUES ('22');
+
+INSERT INTO schema_migrations (version) VALUES ('23');
+
+INSERT INTO schema_migrations (version) VALUES ('24');
+
+INSERT INTO schema_migrations (version) VALUES ('25');
+
+INSERT INTO schema_migrations (version) VALUES ('26');
+
+INSERT INTO schema_migrations (version) VALUES ('27');
+
+INSERT INTO schema_migrations (version) VALUES ('28');
+
+INSERT INTO schema_migrations (version) VALUES ('29');
+
+INSERT INTO schema_migrations (version) VALUES ('3');
+
+INSERT INTO schema_migrations (version) VALUES ('30');
+
+INSERT INTO schema_migrations (version) VALUES ('31');
+
+INSERT INTO schema_migrations (version) VALUES ('32');
+
+INSERT INTO schema_migrations (version) VALUES ('33');
+
+INSERT INTO schema_migrations (version) VALUES ('34');
+
+INSERT INTO schema_migrations (version) VALUES ('35');
+
+INSERT INTO schema_migrations (version) VALUES ('36');
+
+INSERT INTO schema_migrations (version) VALUES ('37');
+
+INSERT INTO schema_migrations (version) VALUES ('38');
+
+INSERT INTO schema_migrations (version) VALUES ('39');
+
+INSERT INTO schema_migrations (version) VALUES ('4');
+
+INSERT INTO schema_migrations (version) VALUES ('40');
+
+INSERT INTO schema_migrations (version) VALUES ('41');
+
+INSERT INTO schema_migrations (version) VALUES ('42');
+
+INSERT INTO schema_migrations (version) VALUES ('43');
+
+INSERT INTO schema_migrations (version) VALUES ('44');
+
+INSERT INTO schema_migrations (version) VALUES ('45');
+
+INSERT INTO schema_migrations (version) VALUES ('46');
+
+INSERT INTO schema_migrations (version) VALUES ('47');
+
+INSERT INTO schema_migrations (version) VALUES ('48');
+
+INSERT INTO schema_migrations (version) VALUES ('49');
+
+INSERT INTO schema_migrations (version) VALUES ('5');
+
+INSERT INTO schema_migrations (version) VALUES ('50');
+
+INSERT INTO schema_migrations (version) VALUES ('51');
+
+INSERT INTO schema_migrations (version) VALUES ('52');
+
+INSERT INTO schema_migrations (version) VALUES ('6');
+
+INSERT INTO schema_migrations (version) VALUES ('7');
+
+INSERT INTO schema_migrations (version) VALUES ('8');
+
+INSERT INTO schema_migrations (version) VALUES ('9');
\ No newline at end of file
--- /dev/null
+class MemCache < Memcached::Rails
+ DEFAULT_OPTIONS = Memcached::DEFAULTS.merge(Memcached::Rails::DEFAULTS)
+
+ MemCacheError = Memcached::Error
+
+ @@connections = []
+
+ def initialize(options = {})
+ options.reverse_merge! :namespace_separator => ":"
+
+ super(MEMCACHE_SERVERS, options)
+
+ @@connections.push(self)
+
+ ObjectSpace.define_finalizer(self, lambda { |connection|
+ @@connections.remove(connection)
+ })
+ end
+
+ def self.connections
+ @@connections
+ end
+end
+
+if defined?(PhusionPassenger)
+ PhusionPassenger.on_event(:starting_worker_process) do |forked|
+ if forked
+ MemCache.connections.each { |connection| connection.reset }
+ end
+ end
+end
end
end
- if defined?(ActiveRecord::ConnectionAdapters::MysqlAdapter)
- class MysqlAdapter
- alias_method :old_native_database_types, :native_database_types
-
- def native_database_types
- types = old_native_database_types
- types[:bigint] = { :name => "bigint", :limit => 20 }
- types[:double] = { :name => "double" }
- types[:integer_pk] = { :name => "integer DEFAULT NULL auto_increment PRIMARY KEY" }
- types[:bigint_pk] = { :name => "bigint(20) DEFAULT NULL auto_increment PRIMARY KEY" }
- types[:bigint_pk_64] = { :name => "bigint(64) DEFAULT NULL auto_increment PRIMARY KEY" }
- types[:bigint_auto_64] = { :name => "bigint(64) DEFAULT NULL auto_increment" }
- types[:bigint_auto_11] = { :name => "bigint(11) DEFAULT NULL auto_increment" }
- types[:bigint_auto_20] = { :name => "bigint(20) DEFAULT NULL auto_increment" }
- types[:four_byte_unsigned] = { :name=> "integer unsigned" }
- types[:inet] = { :name=> "integer unsigned" }
-
- enumerations.each do |e,v|
- types[e.to_sym]= { :name => "enum('#{v.join '\',\''}')" }
- end
-
- types
- end
-
- def change_column(table_name, column_name, type, options = {})
- unless options_include_default?(options)
- options[:default] = select_one("SHOW COLUMNS FROM #{table_name} LIKE '#{column_name}'")["Default"]
-
- unless type == :string or type == :text
- options.delete(:default) if options[:default] = "";
- end
- end
-
- change_column_sql = "ALTER TABLE #{table_name} CHANGE #{column_name} #{column_name} #{type_to_sql(type, options[:limit], options[:precision], options[:scale])}"
- add_column_options!(change_column_sql, options)
- execute(change_column_sql)
- end
-
- def myisam_table
- return { :id => false, :force => true, :options => "ENGINE=MyIsam" }
- end
-
- def innodb_table
- return { :id => false, :force => true, :options => "ENGINE=InnoDB" }
- end
-
- def innodb_option
- return "ENGINE=InnoDB"
- end
-
- def change_engine (table_name, engine)
- execute "ALTER TABLE #{table_name} ENGINE = #{engine}"
- end
-
- def add_fulltext_index (table_name, column)
- execute "CREATE FULLTEXT INDEX `#{table_name}_#{column}_idx` ON `#{table_name}` (`#{column}`)"
- end
-
- def enumerations
- @enumerations ||= Hash.new
- end
-
- def create_enumeration (enumeration_name, values)
- enumerations[enumeration_name] = values
- end
-
- def drop_enumeration (enumeration_name)
- enumerations.delete(enumeration_name)
- end
+ class PostgreSQLAdapter
+ alias_method :old_native_database_types, :native_database_types
+
+ def native_database_types
+ types = old_native_database_types
+ types[:double] = { :name => "double precision" }
+ types[:integer_pk] = { :name => "serial PRIMARY KEY" }
+ types[:bigint_pk] = { :name => "bigserial PRIMARY KEY" }
+ types[:bigint_pk_64] = { :name => "bigserial PRIMARY KEY" }
+ types[:bigint_auto_64] = { :name => "bigint" } #fixme: need autoincrement?
+ types[:bigint_auto_11] = { :name => "bigint" } #fixme: need autoincrement?
+ types[:bigint_auto_20] = { :name => "bigint" } #fixme: need autoincrement?
+ types[:four_byte_unsigned] = { :name => "bigint" } # meh
+ types[:inet] = { :name=> "inet" }
+
+ enumerations.each_key do |e|
+ types[e.to_sym]= { :name => e }
+ end
+
+ types
+ end
- def alter_primary_key(table_name, new_columns)
- execute("alter table #{table_name} drop primary key, add primary key (#{new_columns.join(',')})")
- end
+ def myisam_table
+ return { :id => false, :force => true, :options => ""}
+ end
- def interval_constant(interval)
- "'#{interval}'"
- end
+ def innodb_table
+ return { :id => false, :force => true, :options => ""}
end
- end
- if defined?(ActiveRecord::ConnectionAdapters::PostgreSQLAdapter)
- class PostgreSQLAdapter
- alias_method :old_native_database_types, :native_database_types
-
- def native_database_types
- types = old_native_database_types
- types[:double] = { :name => "double precision" }
- types[:integer_pk] = { :name => "serial PRIMARY KEY" }
- types[:bigint_pk] = { :name => "bigserial PRIMARY KEY" }
- types[:bigint_pk_64] = { :name => "bigserial PRIMARY KEY" }
- types[:bigint_auto_64] = { :name => "bigint" } #fixme: need autoincrement?
- types[:bigint_auto_11] = { :name => "bigint" } #fixme: need autoincrement?
- types[:bigint_auto_20] = { :name => "bigint" } #fixme: need autoincrement?
- types[:four_byte_unsigned] = { :name => "bigint" } # meh
- types[:inet] = { :name=> "inet" }
-
- enumerations.each_key do |e|
- types[e.to_sym]= { :name => e }
- end
-
- types
- end
+ def innodb_option
+ return ""
+ end
- def myisam_table
- return { :id => false, :force => true, :options => ""}
- end
+ def change_engine (table_name, engine)
+ end
- def innodb_table
- return { :id => false, :force => true, :options => ""}
- end
+ def add_fulltext_index (table_name, column)
+ execute "CREATE INDEX #{table_name}_#{column}_idx on #{table_name} (#{column})"
+ end
- def innodb_option
- return ""
- end
+ def enumerations
+ @enumerations ||= Hash.new
+ end
- def change_engine (table_name, engine)
- end
+ def create_enumeration(enumeration_name, values)
+ enumerations[enumeration_name] = values
+ execute "CREATE TYPE #{enumeration_name} AS ENUM ('#{values.join '\',\''}')"
+ end
- def add_fulltext_index (table_name, column)
- execute "CREATE INDEX #{table_name}_#{column}_idx on #{table_name} (#{column})"
- end
+ def drop_enumeration(enumeration_name)
+ execute "DROP TYPE #{enumeration_name}"
+ enumerations.delete(enumeration_name)
+ end
- def enumerations
- @enumerations ||= Hash.new
- end
+ def rename_enumeration(old_name, new_name)
+ execute "ALTER TYPE #{quote_table_name(old_name)} RENAME TO #{quote_table_name(new_name)}"
+ end
- def create_enumeration(enumeration_name, values)
- enumerations[enumeration_name] = values
- execute "CREATE TYPE #{enumeration_name} AS ENUM ('#{values.join '\',\''}')"
- end
+ def alter_primary_key(table_name, new_columns)
+ execute "ALTER TABLE #{table_name} DROP CONSTRAINT #{table_name}_pkey"
+ execute "ALTER TABLE #{table_name} ADD PRIMARY KEY (#{new_columns.join(',')})"
+ end
- def drop_enumeration(enumeration_name)
- execute "DROP TYPE #{enumeration_name}"
- enumerations.delete(enumeration_name)
- end
+ def interval_constant(interval)
+ "'#{interval}'::interval"
+ end
- def rename_enumeration(old_name, new_name)
- execute "ALTER TYPE #{quote_table_name(old_name)} RENAME TO #{quote_table_name(new_name)}"
- end
+ def add_index(table_name, column_name, options = {})
+ column_names = Array(column_name)
+ index_name = index_name(table_name, :column => column_names)
- def alter_primary_key(table_name, new_columns)
- execute "ALTER TABLE #{table_name} DROP CONSTRAINT #{table_name}_pkey"
- execute "ALTER TABLE #{table_name} ADD PRIMARY KEY (#{new_columns.join(',')})"
+ if Hash === options # legacy support, since this param was a string
+ index_type = options[:unique] ? "UNIQUE" : ""
+ index_name = options[:name] || index_name
+ index_method = options[:method] || "BTREE"
+ else
+ index_type = options
end
- def interval_constant(interval)
- "'#{interval}'::interval"
+ quoted_column_names = column_names.map { |e| quote_column_name(e) }
+ if Hash === options and options[:lowercase]
+ quoted_column_names = quoted_column_names.map { |e| "LOWER(#{e})" }
end
+ quoted_column_names = quoted_column_names.join(", ")
- def add_index(table_name, column_name, options = {})
- column_names = Array(column_name)
- index_name = index_name(table_name, :column => column_names)
-
- if Hash === options # legacy support, since this param was a string
- index_type = options[:unique] ? "UNIQUE" : ""
- index_name = options[:name] || index_name
- index_method = options[:method] || "BTREE"
- else
- index_type = options
- end
-
- quoted_column_names = column_names.map { |e| quote_column_name(e) }
- if Hash === options and options[:lowercase]
- quoted_column_names = quoted_column_names.map { |e| "LOWER(#{e})" }
- end
- quoted_column_names = quoted_column_names.join(", ")
-
- execute "CREATE #{index_type} INDEX #{quote_column_name(index_name)} ON #{quote_table_name(table_name)} USING #{index_method} (#{quoted_column_names})"
- end
+ execute "CREATE #{index_type} INDEX #{quote_column_name(index_name)} ON #{quote_table_name(table_name)} USING #{index_method} (#{quoted_column_names})"
end
def rename_index(table_name, old_name, new_name)
require 'rexml/text'
require 'xml/libxml'
require 'digest/md5'
- require 'RMagick'
require 'nokogiri'
+ if defined?(SystemTimer)
+ Timer = SystemTimer
+ else
+ require 'timeout'
+ Timer = Timeout
+ end
+
# The base class for API Errors.
class APIError < RuntimeError
def status
end
def self.IPToCountry(ip_address)
- Timeout::timeout(4) do
+ Timer.timeout(4) do
ipinfo = Quova::IpInfo.new(ip_address)
if ipinfo.status == Quova::Success then
link_count = 0
link_size = 0
- doc = Nokogiri::HTML(text)
+ doc = Nokogiri::HTML(Rinku.auto_link(text, :urls))
if doc.content.length > 0
doc.xpath("//a").each do |link|
module Potlatch2
LOCALES = {
+ "ast" => "ast",
+ "br" => "br",
"de" => "de_DE",
- "de-DE" => "de_DE",
"en" => "en_US",
"en-GB" => "en_GB",
- "en-US" => "en_US",
+ "es" => "es_ES",
+ "fi" => "fi",
"fr" => "fr_FR",
- "fr-FR" => "fr_FR",
+ "he" => "he",
+ "hsb" => "hsb",
"ja" => "ja_JP",
- "ja-JP" => "ja_JP",
+ "mk" => "mk",
+ "ms" => "ms",
+ "nb" => "nb_NO",
+ "nl" => "nl_NL",
+ "nn" => "nn_NO",
+ "no" => "nb_NO",
"pl" => "pl_PL",
- "pl-PL" => "pl_PL",
+ "ru" => "ru",
+ "sq" => "sq",
+ "tr" => "tr",
"vi" => "vi_VN",
- "vi-VN" => "vi_VN"
+ "zh" => "zh_CN"
}
end
-#--
-# Copyright (c) 2006 Nic Williams
+# Copyright (c) 2010 August Lilleaas
#
# Permission is hereby granted, free of charge, to any person obtaining
# a copy of this software and associated documentation files (the
# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-#++
-$:.unshift(File.dirname(__FILE__)) unless
- $:.include?(File.dirname(__FILE__)) || $:.include?(File.expand_path(File.dirname(__FILE__)))
+module SessionPersistence
+ private
-unless defined?(ActiveRecord)
- begin
- require 'active_record'
- rescue LoadError
- require 'rubygems'
- require_gem 'activerecord'
+ # Install filter when we are included
+ def self.included(controller)
+ controller.after_filter :persist_session
end
-end
-require 'composite_primary_keys/fixtures'
-require 'composite_primary_keys/composite_arrays'
-require 'composite_primary_keys/associations'
-require 'composite_primary_keys/association_preload'
-require 'composite_primary_keys/reflection'
-require 'composite_primary_keys/base'
-require 'composite_primary_keys/calculations'
-require 'composite_primary_keys/migration'
-require 'composite_primary_keys/attribute_methods'
+ # Override this method if you don't want to use session[:_remember_for].
+ def session_persistence_key
+ :_remember_for
+ end
-ActiveRecord::Base.class_eval do
- include CompositePrimaryKeys::ActiveRecord::Base
-end
+ # Persist the session.
+ #
+ # session_expires_after 1.hour
+ # session_expires_after 2.weeks
+ def session_expires_after(seconds)
+ session[session_persistence_key] = seconds
+ end
+
+ # Expire the session.
+ def session_expires_automatically
+ session.delete(session_persistence_key)
+ request.session_options[:renew] = true
+ end
-Dir[File.dirname(__FILE__) + '/composite_primary_keys/connection_adapters/*.rb'].each do |adapter|
- begin
- require adapter.gsub('.rb','')
- rescue MissingSourceFile
+ # Filter callback
+ def persist_session
+ if session[session_persistence_key]
+ request.session_options[:expire_after] = session[session_persistence_key]
+ end
end
end
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<body>
- <img src="http://www.openstreetmap.org/images/osm_logo.png" style="float:left; margin:10px">
+ <img src="/assets/osm_logo.png" style="float:left; margin:10px">
<div style="float:left;">
<h1>Forbidden</h1>
<p>The operation you requested on the OpenStreetMap server is only available to administrators (HTTP 403)</p>
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<body>
- <img src="http://www.openstreetmap.org/images/osm_logo.png" style="float:left; margin:10px">
+ <img src="/assets/osm_logo.png" style="float:left; margin:10px">
<div style="float:left;">
<h1>File not found</h1>
<p>Couldn't find a file/directory/API operation by that name on the OpenStreetMap server (HTTP 404)</p>
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<body>
- <img src="http://www.openstreetmap.org/images/osm_logo.png" style="float:left; margin:10px">
+ <img src="/assets/osm_logo.png" style="float:left; margin:10px">
<div style="float:left;">
<h1>Application error</h1>
<p>The OpenStreetMap server encountered an unexpected condition that prevented it from fulfilling the request (HTTP 500)</p>
</feature>
- <feature name="Sports centre">
- <category>buildings</category>
- <icon image="features/pois/sport_leisure_centre.n.24.png">
- <b>${name} ${addr:housename}</b><br/>
- ${addr:housenumber} ${addr:street} ${addr:postcode}
- </icon>
-
- <area/>
- <point/>
- <tag k="leisure" v="sports_centre"/>
- <inputSet ref="names"/>
- <inputSet ref="buildingAddress"/>
- <inputSet ref="pitchSport"/>
- <inputSet ref="isBuilding"/>
- <inputSet ref="common"/>
- </feature>
-
-
<!-- Generic building. Should be last in the entire xml chain -->
<!-- When user changes feature to some amenity, building tag is cleared. This should not be. -->
<feature name="Building">
<inputSet ref="common"/>
</feature>
+ <feature name="Sports centre">
+ <category>sport</category>
+ <icon image="features/pois/sport_leisure_centre.n.24.png">
+ <b>${name} ${addr:housename}</b><br/>
+ ${addr:housenumber} ${addr:street} ${addr:postcode}
+ </icon>
+
+ <area/>
+ <point/>
+ <tag k="leisure" v="sports_centre"/>
+ <inputSet ref="names"/>
+ <inputSet ref="buildingAddress"/>
+ <inputSet ref="pitchSport"/>
+ <inputSet ref="isBuilding"/>
+ <inputSet ref="common"/>
+ </feature>
+
+
<!-- **************** Agriculture *************** -->
<feature name="Farm">
<category>agriculture</category>
<feature name="Forest">
<category>natural</category>
- <icon image="/features/pois/landuse_coniferous.n.24.png"/>
+ <icon image="features/pois/landuse_coniferous.n.24.png"/>
<area/>
<tag k="landuse" v="forest"/>
<tag k="landuse" v="meadow"/>
<inputSet ref="common"/>
</feature>
-</featureGroup>
\ No newline at end of file
+</featureGroup>
way[highway=proposed] { color: #88ffff; width: 6; dashes: 8, 4; }
way[highway=construction] { color: #ffffbb; width: 6; dashes: 8, 4; casing-color: #0000aa; casing-width: 1; casing-dashes: 8,4;}
-way[construction=rail] { z-index: 6; color: black; width: 5; dashes: 6, 6, 4, 8;}
-way[construction=rail]::inner { z-index: 7; color: white; width: 3; dashes: 6,18; }
/* Railways */
way[railway=rail] { z-index: 6; color: black; width: 5; }
way[railway=rail]::dashes { z-index: 7; color: white; width: 3; dashes: 12,12; }
+way[construction=rail] { z-index: 6; color: black; width: 5; dashes: 6, 6, 4, 8;}
+way[construction=rail]::inner { z-index: 7; color: white; width: 3; dashes: 6,18; }
+
way[railway=platform] { color:black; width: 2; }
way[railway=subway] { z-index: 6; color: #444444; width: 5; }
way[railway=subway]::dashes { z-index: 7; color: white; width: 3; dashes: 8,8; }
+way[construction=subway] { z-index: 6; color: #444444; width: 5; dashes: 4, 4; }
+way[construction=subway]::dashes { z-index: 7; color: white; width: 3; dashes: 4,12;}
+
way[railway=disused],way[railway=abandoned] { z-index: 6; color: #444400; width: 3; dashes: 17, 2, 5, 0; }
way[railway=disused]::dashes,way[railway=abandoned]::dashes { z-index: 7; color: #999999; width: 2; dashes: 12,12; }
+way[railway=tram] { z-index: 11; color: #999999; width: 2; casing-color: black; casing-width: 2; }
+way[construction=tram] { z-index: 11; color: #999999; width: 2; casing-color: black; casing-width: 2; dashes: 6, 6; casing-dashes: 6, 6; }
+
+way[railway=light_rail] { z-index: 6; color: black; width: 4; }
+way[railway=light_rail]::dashes { z-index: 7; color: #999999; width: 2; dashes: 8,4; }
+
+way[construction=light_rail] { z-index: 6; color: black; width: 4; dashes: 8, 4, 4, 4; }
+way[construction=light_rail]::dashes { z-index: 7; color: #999999; width: 2; dashes: 8,12; }
+
/* Waterways */
way[waterway=river],
*/
-way :hover { z-index: 2; width: 1; color: yellow; }
-way :selected { z-index: 2; width: 2; color: yellow; }
-way !:drawn { z-index:10; width: 1; color: black; }
-
-node :selectedway { z-index: 8; icon-image: square; icon-width: 6; color: green; }
-node :hoverway { z-index: 9; icon-image: square; icon-width: 6; color: blue; }
-node :selected { z-index: 9; icon-image: square; icon-width: 6; color: red; casing-color: black; casing-width: 1; }
-node !:drawn :poi { z-index: 2; icon-image: square; icon-width: 4; color: green; casing-color: black; casing-width: 1; }
-node !:drawn :hasTags { z-index: 9; icon-image: circle; icon-width: 3; color: black; }
-node :hasTags :selectedway { z-index: 9; icon-image: square; icon-width: 8; color: black; layer: 5; }
-
-way[_status=incomplete]::statushighlight { z-index: 0; width: 10; color: #d95f02; }
-way[_status=complete]::statushighlight { z-index: 0; width: 10; color: #1b9e77; opacity: 0.4; }
-node[_status=incomplete]::statushighlight :hasTags { z-index: 0; icon-image: square; icon-width: 10; color: #d95f02; }
-node[_status=complete]::statushighlight :hasTags { z-index: 0; icon-image: square; icon-width: 10; color: #1b9e77; opacity: 0.4; }
+way :hover { z-index: 2; width: 14; color: yellow; linecap: round; }
+way :selected { z-index: 2; width: 14; color: yellow; linecap: round; }
+way !:drawn { z-index: 1; width: 14; color: #444444; linecap: round; }
+
+node :selectedway { z-index: 8; icon-image: circle; icon-width: 8; color: green; }
+node :hoverway { z-index: 9; icon-image: circle; icon-width: 8; color: blue; }
+node :selected { z-index: 9; icon-image: circle; icon-width: 8; color: red; casing-color: black; casing-width: 1; }
+node !:drawn :poi { z-index: 6; icon-image: circle; icon-width: 8; color: green; casing-color: black; casing-width: 1; }
+node !:drawn :hasTags { z-index: 9; icon-image: circle; icon-width: 8; color: black; }
+node :hasTags :selectedway { z-index: 9; icon-image: circle; icon-width: 8; color: black; }
+
+way[_status=incomplete]::statushighlight { z-index: 0; width: 20; color: #d95f02; linecap: round; }
+way[_status=complete]::statushighlight { z-index: 0; width: 18; color: #1b9e77; opacity: 0.4; linecap: round; }
+way[_status=complete] { opacity: 0.7; }
+node[_status=incomplete]::statushighlight :hasTags { z-index: 5; icon-image: circle; icon-width: 12; color: #d95f02; }
+node[_status=complete]::statushighlight :hasTags { z-index: 5; icon-image: circle; icon-width: 10; color: #1b9e77; opacity: 0.4; }
+node[_status=complete] { opacity: 0.7; }
if mail.multipart?
body = mail.html_part || mail.text_part
else
- body = mail.body
+ body = mail
end
-message = Message.new(:sender => from, :recipient => to,
- :sent_on => mail.date.new_offset(0),
- :title => mail.subject.sub(/\[OpenStreetMap\] */, ""),
- :body => body.decoded)
+message = Message.new({
+ :sender => from,
+ :recipient => to,
+ :sent_on => mail.date.new_offset(0),
+ :title => mail.subject.sub(/\[OpenStreetMap\] */, ""),
+ :body => body.decoded
+}, :without_protection => true)
message.save!
Notifier.message_notification(message).deliver
)
addresses.each do |address,count|
- if count > 2
+ if count > 1
acl = Acl.find(:first, :conditions => {
:address => address,
- :netmask => "255.255.255.255"
})
unless acl
Acl.create(
:address => address,
- :netmask => "255.255.255.255",
:k => "no_account_creation",
:v => "auto_spam_block"
)
end
acls = Acl.find(:all, :conditions => {
- :netmask => "255.255.255.255",
:k => "no_account_creation",
:v => "auto_spam_block"
})
body: Some comment text
created_at: "2008-11-08 09:45:34"
updated_at: "2008-11-08 10:34:34"
+
+comment_by_suspended_user:
+ id: 2
+ diary_entry_id: 2
+ user_id: 10
+ body: Some comment text
+ created_at: "2008-11-08 09:45:34"
+ updated_at: "2008-11-08 10:34:34"
+
+comment_by_deleted_user:
+ id: 3
+ diary_entry_id: 2
+ user_id: 11
+ body: Some comment text
+ created_at: "2008-11-08 09:45:34"
+ updated_at: "2008-11-08 10:34:34"
latitude:
longitude:
language_code: en
-
+ visible: true
+
normal_user_geo_entry:
id: 2
user_id: 1
latitude: 51.50763
longitude: -0.10781
language_code: de
+ visible: true
+
+deleted_entry:
+
+ id: 3
+ user_id: 1
+ title: Deleted Entry 1
+ body: This is the body of a deleted diary entry.
+ created_at: "2008-11-07 17:43:34"
+ updated_at: "2008-11-07 17:43:34"
+ latitude:
+ longitude:
+ language_code: en
+ visible: false
pass_crypt: <%= Digest::MD5.hexdigest('test') %>
creation_time: "2007-01-01 00:00:00"
display_name: TEST
- data_public: false
+ data_public: true
+ description: test
+ terms_agreed: "2010-01-01 11:22:33"
+ terms_seen: true
+ languages: en
+
+suspended_user:
+ id: 10
+ email: suspended@openstreetmap.org
+ status: suspended
+ pass_crypt: <%= Digest::MD5.hexdigest('test') %>
+ creation_time: "2007-01-01 00:00:00"
+ display_name: suspended
+ data_public: true
+ description: test
+ terms_agreed: "2010-01-01 11:22:33"
+ terms_seen: true
+ languages: en
+
+deleted_user:
+ id: 11
+ email: deleted@openstreetmap.org
+ status: deleted
+ pass_crypt: <%= Digest::MD5.hexdigest('test') %>
+ creation_time: "2007-01-01 00:00:00"
+ display_name: deleted
+ data_public: true
+ description: test
+ terms_agreed: "2010-01-01 11:22:33"
+ terms_seen: true
+ languages: en
+
+confirmed_user:
+ id: 12
+ email: confirmed@openstreetmap.org
+ status: confirmed
+ pass_crypt: <%= Digest::MD5.hexdigest('test') %>
+ creation_time: "2007-01-01 00:00:00"
+ display_name: confirmed
+ data_public: true
description: test
terms_agreed: "2010-01-01 11:22:33"
terms_seen: true
current_ways(:used_way).id
]
found_way_ids = ways_xml.find("//osm/way").collect { |w| w["id"].to_i }
- assert_equal expected_way_ids, found_way_ids,
+ assert_equal expected_way_ids.sort, found_way_ids.sort,
"expected ways for node #{current_nodes(:used_node_1).id} did not match found"
# check the full ways to ensure we're not missing anything
assert_response :success
# now block the user
- UserBlock.create(:user_id => blocked_user.id,
- :creator_id => users(:moderator_user).id,
- :reason => "testing",
- :ends_at => Time.now.getutc + 5.minutes)
+ UserBlock.create({
+ :user_id => blocked_user.id,
+ :creator_id => users(:moderator_user).id,
+ :reason => "testing",
+ :ends_at => Time.now.getutc + 5.minutes
+ }, :without_protection => true)
get "/api/#{API_VERSION}/user/details", nil, auth_header(blocked_user.display_name, "test")
assert_response :forbidden
end
blocked_user = users(:public_user)
moderator = users(:moderator_user)
- block = UserBlock.create(:user_id => blocked_user.id,
- :creator_id => moderator.id,
- :reason => "testing",
- :ends_at => Time.now.getutc + 5.minutes)
+ block = UserBlock.create({
+ :user_id => blocked_user.id,
+ :creator_id => moderator.id,
+ :reason => "testing",
+ :ends_at => Time.now.getutc + 5.minutes
+ }, :without_protection => true)
get "/api/#{API_VERSION}/user/details", nil, auth_header(blocked_user.display_name, "test")
assert_response :forbidden
fixtures :diary_comments
def test_diary_comment_count
- assert_equal 1, DiaryComment.count
+ assert_equal 3, DiaryComment.count
end
-
end
class DiaryEntryTest < ActiveSupport::TestCase
api_fixtures
- fixtures :diary_entries, :languages
+ fixtures :diary_entries, :diary_comments, :languages
def test_diary_entry_count
- assert_equal 2, DiaryEntry.count
+ assert_equal 3, DiaryEntry.count
end
def test_diary_entry_validations
diary_entry_valid({:longitude => -180})
diary_entry_valid({:longitude => -180.00001}, false)
end
+
+ def test_diary_entry_visible
+ assert_equal 2, DiaryEntry.visible.count
+ assert_raise ActiveRecord::RecordNotFound do
+ DiaryEntry.visible.find(diary_entries(:deleted_entry).id)
+ end
+ end
+
+ def test_diary_entry_comments
+ assert_equal 0, diary_entries(:normal_user_entry_1).comments.count
+ assert_equal 3, diary_entries(:normal_user_geo_entry).comments.count
+ end
+ def test_diary_entry_visible_comments
+ assert_equal 0, diary_entries(:normal_user_entry_1).visible_comments.count
+ assert_equal 1, diary_entries(:normal_user_geo_entry).visible_comments.count
+ end
+
+private
+
def diary_entry_valid(attrs, result = true)
- entry = DiaryEntry.new(diary_entries(:normal_user_entry_1).attributes)
- entry.attributes = attrs
+ entry = DiaryEntry.new(diary_entries(:normal_user_entry_1).attributes, :without_protection => true)
+ entry.assign_attributes(attrs, :without_protection => true)
assert_equal result, entry.valid?, "Expected #{attrs.inspect} to be #{result}"
end
end
--- /dev/null
+require File.dirname(__FILE__) + '/../test_helper'
+
+class I18nTest < ActiveSupport::TestCase
+ I18n.available_locales.each do |locale|
+ define_method("test_#{locale.to_s.underscore}".to_sym) do
+ plural_keys = plural_keys(locale)
+
+ translation_keys.each do |key|
+ variables = []
+
+ default_value = I18n.t(key, :locale => I18n.default_locale)
+
+ if default_value.is_a?(Hash)
+ variables.push("count")
+
+ default_value.each do |subkey,subvalue|
+ subvalue.scan(/%\{(\w+)\}/) do
+ variables.push($1)
+ end
+ end
+ else
+ default_value.scan(/%\{(\w+)\}/) do
+ variables.push($1)
+ end
+ end
+
+ value = I18n.t(key, :locale => locale, :fallback => true)
+
+ if value.is_a?(Hash)
+ value.each do |subkey,subvalue|
+# assert plural_keys.include?(subkey), "#{key}.#{subkey} is not a valid plural key"
+
+ subvalue.scan(/%\{(\w+)\}/) do
+ assert variables.include?($1), "#{key}.#{subkey} uses unknown interpolation variable #{$1}"
+ end
+ end
+ else
+ assert value.is_a?(String), "#{key} is not a string"
+
+ value.scan(/%\{(\w+)\}/) do
+ assert variables.include?($1), "#{key} uses unknown interpolation variable #{$1}"
+ end
+ end
+ end
+ end
+ end
+private
+ def translation_keys(scope = nil)
+ plural_keys = plural_keys(I18n.default_locale)
+
+ I18n.t(scope || ".", :locale => I18n.default_locale).map do |key,value|
+ scoped_key = scope ? "#{scope}.#{key}" : key
+
+ if value.kind_of?(Hash)
+ if value.keys - plural_keys == []
+ scoped_key
+ else
+ translation_keys(scoped_key)
+ end
+ elsif value.kind_of?(String)
+ scoped_key
+ end
+ end.flatten
+ end
+
+ def plural_keys(locale)
+ I18n.t("i18n.plural.keys", :locale => locale, :raise => true) + [ :zero ]
+ rescue I18n::MissingTranslationData
+ [ :zero, :one, :other ]
+ end
+end
# Check that you can create a node and store it
def test_create
- node_template = Node.new(:latitude => 12.3456,
- :longitude => 65.4321,
- :changeset_id => changesets(:normal_user_first_change).id,
- :visible => 1,
- :version => 1)
+ node_template = Node.new({
+ :latitude => 12.3456,
+ :longitude => 65.4321,
+ :changeset_id => changesets(:normal_user_first_change).id,
+ :visible => 1,
+ :version => 1
+ }, :without_protection => true)
assert node_template.create_with_history(users(:normal_user))
node = Node.find(node_template.id)
##
# check that an authorized token is authorised and can be invalidated
def test_token_authorisation
- tok = RequestToken.create :client_application => client_applications(:oauth_web_app)
+ tok = RequestToken.create({
+ :client_application => client_applications(:oauth_web_app)
+ }, :without_protection => true)
assert_equal false, tok.authorized?, "Token should be created unauthorised."
tok.authorize!(users(:public_user))
assert_equal true, tok.authorized?, "Token should now be authorised."
def test_trace_count
assert_equal 5, Trace.count
end
-
+
+ def test_visible
+ check_query(Trace.visible, :public_trace_file, :anon_trace_file, :trackable_trace_file, :identifiable_trace_file)
+ end
+
+ def test_visible_to
+ check_query(Trace.visible_to(1), :public_trace_file, :identifiable_trace_file)
+ check_query(Trace.visible_to(2), :public_trace_file, :anon_trace_file, :trackable_trace_file, :identifiable_trace_file)
+ check_query(Trace.visible_to(3), :public_trace_file, :identifiable_trace_file)
+ end
+
+ def test_public
+ check_query(Trace.public, :public_trace_file, :identifiable_trace_file, :deleted_trace_file)
+ end
+
+ def test_validations
+ trace_valid({})
+ trace_valid({:user_id => nil}, false)
+ trace_valid({:name => 'a'*255})
+ trace_valid({:name => 'a'*256}, false)
+ trace_valid({:description => nil}, false)
+ trace_valid({:description => 'a'*255})
+ trace_valid({:description => 'a'*256}, false)
+ trace_valid({:visibility => "private"})
+ trace_valid({:visibility => "public"})
+ trace_valid({:visibility => "trackable"})
+ trace_valid({:visibility => "identifiable"})
+ trace_valid({:visibility => "foo"}, false)
+ end
+
+ def test_tagstring
+ trace = Trace.new
+ trace.tagstring = "foo bar baz"
+ assert_equal 3, trace.tags.length
+ assert_equal "foo", trace.tags[0].tag
+ assert_equal "bar", trace.tags[1].tag
+ assert_equal "baz", trace.tags[2].tag
+ assert_equal "foo, bar, baz", trace.tagstring
+ trace.tagstring = "foo, bar baz ,qux"
+ assert_equal 3, trace.tags.length
+ assert_equal "foo", trace.tags[0].tag
+ assert_equal "bar baz", trace.tags[1].tag
+ assert_equal "qux", trace.tags[2].tag
+ assert_equal "foo, bar baz, qux", trace.tagstring
+ end
+
+ def test_public?
+ assert_equal true, gpx_files(:public_trace_file).public?
+ assert_equal false, gpx_files(:anon_trace_file).public?
+ assert_equal false, gpx_files(:trackable_trace_file).public?
+ assert_equal true, gpx_files(:identifiable_trace_file).public?
+ assert_equal true, gpx_files(:deleted_trace_file).public?
+ end
+
+ def test_trackable?
+ assert_equal false, gpx_files(:public_trace_file).trackable?
+ assert_equal false, gpx_files(:anon_trace_file).trackable?
+ assert_equal true, gpx_files(:trackable_trace_file).trackable?
+ assert_equal true, gpx_files(:identifiable_trace_file).trackable?
+ assert_equal false, gpx_files(:deleted_trace_file).trackable?
+ end
+
+ def test_identifiable?
+ assert_equal false, gpx_files(:public_trace_file).identifiable?
+ assert_equal false, gpx_files(:anon_trace_file).identifiable?
+ assert_equal false, gpx_files(:trackable_trace_file).identifiable?
+ assert_equal true, gpx_files(:identifiable_trace_file).identifiable?
+ assert_equal false, gpx_files(:deleted_trace_file).identifiable?
+ end
+
+private
+
+ def check_query(query, *traces)
+ traces = traces.map { |t| gpx_files(t) }.sort
+ assert_equal traces, query.order(:id)
+ end
+
+ def trace_valid(attrs, result = true)
+ entry = Trace.new(gpx_files(:public_trace_file).attributes, :without_protection => true)
+ entry.assign_attributes(attrs, :without_protection => true)
+ assert_equal result, entry.valid?, "Expected #{attrs.inspect} to be #{result}"
+ end
end
def test_tracetag_count
assert_equal 1, Tracetag.count
end
-
+
+ def test_validations
+ tracetag_valid({})
+ tracetag_valid({:tag => nil}, false)
+ tracetag_valid({:tag => ''}, false)
+ tracetag_valid({:tag => 'a'})
+ tracetag_valid({:tag => 'a'*255})
+ tracetag_valid({:tag => 'a'*256}, false)
+ tracetag_valid({:tag => 'a/b'}, false)
+ tracetag_valid({:tag => 'a;b'}, false)
+ tracetag_valid({:tag => 'a.b'}, false)
+ tracetag_valid({:tag => 'a,b'}, false)
+ tracetag_valid({:tag => 'a?b'}, false)
+ end
+
+private
+
+ def tracetag_valid(attrs, result = true)
+ entry = Tracetag.new(gpx_file_tags(:first_trace_1).attributes, :without_protection => true)
+ entry.assign_attributes(attrs, :without_protection => true)
+ assert_equal result, entry.valid?, "Expected #{attrs.inspect} to be #{result}"
+ end
end
class UserTest < ActiveSupport::TestCase
api_fixtures
- fixtures :friends
+ fixtures :friends, :languages, :user_roles
def test_invalid_with_empty_attributes
user = User.new
end
def test_unique_email
- new_user = User.new(:email => users(:normal_user).email,
+ new_user = User.new({
+ :email => users(:normal_user).email,
:status => "active",
:pass_crypt => Digest::MD5.hexdigest('test'),
:display_name => "new user",
:data_public => 1,
- :description => "desc")
+ :description => "desc"
+ }, :without_protection => true)
assert !new_user.save
assert new_user.errors[:email].include?("has already been taken")
end
def test_unique_display_name
- new_user = User.new(:email => "tester@openstreetmap.org",
+ new_user = User.new({
+ :email => "tester@openstreetmap.org",
:status => "pending",
:pass_crypt => Digest::MD5.hexdigest('test'),
:display_name => users(:normal_user).display_name,
:data_public => 1,
- :description => "desc")
+ :description => "desc"
+ }, :without_protection => true)
assert !new_user.save
assert new_user.errors[:display_name].include?("has already been taken")
end
user.preferred_editor = "invalid_editor"
assert_raise(ActiveRecord::RecordInvalid) { user.save! }
end
+
+ def test_visible
+ assert_equal 10, User.visible.count
+ assert_raise ActiveRecord::RecordNotFound do
+ User.visible.find(users(:suspended_user).id)
+ end
+ assert_raise ActiveRecord::RecordNotFound do
+ User.visible.find(users(:deleted_user).id)
+ end
+ end
+
+ def test_active
+ assert_equal 9, User.active.count
+ assert_raise ActiveRecord::RecordNotFound do
+ User.active.find(users(:inactive_user).id)
+ end
+ assert_raise ActiveRecord::RecordNotFound do
+ User.active.find(users(:suspended_user).id)
+ end
+ assert_raise ActiveRecord::RecordNotFound do
+ User.active.find(users(:deleted_user).id)
+ end
+ end
+
+ def test_public
+ assert_equal 11, User.public.count
+ assert_raise ActiveRecord::RecordNotFound do
+ User.public.find(users(:normal_user).id)
+ end
+ end
+
+ def test_languages
+ user = users(:normal_user)
+ assert_equal [ "en" ], user.languages
+ user.languages = [ "de", "fr", "en" ]
+ assert_equal [ "de", "fr", "en" ], user.languages
+ user.languages = [ "fr", "de", "sl" ]
+ assert_equal "de", user.preferred_language
+ assert_equal "de", user.preferred_language_from(["en", "sl", "de", "es"])
+ end
+
+ def test_visible?
+ assert_equal true, users(:inactive_user).visible?
+ assert_equal true, users(:normal_user).visible?
+ assert_equal true, users(:confirmed_user).visible?
+ assert_equal false, users(:suspended_user).visible?
+ assert_equal false, users(:deleted_user).visible?
+ end
+
+ def test_active?
+ assert_equal false, users(:inactive_user).active?
+ assert_equal true, users(:normal_user).active?
+ assert_equal true, users(:confirmed_user).active?
+ assert_equal false, users(:suspended_user).active?
+ assert_equal false, users(:deleted_user).active?
+ end
+
+ def test_moderator?
+ assert_equal false, users(:normal_user).moderator?
+ assert_equal true, users(:moderator_user).moderator?
+ end
+
+ def test_administrator?
+ assert_equal false, users(:normal_user).administrator?
+ assert_equal true, users(:administrator_user).administrator?
+ end
+
+ def test_has_role?
+ assert_equal false, users(:normal_user).has_role?("administrator")
+ assert_equal false, users(:normal_user).has_role?("moderator")
+ assert_equal true, users(:administrator_user).has_role?("administrator")
+ assert_equal true, users(:moderator_user).has_role?("moderator")
+ end
+
+ def test_delete
+ user = users(:normal_user)
+ user.delete
+ assert_equal "user_#{user.id}", user.display_name
+ assert_blank user.description
+ assert_equal nil, user.home_lat
+ assert_equal nil, user.home_lon
+ assert_equal false, user.image.file?
+ assert_equal "deleted", user.status
+ assert_equal false, user.visible?
+ assert_equal false, user.active?
+ end
end
+++ /dev/null
---- !ruby/object:Gem::Specification
-name: composite_primary_keys
-version: !ruby/object:Gem::Version
- version: 2.2.2
-platform: ruby
-authors:
-- Dr Nic Williams
-autorequire:
-bindir: bin
-cert_chain: []
-
-date: 2009-01-24 00:00:00 +00:00
-default_executable:
-dependencies:
-- !ruby/object:Gem::Dependency
- name: activerecord
- type: :runtime
- version_requirement:
- version_requirements: !ruby/object:Gem::Requirement
- requirements:
- - - ">="
- - !ruby/object:Gem::Version
- version: 2.2.0
- version:
-- !ruby/object:Gem::Dependency
- name: hoe
- type: :development
- version_requirement:
- version_requirements: !ruby/object:Gem::Requirement
- requirements:
- - - ">="
- - !ruby/object:Gem::Version
- version: 1.8.3
- version:
-description: Composite key support for ActiveRecords
-email: drnicwilliams@gmail.com
-executables: []
-
-extensions: []
-
-extra_rdoc_files:
-- History.txt
-- Manifest.txt
-- README.txt
-- README_DB2.txt
-- test/README_tests.txt
-- website/index.txt
-- website/version-raw.txt
-- website/version.txt
-files:
-- History.txt
-- Manifest.txt
-- README.txt
-- README_DB2.txt
-- Rakefile
-- init.rb
-- install.rb
-- lib/adapter_helper/base.rb
-- lib/adapter_helper/mysql.rb
-- lib/adapter_helper/oracle.rb
-- lib/adapter_helper/postgresql.rb
-- lib/adapter_helper/sqlite3.rb
-- lib/composite_primary_keys.rb
-- lib/composite_primary_keys/association_preload.rb
-- lib/composite_primary_keys/associations.rb
-- lib/composite_primary_keys/attribute_methods.rb
-- lib/composite_primary_keys/base.rb
-- lib/composite_primary_keys/calculations.rb
-- lib/composite_primary_keys/composite_arrays.rb
-- lib/composite_primary_keys/connection_adapters/ibm_db_adapter.rb
-- lib/composite_primary_keys/connection_adapters/oracle_adapter.rb
-- lib/composite_primary_keys/connection_adapters/postgresql_adapter.rb
-- lib/composite_primary_keys/connection_adapters/sqlite3_adapter.rb
-- lib/composite_primary_keys/fixtures.rb
-- lib/composite_primary_keys/migration.rb
-- lib/composite_primary_keys/reflection.rb
-- lib/composite_primary_keys/version.rb
-- loader.rb
-- local/database_connections.rb.sample
-- local/paths.rb.sample
-- local/tasks.rb.sample
-- scripts/console.rb
-- scripts/txt2html
-- scripts/txt2js
-- tasks/activerecord_selection.rake
-- tasks/databases.rake
-- tasks/databases/mysql.rake
-- tasks/databases/oracle.rake
-- tasks/databases/postgresql.rake
-- tasks/databases/sqlite3.rake
-- tasks/deployment.rake
-- tasks/local_setup.rake
-- tasks/website.rake
-- test/README_tests.txt
-- test/abstract_unit.rb
-- test/connections/native_ibm_db/connection.rb
-- test/connections/native_mysql/connection.rb
-- test/connections/native_oracle/connection.rb
-- test/connections/native_postgresql/connection.rb
-- test/connections/native_sqlite/connection.rb
-- test/fixtures/article.rb
-- test/fixtures/articles.yml
-- test/fixtures/comment.rb
-- test/fixtures/comments.yml
-- test/fixtures/db_definitions/db2-create-tables.sql
-- test/fixtures/db_definitions/db2-drop-tables.sql
-- test/fixtures/db_definitions/mysql.sql
-- test/fixtures/db_definitions/oracle.drop.sql
-- test/fixtures/db_definitions/oracle.sql
-- test/fixtures/db_definitions/postgresql.sql
-- test/fixtures/db_definitions/sqlite.sql
-- test/fixtures/department.rb
-- test/fixtures/departments.yml
-- test/fixtures/employee.rb
-- test/fixtures/employees.yml
-- test/fixtures/group.rb
-- test/fixtures/groups.yml
-- test/fixtures/hack.rb
-- test/fixtures/hacks.yml
-- test/fixtures/membership.rb
-- test/fixtures/membership_status.rb
-- test/fixtures/membership_statuses.yml
-- test/fixtures/memberships.yml
-- test/fixtures/product.rb
-- test/fixtures/product_tariff.rb
-- test/fixtures/product_tariffs.yml
-- test/fixtures/products.yml
-- test/fixtures/reading.rb
-- test/fixtures/readings.yml
-- test/fixtures/reference_code.rb
-- test/fixtures/reference_codes.yml
-- test/fixtures/reference_type.rb
-- test/fixtures/reference_types.yml
-- test/fixtures/street.rb
-- test/fixtures/streets.yml
-- test/fixtures/suburb.rb
-- test/fixtures/suburbs.yml
-- test/fixtures/tariff.rb
-- test/fixtures/tariffs.yml
-- test/fixtures/user.rb
-- test/fixtures/users.yml
-- test/hash_tricks.rb
-- test/plugins/pagination.rb
-- test/plugins/pagination_helper.rb
-- test/test_associations.rb
-- test/test_attribute_methods.rb
-- test/test_attributes.rb
-- test/test_clone.rb
-- test/test_composite_arrays.rb
-- test/test_create.rb
-- test/test_delete.rb
-- test/test_dummy.rb
-- test/test_exists.rb
-- test/test_find.rb
-- test/test_ids.rb
-- test/test_miscellaneous.rb
-- test/test_pagination.rb
-- test/test_polymorphic.rb
-- test/test_santiago.rb
-- test/test_tutorial_examle.rb
-- test/test_update.rb
-- tmp/test.db
-- website/index.html
-- website/index.txt
-- website/javascripts/rounded_corners_lite.inc.js
-- website/stylesheets/screen.css
-- website/template.js
-- website/template.rhtml
-- website/version-raw.js
-- website/version-raw.txt
-- website/version.js
-- website/version.txt
-has_rdoc: true
-homepage: http://compositekeys.rubyforge.org
-post_install_message:
-rdoc_options:
-- --main
-- README.txt
-require_paths:
-- lib
-required_ruby_version: !ruby/object:Gem::Requirement
- requirements:
- - - ">="
- - !ruby/object:Gem::Version
- version: "0"
- version:
-required_rubygems_version: !ruby/object:Gem::Requirement
- requirements:
- - - ">="
- - !ruby/object:Gem::Version
- version: "0"
- version:
-requirements: []
-
-rubyforge_project: compositekeys
-rubygems_version: 1.3.1
-signing_key:
-specification_version: 2
-summary: Composite key support for ActiveRecords
-test_files:
-- test/test_associations.rb
-- test/test_attribute_methods.rb
-- test/test_attributes.rb
-- test/test_clone.rb
-- test/test_composite_arrays.rb
-- test/test_create.rb
-- test/test_delete.rb
-- test/test_dummy.rb
-- test/test_exists.rb
-- test/test_find.rb
-- test/test_ids.rb
-- test/test_miscellaneous.rb
-- test/test_pagination.rb
-- test/test_polymorphic.rb
-- test/test_santiago.rb
-- test/test_tutorial_examle.rb
-- test/test_update.rb
+++ /dev/null
-== 2.2.1 2009-01-21
-
-* fix ActiveRecord#exists? to work when passing conditions instead of ids
-
-== 2.2.0 2008-10-29
-
-* Rails 2.2.0 compatibility
-
-== 1.1.0 2008-10-29
-
-* fixes to get cpk working for Rails 2.1.2
-
-== 1.0.10 2008-10-22
-
-* add composite key where clause creator method [timurv]
-
-== 1.0.9 2008-09-08
-
-* fix postgres tests
-* fix for delete_records when has_many association has composite keys [darxriggs]
-* more consistent table/column name quoting [pbrant]
-
-== 1.0.8 2008-08-27
-
-* fix has_many :through for non composite models [thx rcarver]
-
-== 1.0.7 2008-08-12
-
-* fix for the last fix -- when has_many is composite and belongs_to is single
-
-== 1.0.6 2008-08-06
-
-* fix associations create
-
-== 1.0.5 2008-07-25
-
-* fix for calculations with a group by clause [thx Sirius Black]
-
-== 1.0.4 2008-07-15
-
-* support for oracle_enhanced adapter [thx Raimonds Simanovskis]
-
-== 1.0.3 2008-07-13
-
-* more fixes and tests for has many through [thx Menno van der Sman]
-
-== 1.0.2 2008-06-07
-
-* fix for has many through when through association has composite keys
-
-== 1.0.1 2008-06-06
-
-* Oracle fixes
-
-== 1.0.0 2008-06-05
-
-* Support for Rails 2.1
-
-== 0.9.93 2008-06-01
-
-* set fixed dependency on activerecord 2.0.2
-
-== 0.9.92 2008-02-22
-
-* Support for has_and_belongs_to_many
-
-== 0.9.91 2008-01-27
-
-* Incremented activerecord dependency to 2.0.2 [thx emmanuel.pirsch]
-
-== 0.9.90 2008-01-27
-
-* Trial release for rails/activerecord 2.0.2 supported
-
-== 0.9.1 2007-10-28
-
-* Migrations fix - allow :primary_key => [:name] to work [no unit test] [thx Shugo Maeda]
-
-== 0.9.0 2007-09-28
-
-* Added support for polymorphs [thx nerdrew]
-* init.rb file so gem can be installed as a plugin for Rails [thx nerdrew]
-* Added ibm_db support [thx K Venkatasubramaniyan]
-* Support for cleaning dependents [thx K Venkatasubramaniyan]
-* Rafactored db rake tasks into namespaces
-* Added namespaced tests (e.g. mysql:test for test_mysql)
-
-== 0.8.6 / 2007-6-12
-
-* 1 emergency fix due to Rails Core change
- * Rails v7004 removed #quote; fixed with connection.quote_column_name [thx nerdrew]
-
-== 0.8.5 / 2007-6-5
-
-* 1 change due to Rails Core change
- * Can no longer use RAILS_CONNECTION_ADAPTERS from Rails core
-* 7 dev improvement:
- * Changed History.txt syntax to rdoc format
- * Added deploy tasks
- * Removed CHANGELOG + migrated into History.txt
- * Changed PKG_NAME -> GEM_NAME in Rakefile
- * Renamed README -> README.txt for :publish_docs task
- * Added :check_version task
- * VER => VERS in rakefile
-* 1 website improvement:
- * website/index.txt includes link to "8 steps to fix other ppls code"
-
-== 0.8.4 / 2007-5-3
-
-* 1 bugfix
- * Corrected ids_list => ids in the exception message. That'll teach me for not adding unit tests before fixing bugs.
-
-== 0.8.3 / 2007-5-3
-
-* 1 bugfix
- * Explicit reference to ::ActiveRecord::RecordNotFound
-* 1 website addition:
- * Added routing help [Pete Sumskas]
-
-== 0.8.2 / 2007-4-11
-
-* 1 major enhancement:
- * Oracle unit tests!! [Darrin Holst]
- * And they work too
-
-== 0.8.1 / 2007-4-10
-
-* 1 bug fix:
- * Fixed the distinct(count) for oracle (removed 'as')
-
-== 0.8.0 / 2007-4-6
-
-* 1 major enhancement:
- * Support for calcualtions on associations
-* 2 new DB supported:
- * Tests run on sqlite
- * Tests run on postgresql
-* History.txt to keep track of changes like these
-* Using Hoe for Rakefile
-* Website generator rake tasks
-
-== 0.3.3
-* id=
-* create now work
-
-== 0.1.4
-* it was important that #{primary_key} for composites --> 'key1,key2' and not 'key1key2' so created PrimaryKeys class
-
-== 0.0.1
-* Initial version
-* set_primary_keys(*keys) is the activation class method to transform an ActiveRecord into a composite primary key AR
-* find(*ids) supports the passing of
- * id sets: Foo.find(2,1),
- * lists of id sets: Foo.find([2,1], [7,3], [8,12]),
- * and even stringified versions of the above:
- * Foo.find '2,1' or Foo.find '2,1;7,3'
+++ /dev/null
-History.txt
-Manifest.txt
-README.txt
-README_DB2.txt
-Rakefile
-init.rb
-install.rb
-lib/adapter_helper/base.rb
-lib/adapter_helper/mysql.rb
-lib/adapter_helper/oracle.rb
-lib/adapter_helper/postgresql.rb
-lib/adapter_helper/sqlite3.rb
-lib/composite_primary_keys.rb
-lib/composite_primary_keys/association_preload.rb
-lib/composite_primary_keys/associations.rb
-lib/composite_primary_keys/attribute_methods.rb
-lib/composite_primary_keys/base.rb
-lib/composite_primary_keys/calculations.rb
-lib/composite_primary_keys/composite_arrays.rb
-lib/composite_primary_keys/connection_adapters/ibm_db_adapter.rb
-lib/composite_primary_keys/connection_adapters/oracle_adapter.rb
-lib/composite_primary_keys/connection_adapters/postgresql_adapter.rb
-lib/composite_primary_keys/connection_adapters/sqlite3_adapter.rb
-lib/composite_primary_keys/fixtures.rb
-lib/composite_primary_keys/migration.rb
-lib/composite_primary_keys/reflection.rb
-lib/composite_primary_keys/version.rb
-loader.rb
-local/database_connections.rb.sample
-local/paths.rb.sample
-local/tasks.rb.sample
-scripts/console.rb
-scripts/txt2html
-scripts/txt2js
-tasks/activerecord_selection.rake
-tasks/databases.rake
-tasks/databases/mysql.rake
-tasks/databases/oracle.rake
-tasks/databases/postgresql.rake
-tasks/databases/sqlite3.rake
-tasks/deployment.rake
-tasks/local_setup.rake
-tasks/website.rake
-test/README_tests.txt
-test/abstract_unit.rb
-test/connections/native_ibm_db/connection.rb
-test/connections/native_mysql/connection.rb
-test/connections/native_oracle/connection.rb
-test/connections/native_postgresql/connection.rb
-test/connections/native_sqlite/connection.rb
-test/fixtures/article.rb
-test/fixtures/articles.yml
-test/fixtures/comment.rb
-test/fixtures/comments.yml
-test/fixtures/db_definitions/db2-create-tables.sql
-test/fixtures/db_definitions/db2-drop-tables.sql
-test/fixtures/db_definitions/mysql.sql
-test/fixtures/db_definitions/oracle.drop.sql
-test/fixtures/db_definitions/oracle.sql
-test/fixtures/db_definitions/postgresql.sql
-test/fixtures/db_definitions/sqlite.sql
-test/fixtures/department.rb
-test/fixtures/departments.yml
-test/fixtures/employee.rb
-test/fixtures/employees.yml
-test/fixtures/group.rb
-test/fixtures/groups.yml
-test/fixtures/hack.rb
-test/fixtures/hacks.yml
-test/fixtures/membership.rb
-test/fixtures/membership_status.rb
-test/fixtures/membership_statuses.yml
-test/fixtures/memberships.yml
-test/fixtures/product.rb
-test/fixtures/product_tariff.rb
-test/fixtures/product_tariffs.yml
-test/fixtures/products.yml
-test/fixtures/reading.rb
-test/fixtures/readings.yml
-test/fixtures/reference_code.rb
-test/fixtures/reference_codes.yml
-test/fixtures/reference_type.rb
-test/fixtures/reference_types.yml
-test/fixtures/street.rb
-test/fixtures/streets.yml
-test/fixtures/suburb.rb
-test/fixtures/suburbs.yml
-test/fixtures/tariff.rb
-test/fixtures/tariffs.yml
-test/fixtures/user.rb
-test/fixtures/users.yml
-test/hash_tricks.rb
-test/plugins/pagination.rb
-test/plugins/pagination_helper.rb
-test/test_associations.rb
-test/test_attribute_methods.rb
-test/test_attributes.rb
-test/test_clone.rb
-test/test_composite_arrays.rb
-test/test_create.rb
-test/test_delete.rb
-test/test_dummy.rb
-test/test_exists.rb
-test/test_find.rb
-test/test_ids.rb
-test/test_miscellaneous.rb
-test/test_pagination.rb
-test/test_polymorphic.rb
-test/test_santiago.rb
-test/test_tutorial_examle.rb
-test/test_update.rb
-tmp/test.db
-website/index.html
-website/index.txt
-website/javascripts/rounded_corners_lite.inc.js
-website/stylesheets/screen.css
-website/template.js
-website/template.rhtml
-website/version-raw.js
-website/version-raw.txt
-website/version.js
-website/version.txt
+++ /dev/null
-= Composite Primary Keys for ActiveRecords
-
-== Summary
-
-ActiveRecords/Rails famously doesn't support composite primary keys.
-This RubyGem extends the activerecord gem to provide CPK support.
-
-== Installation
-
- gem install composite_primary_keys
-
-== Usage
-
- require 'composite_primary_keys'
- class ProductVariation
- set_primary_keys :product_id, :variation_seq
- end
-
- pv = ProductVariation.find(345, 12)
-
-It even supports composite foreign keys for associations.
-
-See http://compositekeys.rubyforge.org for more.
-
-== Running Tests
-
-See test/README.tests.txt
-
-== Url
-
-http://compositekeys.rubyforge.org
-
-== Questions, Discussion and Contributions
-
-http://groups.google.com/compositekeys
-
-== Author
-
-Written by Dr Nic Williams, drnicwilliams@gmail
-Contributions by many!
-
+++ /dev/null
-Composite Primary key support for db2
-
-== Driver Support ==
-
-DB2 support requires the IBM_DB driver provided by http://rubyforge.org/projects/rubyibm/
-project. Install using gem install ibm_db. Tested against version 0.60 of the driver.
-This rubyforge project appears to be permenant location for the IBM adapter.
-Older versions of the driver available from IBM Alphaworks will not work.
-
-== Driver Bug and workaround provided as part of this plugin ==
-
-Unlike the basic quote routine available for Rails AR, the DB2 adapter's quote
-method doesn't return " column_name = 1 " when string values (integers in string type variable)
-are passed for quoting numeric column. Rather it returns "column_name = '1'.
-DB2 doesn't accept single quoting numeric columns in SQL. Currently, as part of
-this plugin a fix is provided for the DB2 adapter since this plugin does
-pass string values like this. Perhaps a patch should be sent to the DB2 adapter
-project for a permanant fix.
-
-== Database Setup ==
-
-Database must be manually created using a separate command. Read the rake task
-for creating tables and change the db name, user and passwords accordingly.
-
-== Tested Database Server version ==
-
-This is tested against DB2 v9.1 in Ubuntu Feisty Fawn (7.04)
-
-== Tested Database Client version ==
-
-This is tested against DB2 v9.1 in Ubuntu Feisty Fawn (7.04)
-
-
+++ /dev/null
-require 'rubygems'
-require 'rake'
-require 'rake/clean'
-require 'rake/testtask'
-require 'rake/rdoctask'
-require 'rake/packagetask'
-require 'rake/gempackagetask'
-require 'rake/contrib/rubyforgepublisher'
-require 'fileutils'
-require 'hoe'
-include FileUtils
-require File.join(File.dirname(__FILE__), 'lib', 'composite_primary_keys', 'version')
-
-AUTHOR = "Dr Nic Williams"
-EMAIL = "drnicwilliams@gmail.com"
-DESCRIPTION = "Composite key support for ActiveRecords"
-GEM_NAME = "composite_primary_keys" # what ppl will type to install your gem
-if File.exists?("~/.rubyforge/user-config.yml")
- # TODO this should prob go in a local/ file
- config = YAML.load(File.read(File.expand_path("~/.rubyforge/user-config.yml")))
- RUBYFORGE_USERNAME = config["username"]
-end
-RUBYFORGE_PROJECT = "compositekeys"
-HOMEPATH = "http://#{RUBYFORGE_PROJECT}.rubyforge.org"
-
-REV = nil #File.read(".svn/entries")[/committed-rev="(\d+)"/, 1] rescue nil
-VERS = ENV['VERSION'] || (CompositePrimaryKeys::VERSION::STRING + (REV ? ".#{REV}" : ""))
-CLEAN.include ['**/.*.sw?', '*.gem', '.config','debug.log','*.db','logfile','log/**/*','**/.DS_Store', '.project']
-RDOC_OPTS = ['--quiet', '--title', "newgem documentation",
- "--opname", "index.html",
- "--line-numbers",
- "--main", "README",
- "--inline-source"]
-
-class Hoe
- def extra_deps
- @extra_deps.reject { |x| Array(x).first == 'hoe' }
- end
-end
-
-# Generate all the Rake tasks
-# Run 'rake -T' to see list of generated tasks (from gem root directory)
-hoe = Hoe.new(GEM_NAME, VERS) do |p|
- p.author = AUTHOR
- p.description = DESCRIPTION
- p.email = EMAIL
- p.summary = DESCRIPTION
- p.url = HOMEPATH
- p.rubyforge_name = RUBYFORGE_PROJECT if RUBYFORGE_PROJECT
- p.test_globs = ["test/**/test*.rb"]
- p.clean_globs |= CLEAN #An array of file patterns to delete on clean.
-
- # == Optional
- p.changes = p.paragraphs_of("History.txt", 0..1).join("\n\n")
- p.extra_deps = [['activerecord', '>= 2.2.0']] #An array of rubygem dependencies.
- #p.spec_extras - A hash of extra values to set in the gemspec.
-end
-
-CHANGES = hoe.paragraphs_of('History.txt', 0..1).join("\n\n")
-PATH = RUBYFORGE_PROJECT
-hoe.remote_rdoc_dir = File.join(PATH.gsub(/^#{RUBYFORGE_PROJECT}\/?/,''), 'rdoc')
-
-PROJECT_ROOT = File.expand_path(".")
-
-require 'loader'
+++ /dev/null
-# Include hook code here
-require_dependency 'composite_primary_keys'
+++ /dev/null
-require 'rbconfig'
-require 'find'
-require 'ftools'
-
-include Config
-
-# this was adapted from rdoc's install.rb by ways of Log4r
-
-$sitedir = CONFIG["sitelibdir"]
-unless $sitedir
- version = CONFIG["MAJOR"] + "." + CONFIG["MINOR"]
- $libdir = File.join(CONFIG["libdir"], "ruby", version)
- $sitedir = $:.find {|x| x =~ /site_ruby/ }
- if !$sitedir
- $sitedir = File.join($libdir, "site_ruby")
- elsif $sitedir !~ Regexp.quote(version)
- $sitedir = File.join($sitedir, version)
- end
-end
-
-# the acual gruntwork
-Dir.chdir("lib")
-
-Find.find("composite_primary_keys", "composite_primary_keys.rb") { |f|
- if f[-3..-1] == ".rb"
- File::install(f, File.join($sitedir, *f.split(/\//)), 0644, true)
- else
- File::makedirs(File.join($sitedir, *f.split(/\//)))
- end
-}
+++ /dev/null
-module AdapterHelper
- class Base
- class << self
- attr_accessor :adapter
-
- def load_connection_from_env(adapter)
- self.adapter = adapter
- unless ENV['cpk_adapters']
- puts error_msg_setup_helper
- exit
- end
-
- ActiveRecord::Base.configurations = YAML.load(ENV['cpk_adapters'])
- unless spec = ActiveRecord::Base.configurations[adapter]
- puts error_msg_adapter_helper
- exit
- end
- spec[:adapter] = adapter
- spec
- end
-
- def error_msg_setup_helper
- <<-EOS
-Setup Helper:
- CPK now has a place for your individual testing configuration.
- That is, instead of hardcoding it in the Rakefile and test/connections files,
- there is now a local/database_connections.rb file that is NOT in the
- repository. Your personal DB information (username, password etc) can
- be stored here without making it difficult to submit patches etc.
-
-Installation:
- i) cp locals/database_connections.rb.sample locals/database_connections.rb
- ii) For #{adapter} connection details see "Adapter Setup Helper" below.
- iii) Rerun this task
-
-#{error_msg_adapter_helper}
-
-Current ENV:
- #{ENV.inspect}
- EOS
- end
-
- def error_msg_adapter_helper
- <<-EOS
-Adapter Setup Helper:
- To run #{adapter} tests, you need to setup your #{adapter} connections.
- In your local/database_connections.rb file, within the ENV['cpk_adapter'] hash, add:
- "#{adapter}" => { adapter settings }
-
- That is, it will look like:
- ENV['cpk_adapters'] = {
- "#{adapter}" => {
- :adapter => "#{adapter}",
- :username => "root",
- :password => "root",
- # ...
- }
- }.to_yaml
- EOS
- end
- end
- end
-end
\ No newline at end of file
+++ /dev/null
-require File.join(File.dirname(__FILE__), 'base')
-
-module AdapterHelper
- class MySQL < Base
- class << self
- def load_connection_from_env
- spec = super('mysql')
- spec[:database] ||= 'composite_primary_keys_unittest'
- spec
- end
- end
- end
-end
\ No newline at end of file
+++ /dev/null
-require File.join(File.dirname(__FILE__), 'base')
-
-module AdapterHelper
- class Oracle < Base
- class << self
- def load_connection_from_env
- spec = super('oracle')
- spec
- end
- end
- end
-end
\ No newline at end of file
+++ /dev/null
-require File.join(File.dirname(__FILE__), 'base')
-
-module AdapterHelper
- class Postgresql < Base
- class << self
- def load_connection_from_env
- spec = super('postgresql')
- spec[:database] ||= 'composite_primary_keys_unittest'
- spec
- end
- end
- end
-end
\ No newline at end of file
+++ /dev/null
-require File.join(File.dirname(__FILE__), 'base')
-
-module AdapterHelper
- class Sqlite3 < Base
- class << self
- def load_connection_from_env
- spec = super('sqlite3')
- spec[:dbfile] ||= "tmp/test.db"
- spec
- end
- end
- end
-end
\ No newline at end of file
+++ /dev/null
-module CompositePrimaryKeys
- module ActiveRecord
- module AssociationPreload
- def self.append_features(base)
- super
- base.send(:extend, ClassMethods)
- end
-
- # Composite key versions of Association functions
- module ClassMethods
- def preload_has_and_belongs_to_many_association(records, reflection, preload_options={})
- table_name = reflection.klass.quoted_table_name
- id_to_record_map, ids = construct_id_map_for_composite(records)
- records.each {|record| record.send(reflection.name).loaded}
- options = reflection.options
-
- if composite?
- primary_key = reflection.primary_key_name.to_s.split(CompositePrimaryKeys::ID_SEP)
- where = (primary_key * ids.size).in_groups_of(primary_key.size).map do |keys|
- "(" + keys.map{|key| "t0.#{connection.quote_column_name(key)} = ?"}.join(" AND ") + ")"
- end.join(" OR ")
-
- conditions = [where, ids].flatten
- joins = "INNER JOIN #{connection.quote_table_name options[:join_table]} t0 ON #{full_composite_join_clause(reflection, reflection.klass.table_name, reflection.klass.primary_key, 't0', reflection.association_foreign_key)}"
- parent_primary_keys = reflection.primary_key_name.to_s.split(CompositePrimaryKeys::ID_SEP).map{|k| "t0.#{connection.quote_column_name(k)}"}
- parent_record_id = connection.concat(*parent_primary_keys.zip(["','"] * (parent_primary_keys.size - 1)).flatten.compact)
- else
- conditions = ["t0.#{connection.quote_column_name(reflection.primary_key_name)} IN (?)", ids]
- joins = "INNER JOIN #{connection.quote_table_name options[:join_table]} t0 ON #{reflection.klass.quoted_table_name}.#{connection.quote_column_name(reflection.klass.primary_key)} = t0.#{connection.quote_column_name(reflection.association_foreign_key)})"
- parent_record_id = reflection.primary_key_name
- end
-
- conditions.first << append_conditions(reflection, preload_options)
-
- associated_records = reflection.klass.find(:all,
- :conditions => conditions,
- :include => options[:include],
- :joins => joins,
- :select => "#{options[:select] || table_name+'.*'}, #{parent_record_id} as parent_record_id_",
- :order => options[:order])
-
- set_association_collection_records(id_to_record_map, reflection.name, associated_records, 'parent_record_id_')
- end
-
- def preload_has_many_association(records, reflection, preload_options={})
- id_to_record_map, ids = construct_id_map_for_composite(records)
- records.each {|record| record.send(reflection.name).loaded}
- options = reflection.options
-
- if options[:through]
- through_records = preload_through_records(records, reflection, options[:through])
- through_reflection = reflections[options[:through]]
- through_primary_key = through_reflection.primary_key_name
-
- unless through_records.empty?
- source = reflection.source_reflection.name
- #add conditions from reflection!
- through_records.first.class.preload_associations(through_records, source, reflection.options)
- through_records.each do |through_record|
- key = through_primary_key.to_s.split(CompositePrimaryKeys::ID_SEP).map{|k| through_record.send(k)}.join(CompositePrimaryKeys::ID_SEP)
- add_preloaded_records_to_collection(id_to_record_map[key], reflection.name, through_record.send(source))
- end
- end
- else
- associated_records = find_associated_records(ids, reflection, preload_options)
- set_association_collection_records(id_to_record_map, reflection.name, associated_records, reflection.primary_key_name.to_s.split(CompositePrimaryKeys::ID_SEP))
- end
- end
-
- def preload_through_records(records, reflection, through_association)
- through_reflection = reflections[through_association]
- through_primary_key = through_reflection.primary_key_name
-
- if reflection.options[:source_type]
- interface = reflection.source_reflection.options[:foreign_type]
- preload_options = {:conditions => ["#{connection.quote_column_name interface} = ?", reflection.options[:source_type]]}
-
- records.compact!
- records.first.class.preload_associations(records, through_association, preload_options)
-
- # Dont cache the association - we would only be caching a subset
- through_records = []
- records.each do |record|
- proxy = record.send(through_association)
-
- if proxy.respond_to?(:target)
- through_records << proxy.target
- proxy.reset
- else # this is a has_one :through reflection
- through_records << proxy if proxy
- end
- end
- through_records.flatten!
- else
- records.first.class.preload_associations(records, through_association)
- through_records = records.map {|record| record.send(through_association)}.flatten
- end
-
- through_records.compact!
- through_records
- end
-
- def preload_belongs_to_association(records, reflection, preload_options={})
- options = reflection.options
- primary_key_name = reflection.primary_key_name.to_s.split(CompositePrimaryKeys::ID_SEP)
-
- if options[:polymorphic]
- raise AssociationNotSupported, "Polymorphic joins not supported for composite keys"
- else
- # I need to keep the original ids for each record (as opposed to the stringified) so
- # that they get properly converted for each db so the id_map ends up looking like:
- #
- # { '1,2' => {:id => [1,2], :records => [...records...]}}
- id_map = {}
-
- records.each do |record|
- key = primary_key_name.map{|k| record.attributes[k]}
- key_as_string = key.join(CompositePrimaryKeys::ID_SEP)
-
- if key_as_string
- mapped_records = (id_map[key_as_string] ||= {:id => key, :records => []})
- mapped_records[:records] << record
- end
- end
-
-
- klasses_and_ids = [[reflection.klass.name, id_map]]
- end
-
- klasses_and_ids.each do |klass_and_id|
- klass_name, id_map = *klass_and_id
- klass = klass_name.constantize
- table_name = klass.quoted_table_name
- connection = reflection.active_record.connection
-
- if composite?
- primary_key = klass.primary_key.to_s.split(CompositePrimaryKeys::ID_SEP)
- ids = id_map.keys.uniq.map {|id| id_map[id][:id]}
-
- where = (primary_key * ids.size).in_groups_of(primary_key.size).map do |keys|
- "(" + keys.map{|key| "#{table_name}.#{connection.quote_column_name(key)} = ?"}.join(" AND ") + ")"
- end.join(" OR ")
-
- conditions = [where, ids].flatten
- else
- conditions = ["#{table_name}.#{connection.quote_column_name(primary_key)} IN (?)", id_map.keys.uniq]
- end
-
- conditions.first << append_conditions(reflection, preload_options)
-
- associated_records = klass.find(:all,
- :conditions => conditions,
- :include => options[:include],
- :select => options[:select],
- :joins => options[:joins],
- :order => options[:order])
-
- set_association_single_records(id_map, reflection.name, associated_records, primary_key)
- end
- end
-
- def set_association_collection_records(id_to_record_map, reflection_name, associated_records, key)
- associated_records.each do |associated_record|
- associated_record_key = associated_record[key]
- associated_record_key = associated_record_key.is_a?(Array) ? associated_record_key.join(CompositePrimaryKeys::ID_SEP) : associated_record_key.to_s
- mapped_records = id_to_record_map[associated_record_key]
- add_preloaded_records_to_collection(mapped_records, reflection_name, associated_record)
- end
- end
-
- def set_association_single_records(id_to_record_map, reflection_name, associated_records, key)
- seen_keys = {}
- associated_records.each do |associated_record|
- associated_record_key = associated_record[key]
- associated_record_key = associated_record_key.is_a?(Array) ? associated_record_key.join(CompositePrimaryKeys::ID_SEP) : associated_record_key.to_s
-
- #this is a has_one or belongs_to: there should only be one record.
- #Unfortunately we can't (in portable way) ask the database for 'all records where foo_id in (x,y,z), but please
- # only one row per distinct foo_id' so this where we enforce that
- next if seen_keys[associated_record_key]
- seen_keys[associated_record_key] = true
- mapped_records = id_to_record_map[associated_record_key][:records]
- mapped_records.each do |mapped_record|
- mapped_record.send("set_#{reflection_name}_target", associated_record)
- end
- end
- end
-
- def find_associated_records(ids, reflection, preload_options)
- options = reflection.options
- table_name = reflection.klass.quoted_table_name
-
- if interface = reflection.options[:as]
- raise AssociationNotSupported, "Polymorphic joins not supported for composite keys"
- else
- connection = reflection.active_record.connection
- foreign_key = reflection.primary_key_name
- conditions = ["#{table_name}.#{connection.quote_column_name(foreign_key)} IN (?)", ids]
-
- if composite?
- foreign_keys = foreign_key.to_s.split(CompositePrimaryKeys::ID_SEP)
-
- where = (foreign_keys * ids.size).in_groups_of(foreign_keys.size).map do |keys|
- "(" + keys.map{|key| "#{table_name}.#{connection.quote_column_name(key)} = ?"}.join(" AND ") + ")"
- end.join(" OR ")
-
- conditions = [where, ids].flatten
- end
- end
-
- conditions.first << append_conditions(reflection, preload_options)
-
- reflection.klass.find(:all,
- :select => (preload_options[:select] || options[:select] || "#{table_name}.*"),
- :include => preload_options[:include] || options[:include],
- :conditions => conditions,
- :joins => options[:joins],
- :group => preload_options[:group] || options[:group],
- :order => preload_options[:order] || options[:order])
- end
-
- # Given a collection of ActiveRecord objects, constructs a Hash which maps
- # the objects' IDs to the relevant objects. Returns a 2-tuple
- # <tt>(id_to_record_map, ids)</tt> where +id_to_record_map+ is the Hash,
- # and +ids+ is an Array of record IDs.
- def construct_id_map_for_composite(records)
- id_to_record_map = {}
- ids = []
- records.each do |record|
- primary_key ||= record.class.primary_key
- ids << record.id
- mapped_records = (id_to_record_map[record.id.to_s] ||= [])
- mapped_records << record
- end
- ids.uniq!
- return id_to_record_map, ids
- end
-
- def full_composite_join_clause(reflection, table1, full_keys1, table2, full_keys2)
- connection = reflection.active_record.connection
- full_keys1 = full_keys1.split(CompositePrimaryKeys::ID_SEP) if full_keys1.is_a?(String)
- full_keys2 = full_keys2.split(CompositePrimaryKeys::ID_SEP) if full_keys2.is_a?(String)
- where_clause = [full_keys1, full_keys2].transpose.map do |key_pair|
- quoted1 = connection.quote_table_name(table1)
- quoted2 = connection.quote_table_name(table2)
- "#{quoted1}.#{connection.quote_column_name(key_pair.first)}=#{quoted2}.#{connection.quote_column_name(key_pair.last)}"
- end.join(" AND ")
- "(#{where_clause})"
- end
- end
- end
- end
-end
+++ /dev/null
-module CompositePrimaryKeys
- module ActiveRecord
- module Associations
- def self.append_features(base)
- super
- base.send(:extend, ClassMethods)
- end
-
- # Composite key versions of Association functions
- module ClassMethods
-
- def construct_counter_sql_with_included_associations(options, join_dependency)
- scope = scope(:find)
- sql = "SELECT COUNT(DISTINCT #{quoted_table_columns(primary_key)})"
-
- # A (slower) workaround if we're using a backend, like sqlite, that doesn't support COUNT DISTINCT.
- if !self.connection.supports_count_distinct?
- sql = "SELECT COUNT(*) FROM (SELECT DISTINCT #{quoted_table_columns(primary_key)}"
- end
-
- sql << " FROM #{quoted_table_name} "
- sql << join_dependency.join_associations.collect{|join| join.association_join }.join
-
- add_joins!(sql, options[:joins], scope)
- add_conditions!(sql, options[:conditions], scope)
- add_limited_ids_condition!(sql, options, join_dependency) if !using_limitable_reflections?(join_dependency.reflections) && ((scope && scope[:limit]) || options[:limit])
-
- add_limit!(sql, options, scope) if using_limitable_reflections?(join_dependency.reflections)
-
- if !self.connection.supports_count_distinct?
- sql << ")"
- end
-
- return sanitize_sql(sql)
- end
-
- def construct_finder_sql_with_included_associations(options, join_dependency)
- scope = scope(:find)
- sql = "SELECT #{column_aliases(join_dependency)} FROM #{(scope && scope[:from]) || options[:from] || quoted_table_name} "
- sql << join_dependency.join_associations.collect{|join| join.association_join }.join
-
- add_joins!(sql, options[:joins], scope)
- add_conditions!(sql, options[:conditions], scope)
- add_limited_ids_condition!(sql, options, join_dependency) if !using_limitable_reflections?(join_dependency.reflections) && options[:limit]
-
- sql << "ORDER BY #{options[:order]} " if options[:order]
-
- add_limit!(sql, options, scope) if using_limitable_reflections?(join_dependency.reflections)
-
- return sanitize_sql(sql)
- end
-
- def table_columns(columns)
- columns.collect {|column| "#{self.quoted_table_name}.#{connection.quote_column_name(column)}"}
- end
-
- def quoted_table_columns(columns)
- table_columns(columns).join(ID_SEP)
- end
-
- end
-
- end
- end
-end
-
-module ActiveRecord::Associations::ClassMethods
- class JoinDependency
- def construct_association(record, join, row)
- case join.reflection.macro
- when :has_many, :has_and_belongs_to_many
- collection = record.send(join.reflection.name)
- collection.loaded
-
- join_aliased_primary_keys = join.active_record.composite? ?
- join.aliased_primary_key : [join.aliased_primary_key]
- return nil if
- record.id.to_s != join.parent.record_id(row).to_s or not
- join_aliased_primary_keys.select {|key| row[key].nil?}.blank?
- association = join.instantiate(row)
- collection.target.push(association) unless collection.target.include?(association)
- when :has_one, :belongs_to
- return if record.id.to_s != join.parent.record_id(row).to_s or
- [*join.aliased_primary_key].any? { |key| row[key].nil? }
- association = join.instantiate(row)
- record.send("set_#{join.reflection.name}_target", association)
- else
- raise ConfigurationError, "unknown macro: #{join.reflection.macro}"
- end
- return association
- end
-
- class JoinBase
- def aliased_primary_key
- active_record.composite? ?
- primary_key.inject([]) {|aliased_keys, key| aliased_keys << "#{ aliased_prefix }_r#{aliased_keys.length}"} :
- "#{ aliased_prefix }_r0"
- end
-
- def record_id(row)
- active_record.composite? ?
- aliased_primary_key.map {|key| row[key]}.to_composite_ids :
- row[aliased_primary_key]
- end
-
- def column_names_with_alias
- unless @column_names_with_alias
- @column_names_with_alias = []
- keys = active_record.composite? ? primary_key.map(&:to_s) : [primary_key]
- (keys + (column_names - keys)).each_with_index do |column_name, i|
- @column_names_with_alias << [column_name, "#{ aliased_prefix }_r#{ i }"]
- end
- end
- return @column_names_with_alias
- end
- end
-
- class JoinAssociation < JoinBase
- alias single_association_join association_join
- def association_join
- reflection.active_record.composite? ? composite_association_join : single_association_join
- end
-
- def composite_association_join
- join = case reflection.macro
- when :has_and_belongs_to_many
- " LEFT OUTER JOIN %s ON %s " % [
- table_alias_for(options[:join_table], aliased_join_table_name),
- composite_join_clause(
- full_keys(aliased_join_table_name, options[:foreign_key] || reflection.active_record.to_s.classify.foreign_key),
- full_keys(reflection.active_record.table_name, reflection.active_record.primary_key)
- )
- ] +
- " LEFT OUTER JOIN %s ON %s " % [
- table_name_and_alias,
- composite_join_clause(
- full_keys(aliased_table_name, klass.primary_key),
- full_keys(aliased_join_table_name, options[:association_foreign_key] || klass.table_name.classify.foreign_key)
- )
- ]
- when :has_many, :has_one
- case
- when reflection.macro == :has_many && reflection.options[:through]
- through_conditions = through_reflection.options[:conditions] ? "AND #{interpolate_sql(sanitize_sql(through_reflection.options[:conditions]))}" : ''
- if through_reflection.options[:as] # has_many :through against a polymorphic join
- raise AssociationNotSupported, "Polymorphic joins not supported for composite keys"
- else
- if source_reflection.macro == :has_many && source_reflection.options[:as]
- raise AssociationNotSupported, "Polymorphic joins not supported for composite keys"
- else
- case source_reflection.macro
- when :belongs_to
- first_key = primary_key
- second_key = options[:foreign_key] || klass.to_s.classify.foreign_key
- when :has_many
- first_key = through_reflection.klass.to_s.classify.foreign_key
- second_key = options[:foreign_key] || primary_key
- end
-
- " LEFT OUTER JOIN %s ON %s " % [
- table_alias_for(through_reflection.klass.table_name, aliased_join_table_name),
- composite_join_clause(
- full_keys(aliased_join_table_name, through_reflection.primary_key_name),
- full_keys(parent.aliased_table_name, parent.primary_key)
- )
- ] +
- " LEFT OUTER JOIN %s ON %s " % [
- table_name_and_alias,
- composite_join_clause(
- full_keys(aliased_table_name, first_key),
- full_keys(aliased_join_table_name, second_key)
- )
- ]
- end
- end
-
- when reflection.macro == :has_many && reflection.options[:as]
- raise AssociationNotSupported, "Polymorphic joins not supported for composite keys"
- when reflection.macro == :has_one && reflection.options[:as]
- raise AssociationNotSupported, "Polymorphic joins not supported for composite keys"
- else
- foreign_key = options[:foreign_key] || reflection.active_record.name.foreign_key
- " LEFT OUTER JOIN %s ON %s " % [
- table_name_and_alias,
- composite_join_clause(
- full_keys(aliased_table_name, foreign_key),
- full_keys(parent.aliased_table_name, parent.primary_key)),
- ]
- end
- when :belongs_to
- " LEFT OUTER JOIN %s ON %s " % [
- table_name_and_alias,
- composite_join_clause(
- full_keys(aliased_table_name, reflection.klass.primary_key),
- full_keys(parent.aliased_table_name, options[:foreign_key] || klass.to_s.foreign_key)),
- ]
- else
- ""
- end || ''
- join << %(AND %s.%s = %s ) % [
- aliased_table_name,
- reflection.active_record.connection.quote_column_name(reflection.active_record.inheritance_column),
- klass.connection.quote(klass.name)] unless klass.descends_from_active_record?
- join << "AND #{interpolate_sql(sanitize_sql(reflection.options[:conditions]))} " if reflection.options[:conditions]
- join
- end
-
- def full_keys(table_name, keys)
- connection = reflection.active_record.connection
- quoted_table_name = connection.quote_table_name(table_name)
- if keys.is_a?(Array)
- keys.collect {|key| "#{quoted_table_name}.#{connection.quote_column_name(key)}"}.join(CompositePrimaryKeys::ID_SEP)
- else
- "#{quoted_table_name}.#{connection.quote_column_name(keys)}"
- end
- end
-
- def composite_join_clause(full_keys1, full_keys2)
- full_keys1 = full_keys1.split(CompositePrimaryKeys::ID_SEP) if full_keys1.is_a?(String)
- full_keys2 = full_keys2.split(CompositePrimaryKeys::ID_SEP) if full_keys2.is_a?(String)
- where_clause = [full_keys1, full_keys2].transpose.map do |key1, key2|
- "#{key1}=#{key2}"
- end.join(" AND ")
- "(#{where_clause})"
- end
- end
- end
-end
-
-module ActiveRecord::Associations
- class AssociationProxy #:nodoc:
-
- def composite_where_clause(full_keys, ids)
- full_keys = full_keys.split(CompositePrimaryKeys::ID_SEP) if full_keys.is_a?(String)
-
- if ids.is_a?(String)
- ids = [[ids]]
- elsif not ids.first.is_a?(Array) # if single comp key passed, turn into an array of 1
- ids = [ids.to_composite_ids]
- end
-
- where_clause = ids.map do |id_set|
- transposed = id_set.size == 1 ? [[full_keys, id_set.first]] : [full_keys, id_set].transpose
- transposed.map do |full_key, id|
- "#{full_key.to_s}=#{@reflection.klass.sanitize(id)}"
- end.join(" AND ")
- end.join(") OR (")
-
- "(#{where_clause})"
- end
-
- def composite_join_clause(full_keys1, full_keys2)
- full_keys1 = full_keys1.split(CompositePrimaryKeys::ID_SEP) if full_keys1.is_a?(String)
- full_keys2 = full_keys2.split(CompositePrimaryKeys::ID_SEP) if full_keys2.is_a?(String)
-
- where_clause = [full_keys1, full_keys2].transpose.map do |key1, key2|
- "#{key1}=#{key2}"
- end.join(" AND ")
-
- "(#{where_clause})"
- end
-
- def full_composite_join_clause(table1, full_keys1, table2, full_keys2)
- connection = @reflection.active_record.connection
- full_keys1 = full_keys1.split(CompositePrimaryKeys::ID_SEP) if full_keys1.is_a?(String)
- full_keys2 = full_keys2.split(CompositePrimaryKeys::ID_SEP) if full_keys2.is_a?(String)
-
- quoted1 = connection.quote_table_name(table1)
- quoted2 = connection.quote_table_name(table2)
-
- where_clause = [full_keys1, full_keys2].transpose.map do |key_pair|
- "#{quoted1}.#{connection.quote_column_name(key_pair.first)}=#{quoted2}.#{connection.quote_column_name(key_pair.last)}"
- end.join(" AND ")
-
- "(#{where_clause})"
- end
-
- def full_keys(table_name, keys)
- connection = @reflection.active_record.connection
- quoted_table_name = connection.quote_table_name(table_name)
- keys = keys.split(CompositePrimaryKeys::ID_SEP) if keys.is_a?(String)
- if keys.is_a?(Array)
- keys.collect {|key| "#{quoted_table_name}.#{connection.quote_column_name(key)}"}.join(CompositePrimaryKeys::ID_SEP)
- else
- "#{quoted_table_name}.#{connection.quote_column_name(keys)}"
- end
- end
-
- def full_columns_equals(table_name, keys, quoted_ids)
- connection = @reflection.active_record.connection
- quoted_table_name = connection.quote_table_name(table_name)
- if keys.is_a?(Symbol) or (keys.is_a?(String) and keys == keys.to_s.split(CompositePrimaryKeys::ID_SEP))
- return "#{quoted_table_name}.#{connection.quote_column_name(keys)} = #{quoted_ids}"
- end
- keys = keys.split(CompositePrimaryKeys::ID_SEP) if keys.is_a?(String)
- quoted_ids = quoted_ids.split(CompositePrimaryKeys::ID_SEP) if quoted_ids.is_a?(String)
- keys_ids = [keys, quoted_ids].transpose
- keys_ids.collect {|key, id| "(#{quoted_table_name}.#{connection.quote_column_name(key)} = #{id})"}.join(' AND ')
- end
-
- def set_belongs_to_association_for(record)
- if @reflection.options[:as]
- record["#{@reflection.options[:as]}_id"] = @owner.id unless @owner.new_record?
- record["#{@reflection.options[:as]}_type"] = @owner.class.base_class.name.to_s
- else
- key_values = @reflection.primary_key_name.to_s.split(CompositePrimaryKeys::ID_SEP).zip([@owner.id].flatten)
- key_values.each{|key, value| record[key] = value} unless @owner.new_record?
- end
- end
- end
-
- class HasAndBelongsToManyAssociation < AssociationCollection #:nodoc:
- def construct_sql
- @reflection.options[:finder_sql] &&= interpolate_sql(@reflection.options[:finder_sql])
-
- if @reflection.options[:finder_sql]
- @finder_sql = @reflection.options[:finder_sql]
- else
- @finder_sql = full_columns_equals(@reflection.options[:join_table], @reflection.primary_key_name, @owner.quoted_id)
- @finder_sql << " AND (#{conditions})" if conditions
- end
-
- @join_sql = "INNER JOIN #{@reflection.active_record.connection.quote_table_name(@reflection.options[:join_table])} ON " +
- full_composite_join_clause(@reflection.klass.table_name, @reflection.klass.primary_key, @reflection.options[:join_table], @reflection.association_foreign_key)
- end
- end
-
- class HasManyAssociation < AssociationCollection #:nodoc:
- def construct_sql
- case
- when @reflection.options[:finder_sql]
- @finder_sql = interpolate_sql(@reflection.options[:finder_sql])
-
- when @reflection.options[:as]
- @finder_sql =
- "#{@reflection.klass.quoted_table_name}.#{@reflection.options[:as]}_id = #{@owner.quoted_id} AND " +
- "#{@reflection.klass.quoted_table_name}.#{@reflection.options[:as]}_type = #{@owner.class.quote_value(@owner.class.base_class.name.to_s)}"
- @finder_sql << " AND (#{conditions})" if conditions
-
- else
- @finder_sql = full_columns_equals(@reflection.klass.table_name, @reflection.primary_key_name, @owner.quoted_id)
- @finder_sql << " AND (#{conditions})" if conditions
- end
-
- if @reflection.options[:counter_sql]
- @counter_sql = interpolate_sql(@reflection.options[:counter_sql])
- elsif @reflection.options[:finder_sql]
- # replace the SELECT clause with COUNT(*), preserving any hints within /* ... */
- @reflection.options[:counter_sql] = @reflection.options[:finder_sql].sub(/SELECT (\/\*.*?\*\/ )?(.*)\bFROM\b/im) { "SELECT #{$1}COUNT(*) FROM" }
- @counter_sql = interpolate_sql(@reflection.options[:counter_sql])
- else
- @counter_sql = @finder_sql
- end
- end
-
- def delete_records(records)
- if @reflection.options[:dependent]
- records.each { |r| r.destroy }
- else
- connection = @reflection.active_record.connection
- field_names = @reflection.primary_key_name.split(',')
- field_names.collect! {|n| connection.quote_column_name(n) + " = NULL"}
- records.each do |r|
- where_clause = nil
-
- if r.quoted_id.to_s.include?(CompositePrimaryKeys::ID_SEP)
- where_clause_terms = [@reflection.klass.primary_key, r.quoted_id].transpose.map do |pair|
- "(#{connection.quote_column_name(pair[0])} = #{pair[1]})"
- end
- where_clause = where_clause_terms.join(" AND ")
- else
- where_clause = connection.quote_column_name(@reflection.klass.primary_key) + ' = ' + r.quoted_id
- end
-
- @reflection.klass.update_all( field_names.join(',') , where_clause)
- end
- end
- end
- end
-
- class HasOneAssociation < BelongsToAssociation #:nodoc:
- def construct_sql
- case
- when @reflection.options[:as]
- @finder_sql =
- "#{@reflection.klass.quoted_table_name}.#{@reflection.options[:as]}_id = #{@owner.quoted_id} AND " +
- "#{@reflection.klass.quoted_table_name}.#{@reflection.options[:as]}_type = #{@owner.class.quote_value(@owner.class.base_class.name.to_s)}"
- else
- @finder_sql = full_columns_equals(@reflection.klass.table_name, @reflection.primary_key_name, @owner.quoted_id)
- end
-
- @finder_sql << " AND (#{conditions})" if conditions
- end
- end
-
- class HasManyThroughAssociation < HasManyAssociation #:nodoc:
- def construct_conditions_with_composite_keys
- if @reflection.through_reflection.options[:as]
- construct_conditions_without_composite_keys
- else
- conditions = full_columns_equals(@reflection.through_reflection.table_name, @reflection.through_reflection.primary_key_name, @owner.quoted_id)
- conditions << " AND (#{sql_conditions})" if sql_conditions
- conditions
- end
- end
- alias_method_chain :construct_conditions, :composite_keys
-
- def construct_joins_with_composite_keys(custom_joins = nil)
- if @reflection.through_reflection.options[:as] || @reflection.source_reflection.options[:as]
- construct_joins_without_composite_keys(custom_joins)
- else
- if @reflection.source_reflection.macro == :belongs_to
- reflection_primary_key = @reflection.klass.primary_key
- source_primary_key = @reflection.source_reflection.primary_key_name
- else
- reflection_primary_key = @reflection.source_reflection.primary_key_name
- source_primary_key = @reflection.klass.primary_key
- end
-
- "INNER JOIN %s ON %s #{@reflection.options[:joins]} #{custom_joins}" % [
- @reflection.through_reflection.quoted_table_name,
- composite_join_clause(full_keys(@reflection.table_name, reflection_primary_key), full_keys(@reflection.through_reflection.table_name, source_primary_key))
- ]
- end
- end
- alias_method_chain :construct_joins, :composite_keys
- end
-end
+++ /dev/null
-module CompositePrimaryKeys
- module ActiveRecord
- module AttributeMethods #:nodoc:
- def self.append_features(base)
- super
- base.send(:extend, ClassMethods)
- end
-
- module ClassMethods
- # Define an attribute reader method. Cope with nil column.
- def define_read_method(symbol, attr_name, column)
- cast_code = column.type_cast_code('v') if column
- cast_code = "::#{cast_code}" if cast_code && cast_code.match('ActiveRecord::.*')
- access_code = cast_code ? "(v=@attributes['#{attr_name}']) && #{cast_code}" : "@attributes['#{attr_name}']"
-
- unless self.primary_keys.include?(attr_name.to_sym)
- access_code = access_code.insert(0, "missing_attribute('#{attr_name}', caller) unless @attributes.has_key?('#{attr_name}'); ")
- end
-
- if cache_attribute?(attr_name)
- access_code = "@attributes_cache['#{attr_name}'] ||= (#{access_code})"
- end
-
- evaluate_attribute_method attr_name, "def #{symbol}; #{access_code}; end"
- end
-
- # Evaluate the definition for an attribute related method
- def evaluate_attribute_method(attr_name, method_definition, method_name=attr_name)
- unless primary_keys.include?(method_name.to_sym)
- generated_methods << method_name
- end
-
- begin
- class_eval(method_definition, __FILE__, __LINE__)
- rescue SyntaxError => err
- generated_methods.delete(attr_name)
- if logger
- logger.warn "Exception occurred during reader method compilation."
- logger.warn "Maybe #{attr_name} is not a valid Ruby identifier?"
- logger.warn "#{err.message}"
- end
- end
- end
- end
-
- # Allows access to the object attributes, which are held in the @attributes hash, as though they
- # were first-class methods. So a Person class with a name attribute can use Person#name and
- # Person#name= and never directly use the attributes hash -- except for multiple assigns with
- # ActiveRecord#attributes=. A Milestone class can also ask Milestone#completed? to test that
- # the completed attribute is not nil or 0.
- #
- # It's also possible to instantiate related objects, so a Client class belonging to the clients
- # table with a master_id foreign key can instantiate master through Client#master.
- def method_missing(method_id, *args, &block)
- method_name = method_id.to_s
-
- # If we haven't generated any methods yet, generate them, then
- # see if we've created the method we're looking for.
- if !self.class.generated_methods?
- self.class.define_attribute_methods
-
- if self.class.generated_methods.include?(method_name)
- return self.send(method_id, *args, &block)
- end
- end
-
- if self.class.primary_keys.include?(method_name.to_sym)
- ids[self.class.primary_keys.index(method_name.to_sym)]
- elsif md = self.class.match_attribute_method?(method_name)
- attribute_name, method_type = md.pre_match, md.to_s
- if @attributes.include?(attribute_name)
- __send__("attribute#{method_type}", attribute_name, *args, &block)
- else
- super
- end
- elsif @attributes.include?(method_name)
- read_attribute(method_name)
- else
- super
- end
- end
- end
- end
-end
+++ /dev/null
-module CompositePrimaryKeys
- module ActiveRecord #:nodoc:
- class CompositeKeyError < StandardError #:nodoc:
- end
-
- module Base #:nodoc:
-
- INVALID_FOR_COMPOSITE_KEYS = 'Not appropriate for composite primary keys'
- NOT_IMPLEMENTED_YET = 'Not implemented for composite primary keys yet'
-
- def self.append_features(base)
- super
- base.send(:include, InstanceMethods)
- base.extend(ClassMethods)
- end
-
- module ClassMethods
- def set_primary_keys(*keys)
- keys = keys.first if keys.first.is_a?(Array)
- keys = keys.map { |k| k.to_sym }
- cattr_accessor :primary_keys
- self.primary_keys = keys.to_composite_keys
-
- class_eval <<-EOV
- extend CompositeClassMethods
- include CompositeInstanceMethods
-
- include CompositePrimaryKeys::ActiveRecord::Associations
- include CompositePrimaryKeys::ActiveRecord::AssociationPreload
- include CompositePrimaryKeys::ActiveRecord::Calculations
- include CompositePrimaryKeys::ActiveRecord::AttributeMethods
- EOV
- end
-
- def composite?
- false
- end
- end
-
- module InstanceMethods
- def composite?; self.class.composite?; end
- end
-
- module CompositeInstanceMethods
-
- # A model instance's primary keys is always available as model.ids
- # whether you name it the default 'id' or set it to something else.
- def id
- attr_names = self.class.primary_keys
- CompositeIds.new(attr_names.map { |attr_name| read_attribute(attr_name) })
- end
- alias_method :ids, :id
-
- def to_param
- id.to_s
- end
-
- def id_before_type_cast #:nodoc:
- raise CompositeKeyError, CompositePrimaryKeys::ActiveRecord::Base::NOT_IMPLEMENTED_YET
- end
-
- def quoted_id #:nodoc:
- [self.class.primary_keys, ids].
- transpose.
- map {|attr_name,id| quote_value(id, column_for_attribute(attr_name))}.
- to_composite_ids
- end
-
- # Sets the primary ID.
- def id=(ids)
- ids = ids.split(ID_SEP) if ids.is_a?(String)
- ids.flatten!
- unless ids.is_a?(Array) and ids.length == self.class.primary_keys.length
- raise "#{self.class}.id= requires #{self.class.primary_keys.length} ids"
- end
- [primary_keys, ids].transpose.each {|key, an_id| write_attribute(key , an_id)}
- id
- end
-
- # Returns a clone of the record that hasn't been assigned an id yet and
- # is treated as a new record. Note that this is a "shallow" clone:
- # it copies the object's attributes only, not its associations.
- # The extent of a "deep" clone is application-specific and is therefore
- # left to the application to implement according to its need.
- def clone
- attrs = self.attributes_before_type_cast
- self.class.primary_keys.each {|key| attrs.delete(key.to_s)}
- self.class.new do |record|
- record.send :instance_variable_set, '@attributes', attrs
- end
- end
-
-
- private
- # The xx_without_callbacks methods are overwritten as that is the end of the alias chain
-
- # Creates a new record with values matching those of the instance attributes.
- def create_without_callbacks
- unless self.id
- raise CompositeKeyError, "Composite keys do not generated ids from sequences, you must provide id values"
- end
- attributes_minus_pks = attributes_with_quotes(false)
- quoted_pk_columns = self.class.primary_key.map { |col| connection.quote_column_name(col) }
- cols = quoted_column_names(attributes_minus_pks) << quoted_pk_columns
- vals = attributes_minus_pks.values << quoted_id
- connection.insert(
- "INSERT INTO #{self.class.quoted_table_name} " +
- "(#{cols.join(', ')}) " +
- "VALUES (#{vals.join(', ')})",
- "#{self.class.name} Create",
- self.class.primary_key,
- self.id
- )
- @new_record = false
- return true
- end
-
- # Updates the associated record with values matching those of the instance attributes.
- def update_without_callbacks
- where_clause_terms = [self.class.primary_key, quoted_id].transpose.map do |pair|
- "(#{connection.quote_column_name(pair[0])} = #{pair[1]})"
- end
- where_clause = where_clause_terms.join(" AND ")
- connection.update(
- "UPDATE #{self.class.quoted_table_name} " +
- "SET #{quoted_comma_pair_list(connection, attributes_with_quotes(false))} " +
- "WHERE #{where_clause}",
- "#{self.class.name} Update"
- )
- return true
- end
-
- # Deletes the record in the database and freezes this instance to reflect that no changes should
- # be made (since they can't be persisted).
- def destroy_without_callbacks
- where_clause_terms = [self.class.primary_key, quoted_id].transpose.map do |pair|
- "(#{connection.quote_column_name(pair[0])} = #{pair[1]})"
- end
- where_clause = where_clause_terms.join(" AND ")
- unless new_record?
- connection.delete(
- "DELETE FROM #{self.class.quoted_table_name} " +
- "WHERE #{where_clause}",
- "#{self.class.name} Destroy"
- )
- end
- freeze
- end
- end
-
- module CompositeClassMethods
- def primary_key; primary_keys; end
- def primary_key=(keys); primary_keys = keys; end
-
- def composite?
- true
- end
-
- #ids_to_s([[1,2],[7,3]]) -> "(1,2),(7,3)"
- #ids_to_s([[1,2],[7,3]], ',', ';') -> "1,2;7,3"
- def ids_to_s(many_ids, id_sep = CompositePrimaryKeys::ID_SEP, list_sep = ',', left_bracket = '(', right_bracket = ')')
- many_ids.map {|ids| "#{left_bracket}#{ids}#{right_bracket}"}.join(list_sep)
- end
-
- # Creates WHERE condition from list of composited ids
- # User.update_all({:role => 'admin'}, :conditions => composite_where_clause([[1, 2], [2, 2]])) #=> UPDATE admins SET admin.role='admin' WHERE (admin.type=1 AND admin.type2=2) OR (admin.type=2 AND admin.type2=2)
- # User.find(:all, :conditions => composite_where_clause([[1, 2], [2, 2]])) #=> SELECT * FROM admins WHERE (admin.type=1 AND admin.type2=2) OR (admin.type=2 AND admin.type2=2)
- def composite_where_clause(ids)
- if ids.is_a?(String)
- ids = [[ids]]
- elsif not ids.first.is_a?(Array) # if single comp key passed, turn into an array of 1
- ids = [ids.to_composite_ids]
- end
-
- ids.map do |id_set|
- [primary_keys, id_set].transpose.map do |key, id|
- "#{table_name}.#{key.to_s}=#{sanitize(id)}"
- end.join(" AND ")
- end.join(") OR (")
- end
-
- # Returns true if the given +ids+ represents the primary keys of a record in the database, false otherwise.
- # Example:
- # Person.exists?(5,7)
- def exists?(ids)
- if ids.is_a?(Array) && ids.first.is_a?(String)
- count(:conditions => ids) > 0
- else
- obj = find(ids) rescue false
- !obj.nil? and obj.is_a?(self)
- end
- end
-
- # Deletes the record with the given +ids+ without instantiating an object first, e.g. delete(1,2)
- # If an array of ids is provided (e.g. delete([1,2], [3,4]), all of them
- # are deleted.
- def delete(*ids)
- unless ids.is_a?(Array); raise "*ids must be an Array"; end
- ids = [ids.to_composite_ids] if not ids.first.is_a?(Array)
- where_clause = ids.map do |id_set|
- [primary_keys, id_set].transpose.map do |key, id|
- "#{quoted_table_name}.#{connection.quote_column_name(key.to_s)}=#{sanitize(id)}"
- end.join(" AND ")
- end.join(") OR (")
- delete_all([ "(#{where_clause})" ])
- end
-
- # Destroys the record with the given +ids+ by instantiating the object and calling #destroy (all the callbacks are the triggered).
- # If an array of ids is provided, all of them are destroyed.
- def destroy(*ids)
- unless ids.is_a?(Array); raise "*ids must be an Array"; end
- if ids.first.is_a?(Array)
- ids = ids.map{|compids| compids.to_composite_ids}
- else
- ids = ids.to_composite_ids
- end
- ids.first.is_a?(CompositeIds) ? ids.each { |id_set| find(id_set).destroy } : find(ids).destroy
- end
-
- # Returns an array of column objects for the table associated with this class.
- # Each column that matches to one of the primary keys has its
- # primary attribute set to true
- def columns
- unless @columns
- @columns = connection.columns(table_name, "#{name} Columns")
- @columns.each {|column| column.primary = primary_keys.include?(column.name.to_sym)}
- end
- @columns
- end
-
- ## DEACTIVATED METHODS ##
- public
- # Lazy-set the sequence name to the connection's default. This method
- # is only ever called once since set_sequence_name overrides it.
- def sequence_name #:nodoc:
- raise CompositeKeyError, CompositePrimaryKeys::ActiveRecord::Base::INVALID_FOR_COMPOSITE_KEYS
- end
-
- def reset_sequence_name #:nodoc:
- raise CompositeKeyError, CompositePrimaryKeys::ActiveRecord::Base::INVALID_FOR_COMPOSITE_KEYS
- end
-
- def set_primary_key(value = nil, &block)
- raise CompositeKeyError, CompositePrimaryKeys::ActiveRecord::Base::INVALID_FOR_COMPOSITE_KEYS
- end
-
- private
- def find_one(id, options)
- raise CompositeKeyError, CompositePrimaryKeys::ActiveRecord::Base::INVALID_FOR_COMPOSITE_KEYS
- end
-
- def find_some(ids, options)
- raise CompositeKeyError, CompositePrimaryKeys::ActiveRecord::Base::INVALID_FOR_COMPOSITE_KEYS
- end
-
- def find_from_ids(ids, options)
- ids = ids.first if ids.last == nil
- conditions = " AND (#{sanitize_sql(options[:conditions])})" if options[:conditions]
- # if ids is just a flat list, then its size must = primary_key.length (one id per primary key, in order)
- # if ids is list of lists, then each inner list must follow rule above
- if ids.first.is_a? String
- # find '2,1' -> ids = ['2,1']
- # find '2,1;7,3' -> ids = ['2,1;7,3']
- ids = ids.first.split(ID_SET_SEP).map {|id_set| id_set.split(ID_SEP).to_composite_ids}
- # find '2,1;7,3' -> ids = [['2','1'],['7','3']], inner [] are CompositeIds
- end
- ids = [ids.to_composite_ids] if not ids.first.kind_of?(Array)
- ids.each do |id_set|
- unless id_set.is_a?(Array)
- raise "Ids must be in an Array, instead received: #{id_set.inspect}"
- end
- unless id_set.length == primary_keys.length
- raise "#{id_set.inspect}: Incorrect number of primary keys for #{class_name}: #{primary_keys.inspect}"
- end
- end
-
- # Let keys = [:a, :b]
- # If ids = [[10, 50], [11, 51]], then :conditions =>
- # "(#{quoted_table_name}.a, #{quoted_table_name}.b) IN ((10, 50), (11, 51))"
-
- conditions = ids.map do |id_set|
- [primary_keys, id_set].transpose.map do |key, id|
- col = columns_hash[key.to_s]
- val = quote_value(id, col)
- "#{quoted_table_name}.#{connection.quote_column_name(key.to_s)}=#{val}"
- end.join(" AND ")
- end.join(") OR (")
-
- options.update :conditions => "(#{conditions})"
-
- result = find_every(options)
-
- if result.size == ids.size
- ids.size == 1 ? result[0] : result
- else
- raise ::ActiveRecord::RecordNotFound, "Couldn't find all #{name.pluralize} with IDs (#{ids.inspect})#{conditions}"
- end
- end
- end
- end
- end
-end
-
-
-module ActiveRecord
- ID_SEP = ','
- ID_SET_SEP = ';'
-
- class Base
- # Allows +attr_name+ to be the list of primary_keys, and returns the id
- # of the object
- # e.g. @object[@object.class.primary_key] => [1,1]
- def [](attr_name)
- if attr_name.is_a?(String) and attr_name != attr_name.split(ID_SEP).first
- attr_name = attr_name.split(ID_SEP)
- end
- attr_name.is_a?(Array) ?
- attr_name.map {|name| read_attribute(name)} :
- read_attribute(attr_name)
- end
-
- # Updates the attribute identified by <tt>attr_name</tt> with the specified +value+.
- # (Alias for the protected write_attribute method).
- def []=(attr_name, value)
- if attr_name.is_a?(String) and attr_name != attr_name.split(ID_SEP).first
- attr_name = attr_name.split(ID_SEP)
- end
-
- if attr_name.is_a? Array
- value = value.split(ID_SEP) if value.is_a? String
- unless value.length == attr_name.length
- raise "Number of attr_names and values do not match"
- end
- #breakpoint
- [attr_name, value].transpose.map {|name,val| write_attribute(name.to_s, val)}
- else
- write_attribute(attr_name, value)
- end
- end
- end
-end
+++ /dev/null
-module CompositePrimaryKeys
- module ActiveRecord
- module Calculations
- def self.append_features(base)
- super
- base.send(:extend, ClassMethods)
- end
-
- module ClassMethods
- def construct_calculation_sql(operation, column_name, options) #:nodoc:
- operation = operation.to_s.downcase
- options = options.symbolize_keys
-
- scope = scope(:find)
- merged_includes = merge_includes(scope ? scope[:include] : [], options[:include])
- aggregate_alias = column_alias_for(operation, column_name)
- use_workaround = !connection.supports_count_distinct? && options[:distinct] && operation.to_s.downcase == 'count'
- join_dependency = nil
-
- if merged_includes.any? && operation.to_s.downcase == 'count'
- options[:distinct] = true
- use_workaround = !connection.supports_count_distinct?
- column_name = options[:select] || primary_key.map{ |part| "#{quoted_table_name}.#{connection.quote_column_name(part)}"}.join(',')
- end
-
- sql = "SELECT #{operation}(#{'DISTINCT ' if options[:distinct]}#{column_name}) AS #{aggregate_alias}"
-
- # A (slower) workaround if we're using a backend, like sqlite, that doesn't support COUNT DISTINCT.
- sql = "SELECT COUNT(*) AS #{aggregate_alias}" if use_workaround
-
- sql << ", #{connection.quote_column_name(options[:group_field])} AS #{options[:group_alias]}" if options[:group]
- sql << " FROM (SELECT DISTINCT #{column_name}" if use_workaround
- sql << " FROM #{quoted_table_name} "
- if merged_includes.any?
- join_dependency = ::ActiveRecord::Associations::ClassMethods::JoinDependency.new(self, merged_includes, options[:joins])
- sql << join_dependency.join_associations.collect{|join| join.association_join }.join
- end
-
- add_joins!(sql, options[:joins], scope)
- add_conditions!(sql, options[:conditions], scope)
- add_limited_ids_condition!(sql, options, join_dependency) if \
- join_dependency &&
- !using_limitable_reflections?(join_dependency.reflections) &&
- ((scope && scope[:limit]) || options[:limit])
-
- if options[:group]
- group_key = connection.adapter_name == 'FrontBase' ? :group_alias : :group_field
- sql << " GROUP BY #{connection.quote_column_name(options[group_key])} "
- end
-
- if options[:group] && options[:having]
- # FrontBase requires identifiers in the HAVING clause and chokes on function calls
- if connection.adapter_name == 'FrontBase'
- options[:having].downcase!
- options[:having].gsub!(/#{operation}\s*\(\s*#{column_name}\s*\)/, aggregate_alias)
- end
-
- sql << " HAVING #{options[:having]} "
- end
-
- sql << " ORDER BY #{options[:order]} " if options[:order]
- add_limit!(sql, options, scope)
- sql << ') w1' if use_workaround # assign a dummy table name as required for postgresql
- sql
- end
- end
- end
- end
-end
+++ /dev/null
-module CompositePrimaryKeys
- ID_SEP = ','
- ID_SET_SEP = ';'
-
- module ArrayExtension
- def to_composite_keys
- CompositeKeys.new(self)
- end
-
- def to_composite_ids
- CompositeIds.new(self)
- end
- end
-
- class CompositeArray < Array
- def to_s
- join(ID_SEP)
- end
- end
-
- class CompositeKeys < CompositeArray
-
- end
-
- class CompositeIds < CompositeArray
-
- end
-end
-
-Array.send(:include, CompositePrimaryKeys::ArrayExtension)
+++ /dev/null
-module ActiveRecord
- module ConnectionAdapters
- class IBM_DBAdapter < AbstractAdapter
-
- # This mightn't be in Core, but count(distinct x,y) doesn't work for me
- def supports_count_distinct? #:nodoc:
- false
- end
-
- alias_method :quote_original, :quote
- def quote(value, column = nil)
- if value.kind_of?(String) && column && [:integer, :float].include?(column.type)
- value = column.type == :integer ? value.to_i : value.to_f
- value.to_s
- else
- quote_original(value, column)
- end
- end
- end
- end
-end
+++ /dev/null
-module ActiveRecord
- module ConnectionAdapters
- class OracleAdapter < AbstractAdapter
-
- # This mightn't be in Core, but count(distinct x,y) doesn't work for me
- def supports_count_distinct? #:nodoc:
- false
- end
-
- def concat(*columns)
- "(#{columns.join('||')})"
- end
- end
- end
-end
\ No newline at end of file
+++ /dev/null
-module ActiveRecord
- module ConnectionAdapters
- class PostgreSQLAdapter < AbstractAdapter
-
- # This mightn't be in Core, but count(distinct x,y) doesn't work for me
- def supports_count_distinct? #:nodoc:
- false
- end
-
- def concat(*columns)
- columns = columns.map { |c| "CAST(#{c} AS varchar)" }
- "(#{columns.join('||')})"
- end
-
- # Executes an INSERT query and returns the new record's ID
- def insert(sql, name = nil, pk = nil, id_value = nil, sequence_name = nil)
- # Extract the table from the insert sql. Yuck.
- table = sql.split(" ", 4)[2].gsub('"', '')
-
- # Try an insert with 'returning id' if available (PG >= 8.2)
- if supports_insert_with_returning?
- pk, sequence_name = *pk_and_sequence_for(table) unless pk
- if pk
- quoted_pk = if pk.is_a?(Array)
- pk.map { |col| quote_column_name(col) }.join(ID_SEP)
- else
- quote_column_name(pk)
- end
- id = select_value("#{sql} RETURNING #{quoted_pk}")
- clear_query_cache
- return id
- end
- end
-
- # Otherwise, insert then grab last_insert_id.
- if insert_id = super
- insert_id
- else
- # If neither pk nor sequence name is given, look them up.
- unless pk || sequence_name
- pk, sequence_name = *pk_and_sequence_for(table)
- end
-
- # If a pk is given, fallback to default sequence name.
- # Don't fetch last insert id for a table without a pk.
- if pk && sequence_name ||= default_sequence_name(table, pk)
- last_insert_id(table, sequence_name)
- end
- end
- end
- end
- end
-end
+++ /dev/null
-require 'active_record/connection_adapters/sqlite_adapter'
-
-module ActiveRecord
- module ConnectionAdapters #:nodoc:
- class SQLite3Adapter < SQLiteAdapter # :nodoc:
- def supports_count_distinct? #:nodoc:
- false
- end
-
- def concat(*columns)
- "(#{columns.join('||')})"
- end
- end
- end
-end
\ No newline at end of file
+++ /dev/null
-class Fixture #:nodoc:
- def [](key)
- if key.is_a? Array
- return key.map { |a_key| self[a_key.to_s] }.to_composite_ids.to_s
- end
- @fixture[key]
- end
-end
+++ /dev/null
-ActiveRecord::ConnectionAdapters::ColumnDefinition.send(:alias_method, :to_s_without_composite_keys, :to_s)
-
-ActiveRecord::ConnectionAdapters::ColumnDefinition.class_eval <<-'EOF'
- def to_s
- if name.is_a? Array
- "PRIMARY KEY (#{name.join(',')})"
- else
- to_s_without_composite_keys
- end
- end
-EOF
-
-ActiveRecord::ConnectionAdapters::TableDefinition.class_eval <<-'EOF'
- def [](name)
- @columns.find { |column|
- !column.name.is_a?(Array) && column.name.to_s == name.to_s
- }
- end
-EOF
-
\ No newline at end of file
+++ /dev/null
-module ActiveRecord
- module Reflection
- class AssociationReflection
- def primary_key_name
- return @primary_key_name if @primary_key_name
- case
- when macro == :belongs_to
- @primary_key_name = options[:foreign_key] || class_name.foreign_key
- when options[:as]
- @primary_key_name = options[:foreign_key] || "#{options[:as]}_id"
- else
- @primary_key_name = options[:foreign_key] || active_record.name.foreign_key
- end
- @primary_key_name = @primary_key_name.to_composite_keys.to_s if @primary_key_name.is_a? Array
- @primary_key_name
- end
- end
- end
-end
\ No newline at end of file
+++ /dev/null
-module CompositePrimaryKeys
- module VERSION #:nodoc:
- MAJOR = 2
- MINOR = 2
- TINY = 2
- STRING = [MAJOR, MINOR, TINY].join('.')
- end
-end
+++ /dev/null
-# Load local config files in /local
-begin
- local_file_supported = Dir[File.join(PROJECT_ROOT, 'local/*.sample')].map { |path| File.basename(path).sub(".sample","") }
- local_file_supported.each do |file|
- require "local/#{file}"
- end
-rescue LoadError
- puts <<-EOS
- This Gem supports local developer extensions in local/ folder.
- Supported files:
- #{local_file_supported.map { |f| "local/#{f}"}.join(', ')}
-
- Setup default sample files:
- rake local:setup
-
- Current warning: #{$!}
-
- EOS
-end
-
-
-# Now load Rake tasks from /tasks
-rakefiles = Dir[File.join(File.dirname(__FILE__), "tasks/**/*.rake")]
-rakefiles.each { |rakefile| load File.expand_path(rakefile) }
+++ /dev/null
-require 'yaml'
-
-ENV['cpk_adapters'] = {
- "mysql" => {
- :adapter => "mysql",
- :username => "root",
- :password => "root",
- # ...
- }
-}.to_yaml
\ No newline at end of file
+++ /dev/null
-# location of folder containing activerecord, railties, etc folders for each Rails gem
-ENV['EDGE_RAILS_DIR'] ||= "/path/to/copy/of/edge/rails"
+++ /dev/null
-# This file loaded into Rakefile
-# Place any extra development tasks you want here
\ No newline at end of file
+++ /dev/null
-#!/usr/bin/env ruby
-
-#
-# if run as script, load the file as library while starting irb
-#
-if __FILE__ == $0
- irb = RUBY_PLATFORM =~ /(:?mswin|mingw)/ ? 'irb.bat' : 'irb'
- ENV['ADAPTER'] = ARGV[0]
- exec "#{irb} -f -r #{$0} --simple-prompt"
-end
-
-#
-# check if the given adapter is supported (default: mysql)
-#
-adapters = %w[mysql sqlite oracle oracle_enhanced postgresql ibm_db]
-adapter = ENV['ADAPTER'] || 'mysql'
-unless adapters.include? adapter
- puts "Usage: #{__FILE__} <adapter>"
- puts ''
- puts 'Adapters: '
- puts adapters.map{ |adapter| " #{adapter}" }.join("\n")
- exit 1
-end
-
-#
-# load all necessary libraries
-#
-require 'rubygems'
-require 'local/database_connections'
-
-$LOAD_PATH.unshift 'lib'
-
-begin
- require 'local/paths'
- $LOAD_PATH.unshift "#{ENV['EDGE_RAILS_DIR']}/activerecord/lib" if ENV['EDGE_RAILS_DIR']
- $LOAD_PATH.unshift "#{ENV['EDGE_RAILS_DIR']}/activesupport/lib" if ENV['EDGE_RAILS_DIR']
-rescue
-end
-
-require 'active_support'
-require 'active_record'
-
-require "test/connections/native_#{adapter}/connection"
-require 'composite_primary_keys'
-
-PROJECT_ROOT = File.join(File.dirname(__FILE__), '..')
-Dir[File.join(PROJECT_ROOT,'test/fixtures/*.rb')].each { |model| require model }
-
+++ /dev/null
-#!/usr/bin/env ruby
-
-require 'rubygems'
-require 'redcloth'
-require 'syntax/convertors/html'
-require 'erb'
-require File.dirname(__FILE__) + '/../lib/composite_primary_keys/version.rb'
-
-version = CompositePrimaryKeys::VERSION::STRING
-download = 'http://rubyforge.org/projects/compositekeys'
-
-class Fixnum
- def ordinal
- # teens
- return 'th' if (10..19).include?(self % 100)
- # others
- case self % 10
- when 1: return 'st'
- when 2: return 'nd'
- when 3: return 'rd'
- else return 'th'
- end
- end
-end
-
-class Time
- def pretty
- return "#{mday}#{mday.ordinal} #{strftime('%B')} #{year}"
- end
-end
-
-def convert_syntax(syntax, source)
- return Syntax::Convertors::HTML.for_syntax(syntax).convert(source).gsub(%r!^<pre>|</pre>$!,'')
-end
-
-if ARGV.length >= 1
- src, template = ARGV
- template ||= File.dirname(__FILE__) + '/../website/template.rhtml'
-
-else
- puts("Usage: #{File.split($0).last} source.txt [template.rhtml] > output.html")
- exit!
-end
-
-template = ERB.new(File.open(template).read)
-
-title = nil
-body = nil
-File.open(src) do |fsrc|
- title_text = fsrc.readline
- body_text = fsrc.read
- syntax_items = []
- body_text.gsub!(%r!<(pre|code)[^>]*?syntax=['"]([^'"]+)[^>]*>(.*?)</\1>!m){
- ident = syntax_items.length
- element, syntax, source = $1, $2, $3
- syntax_items << "<#{element} class=\"syntax\">#{convert_syntax(syntax, source)}</#{element}>"
- "syntax-temp-#{ident}"
- }
- title = RedCloth.new(title_text).to_html.gsub(%r!<.*?>!,'').strip
- body = RedCloth.new(body_text).to_html
- body.gsub!(%r!(?:<pre><code>)?syntax-temp-(\d+)(?:</code></pre>)?!){ syntax_items[$1.to_i] }
-end
-stat = File.stat(src)
-created = stat.ctime
-modified = stat.mtime
-
-$stdout << template.result(binding)
+++ /dev/null
-#!/usr/bin/env ruby
-
-require 'rubygems'
-require 'redcloth'
-require 'syntax/convertors/html'
-require 'erb'
-require 'active_support'
-require File.dirname(__FILE__) + '/../lib/composite_primary_keys/version.rb'
-
-version = CompositePrimaryKeys::VERSION::STRING
-download = 'http://rubyforge.org/projects/compositekeys'
-
-class Fixnum
- def ordinal
- # teens
- return 'th' if (10..19).include?(self % 100)
- # others
- case self % 10
- when 1: return 'st'
- when 2: return 'nd'
- when 3: return 'rd'
- else return 'th'
- end
- end
-end
-
-class Time
- def pretty
- return "#{mday}#{mday.ordinal} #{strftime('%B')} #{year}"
- end
-end
-
-def convert_syntax(syntax, source)
- return Syntax::Convertors::HTML.for_syntax(syntax).convert(source).gsub(%r!^<pre>|</pre>$!,'')
-end
-
-if ARGV.length >= 1
- src, template = ARGV
- template ||= File.dirname(__FILE__) + '/../website/template.js'
-else
- puts("Usage: #{File.split($0).last} source.txt [template.js] > output.html")
- exit!
-end
-
-template = ERB.new(File.open(template).read)
-
-title = nil
-body = nil
-File.open(src) do |fsrc|
- title_text = fsrc.readline
- body_text = fsrc.read
- title = RedCloth.new(title_text).to_html.gsub(%r!<.*?>!,'').strip
- body = RedCloth.new(body_text)
-end
-stat = File.stat(src)
-created = stat.ctime
-modified = stat.mtime
-
-$stdout << template.result(binding)
+++ /dev/null
-namespace :ar do
- desc 'Pre-load edge rails ActiveRecord'
- task :edge do
- unless path = ENV['EDGE_RAILS_DIR'] || ENV['EDGE_RAILS']
- puts <<-EOS
-
-Need to define env var EDGE_RAILS_DIR or EDGE_RAILS- root of edge rails on your machine.
- i) Get copy of Edge Rails - http://dev.rubyonrails.org
- ii) Set EDGE_RAILS_DIR to this folder in local/paths.rb - see local/paths.rb.sample for example
- or
- a) Set folder from environment or command line (rake ar:edge EDGE_RAILS_DIR=/path/to/rails)
-
- EOS
- exit
- end
-
- ENV['AR_LOAD_PATH'] = File.join(path, "activerecord/lib")
- end
-
- desc 'Pre-load ActiveRecord using VERSION=X.Y.Z, instead of latest'
- task :set do
- unless version = ENV['VERSION']
- puts <<-EOS
-Usage: rake ar:get_version VERSION=1.15.3
- Specify the version number with VERSION=X.Y.Z; and make sure you have that activerecord gem version installed.
-
- EOS
- end
- version = nil if version == "" || version == []
- begin
- version ? gem('activerecord', version) : gem('activerecord')
- require 'active_record'
- ENV['AR_LOAD_PATH'] = $:.reverse.find { |path| /activerecord/ =~ path }
- rescue LoadError
- puts <<-EOS
-Missing: Cannot find activerecord #{version} installed.
- Install: gem install activerecord -v #{version}
-
- EOS
- exit
- end
- end
-end
\ No newline at end of file
+++ /dev/null
-require 'active_record'
-
-# UNTESTED - firebird sqlserver sqlserver_odbc db2 sybase openbase
-for adapter in %w( mysql sqlite oracle oracle_enhanced postgresql ibm_db )
- Rake::TestTask.new("test_#{adapter}") { |t|
- t.libs << "test" << "test/connections/native_#{adapter}"
- t.pattern = "test/test_*.rb"
- t.verbose = true
- }
-end
-
-SCHEMA_PATH = File.join(PROJECT_ROOT, *%w(test fixtures db_definitions))
+++ /dev/null
-namespace :mysql do
- desc 'Build the MySQL test databases'
- task :build_databases => :load_connection do
- puts File.join(SCHEMA_PATH, 'mysql.sql')
- options_str = ENV['cpk_adapter_options_str']
- # creates something like "-u#{username} -p#{password} -S#{socket}"
- sh %{ mysqladmin #{options_str} create "#{GEM_NAME}_unittest" }
- sh %{ mysql #{options_str} "#{GEM_NAME}_unittest" < #{File.join(SCHEMA_PATH, 'mysql.sql')} }
- end
-
- desc 'Drop the MySQL test databases'
- task :drop_databases => :load_connection do
- options_str = ENV['cpk_adapter_options_str']
- sh %{ mysqladmin #{options_str} -f drop "#{GEM_NAME}_unittest" }
- end
-
- desc 'Rebuild the MySQL test databases'
- task :rebuild_databases => [:drop_databases, :build_databases]
-
- task :load_connection do
- require File.join(PROJECT_ROOT, %w[lib adapter_helper mysql])
- spec = AdapterHelper::MySQL.load_connection_from_env
- options = {}
- options['u'] = spec[:username] if spec[:username]
- options['p'] = spec[:password] if spec[:password]
- options['S'] = spec[:sock] if spec[:sock]
- options_str = options.map { |key, value| "-#{key}#{value}" }.join(" ")
- ENV['cpk_adapter_options_str'] = options_str
- end
-end
+++ /dev/null
-namespace :oracle do
- desc 'Build the Oracle test databases'
- task :build_databases => :load_connection do
- puts File.join(SCHEMA_PATH, 'oracle.sql')
- options_str = ENV['cpk_adapter_options_str']
- sh %( sqlplus #{options_str} < #{File.join(SCHEMA_PATH, 'oracle.sql')} )
- end
-
- desc 'Drop the Oracle test databases'
- task :drop_databases => :load_connection do
- puts File.join(SCHEMA_PATH, 'oracle.drop.sql')
- options_str = ENV['cpk_adapter_options_str']
- sh %( sqlplus #{options_str} < #{File.join(SCHEMA_PATH, 'oracle.drop.sql')} )
- end
-
- desc 'Rebuild the Oracle test databases'
- task :rebuild_databases => [:drop_databases, :build_databases]
-
- task :load_connection do
- require File.join(PROJECT_ROOT, %w[lib adapter_helper oracle])
- spec = AdapterHelper::Oracle.load_connection_from_env
- ENV['cpk_adapter_options_str'] = "#{spec[:username]}/#{spec[:password]}@#{spec[:host]}"
- end
-
-end
+++ /dev/null
-namespace :postgresql do
- desc 'Build the PostgreSQL test databases'
- task :build_databases => :load_connection do
- sh %{ createdb "#{GEM_NAME}_unittest" }
- sh %{ psql "#{GEM_NAME}_unittest" -f #{File.join(SCHEMA_PATH, 'postgresql.sql')} }
- end
-
- desc 'Drop the PostgreSQL test databases'
- task :drop_databases => :load_connection do
- sh %{ dropdb "#{GEM_NAME}_unittest" }
- end
-
- desc 'Rebuild the PostgreSQL test databases'
- task :rebuild_databases => [:drop_databases, :build_databases]
-
- task :load_connection do
- require File.join(PROJECT_ROOT, %w[lib adapter_helper postgresql])
- spec = AdapterHelper::Postgresql.load_connection_from_env
- options = {}
- options['u'] = spec[:username] if spec[:username]
- options['p'] = spec[:password] if spec[:password]
- options_str = options.map { |key, value| "-#{key}#{value}" }.join(" ")
- ENV['cpk_adapter_options_str'] = options_str
- end
-end
-
+++ /dev/null
-namespace :sqlite3 do
- desc 'Build the sqlite test databases'
- task :build_databases => :load_connection do
- file = File.join(SCHEMA_PATH, 'sqlite.sql')
- dbfile = File.join(PROJECT_ROOT, ENV['cpk_adapter_options_str'])
- cmd = "mkdir -p #{File.dirname(dbfile)}"
- puts cmd
- sh %{ #{cmd} }
- cmd = "sqlite3 #{dbfile} < #{file}"
- puts cmd
- sh %{ #{cmd} }
- end
-
- desc 'Drop the sqlite test databases'
- task :drop_databases => :load_connection do
- dbfile = ENV['cpk_adapter_options_str']
- sh %{ rm -f #{dbfile} }
- end
-
- desc 'Rebuild the sqlite test databases'
- task :rebuild_databases => [:drop_databases, :build_databases]
-
- task :load_connection do
- require File.join(PROJECT_ROOT, %w[lib adapter_helper sqlite3])
- spec = AdapterHelper::Sqlite3.load_connection_from_env
- ENV['cpk_adapter_options_str'] = spec[:dbfile]
- end
-end
+++ /dev/null
-desc 'Release the website and new gem version'
-task :deploy => [:check_version, :website, :release] do
- puts "Remember to create SVN tag:"
- puts "svn copy svn+ssh://#{RUBYFORGE_USERNAME}@rubyforge.org/var/svn/#{PATH}/trunk " +
- "svn+ssh://#{RUBYFORGE_USERNAME}@rubyforge.org/var/svn/#{PATH}/tags/REL-#{VERS} "
- puts "Suggested comment:"
- puts "Tagging release #{CHANGES}"
-end
-
-desc 'Runs tasks website_generate and install_gem as a local deployment of the gem'
-task :local_deploy => [:website_generate, :install_gem]
-
-task :check_version do
- unless ENV['VERSION']
- puts 'Must pass a VERSION=x.y.z release version'
- exit
- end
- unless ENV['VERSION'] == VERS
- puts "Please update your version.rb to match the release version, currently #{VERS}"
- exit
- end
-end
+++ /dev/null
-namespace :local do
- desc 'Copies over the same local files ready for editing'
- task :setup do
- sample_files = Dir[File.join(PROJECT_ROOT, "local/*.rb.sample")]
- sample_files.each do |sample_file|
- file = sample_file.sub(".sample","")
- unless File.exists?(file)
- puts "Copying #{sample_file} -> #{file}"
- sh %{ cp #{sample_file} #{file} }
- end
- end
- end
-end
\ No newline at end of file
+++ /dev/null
-desc 'Generate website files'
-task :website_generate do
- sh %{ ruby scripts/txt2html website/index.txt > website/index.html }
- sh %{ ruby scripts/txt2js website/version.txt > website/version.js }
- sh %{ ruby scripts/txt2js website/version-raw.txt > website/version-raw.js }
-end
-
-desc 'Upload website files to rubyforge'
-task :website_upload do
- config = YAML.load(File.read(File.expand_path("~/.rubyforge/user-config.yml")))
- host = "#{config["username"]}@rubyforge.org"
- remote_dir = "/var/www/gforge-projects/#{RUBYFORGE_PROJECT}/"
- local_dir = 'website'
- sh %{rsync -aCv #{local_dir}/ #{host}:#{remote_dir}}
-end
-
-desc 'Generate and upload website files'
-task :website => [:website_generate, :website_upload, :publish_docs]
+++ /dev/null
-= Composite Primary Keys - Testing Readme
-
-== Testing an adapter
-
-There are tests available for the following adapters:
-
-* ibmdb
-* mysql
-* oracle
-* postgresql
-* sqlite
-
-To run the tests for on of the adapters, follow these steps (using mysql in the example):
-
-* rake -T | grep mysql
-
- rake mysql:build_databases # Build the MySQL test databases
- rake mysql:drop_databases # Drop the MySQL test databases
- rake mysql:rebuild_databases # Rebuild the MySQL test databases
- rake test_mysql # Run tests for test_mysql
-
-* rake mysql:build_databases
-* rake test_mysql
-
-== Testing against different ActiveRecord versions (or Edge Rails)
-
-ActiveRecord is a RubyGem within Rails, and is constantly being improved/changed on
-its repository (http://dev.rubyonrails.org). These changes may create errors for the CPK
-gem. So, we need a way to test CPK against Edge Rails, as well as officially released RubyGems.
-
-The default test (as above) uses the latest RubyGem in your cache.
-
-You can select an older RubyGem version by running the following:
-
-* rake ar:set VERSION=1.14.4 test_mysql
-
-== Edge Rails
-
-Before you can test CPK against Edge Rails, you must checkout a copy of edge rails somewhere (see http://dev.rubyonrails.org for for examples)
-
-* cd /path/to/gems
-* svn co http://svn.rubyonrails.org/rails/trunk rails
-
-Say the rails folder is /path/to/gems/rails
-
-Three ways to run CPK tests for Edge Rails:
-
-i) Run:
-
- EDGE_RAILS_DIR=/path/to/gems/rails rake ar:edge test_mysql
-
-ii) In your .profile, set the environment variable EDGE_RAILS_DIR=/path/to/gems/rails,
- and once you reload your profile, run:
-
- rake ar:edge test_mysql
-
-iii) Store the path in local/paths.rb. Run:
-
- cp local/paths.rb.sample local/paths.rb
- # Now set ENV['EDGE_RAILS_DIR']=/path/to/gems/rails
- rake ar:edge test_mysql
-
-These are all variations of the same theme:
-
-* Set the environment variable EDGE_RAILS_DIR to the path to Rails (which contains the activerecord/lib folder)
-* Run: rake ar:edge test_<adapter>
-
+++ /dev/null
-$:.unshift(ENV['AR_LOAD_PATH']) if ENV['AR_LOAD_PATH']
-
-require 'test/unit'
-require 'hash_tricks'
-require 'rubygems'
-require 'active_record'
-require 'active_record/fixtures'
-begin
- require 'connection'
-rescue MissingSourceFile => e
- adapter = 'postgresql' #'sqlite'
- require "#{File.dirname(__FILE__)}/connections/native_#{adapter}/connection"
-end
-require 'composite_primary_keys'
-
-QUOTED_TYPE = ActiveRecord::Base.connection.quote_column_name('type') unless Object.const_defined?(:QUOTED_TYPE)
-
-class Test::Unit::TestCase #:nodoc:
- self.fixture_path = File.dirname(__FILE__) + "/fixtures/"
- self.use_instantiated_fixtures = false
- self.use_transactional_fixtures = true
-
- def assert_date_from_db(expected, actual, message = nil)
- # SQL Server doesn't have a separate column type just for dates,
- # so the time is in the string and incorrectly formatted
- if current_adapter?(:SQLServerAdapter)
- assert_equal expected.strftime("%Y/%m/%d 00:00:00"), actual.strftime("%Y/%m/%d 00:00:00")
- elsif current_adapter?(:SybaseAdapter)
- assert_equal expected.to_s, actual.to_date.to_s, message
- else
- assert_equal expected.to_s, actual.to_s, message
- end
- end
-
- def assert_queries(num = 1)
- ActiveRecord::Base.connection.class.class_eval do
- self.query_count = 0
- alias_method :execute, :execute_with_query_counting
- end
- yield
- ensure
- ActiveRecord::Base.connection.class.class_eval do
- alias_method :execute, :execute_without_query_counting
- end
- assert_equal num, ActiveRecord::Base.connection.query_count, "#{ActiveRecord::Base.connection.query_count} instead of #{num} queries were executed."
- end
-
- def assert_no_queries(&block)
- assert_queries(0, &block)
- end
-
- cattr_accessor :classes
-protected
-
- def testing_with(&block)
- classes.keys.each do |@key_test|
- @klass_info = classes[@key_test]
- @klass, @primary_keys = @klass_info[:class], @klass_info[:primary_keys]
- order = @klass.primary_key.is_a?(String) ? @klass.primary_key : @klass.primary_key.join(',')
- @first = @klass.find(:first, :order => order)
- yield
- end
- end
-
- def first_id
- ids = (1..@primary_keys.length).map {|num| 1}
- composite? ? ids.to_composite_ids : ids.first
- end
-
- def first_id_str
- composite? ? first_id.join(CompositePrimaryKeys::ID_SEP) : first_id.to_s
- end
-
- def composite?
- @key_test != :single
- end
-end
-
-def current_adapter?(type)
- ActiveRecord::ConnectionAdapters.const_defined?(type) &&
- ActiveRecord::Base.connection.instance_of?(ActiveRecord::ConnectionAdapters.const_get(type))
-end
-
-ActiveRecord::Base.connection.class.class_eval do
- cattr_accessor :query_count
- alias_method :execute_without_query_counting, :execute
- def execute_with_query_counting(sql, name = nil)
- self.query_count += 1
- execute_without_query_counting(sql, name)
- end
-end
-
-#ActiveRecord::Base.logger = Logger.new(STDOUT)
-#ActiveRecord::Base.colorize_logging = false
+++ /dev/null
-print "Using IBM2 \n"
-require 'logger'
-
-gem 'ibm_db'
-require 'IBM_DB'
-
-RAILS_CONNECTION_ADAPTERS = %w( mysql postgresql sqlite firebird sqlserver db2 oracle sybase openbase frontbase ibm_db )
-
-
-ActiveRecord::Base.logger = Logger.new("debug.log")
-
-db1 = 'composite_primary_keys_unittest'
-
-connection_options = {
- :adapter => "ibm_db",
- :database => "ocdpdev",
- :username => "db2inst1",
- :password => "password",
- :host => '192.168.2.21'
-}
-
-ActiveRecord::Base.configurations = { db1 => connection_options }
-ActiveRecord::Base.establish_connection(connection_options)
+++ /dev/null
-print "Using native MySQL\n"
-require 'fileutils'
-require 'logger'
-require 'adapter_helper/mysql'
-
-log_path = File.expand_path(File.join(File.dirname(__FILE__), %w[.. .. .. log]))
-FileUtils.mkdir_p log_path
-puts "Logging to #{log_path}/debug.log"
-ActiveRecord::Base.logger = Logger.new("#{log_path}/debug.log")
-
-# Adapter config setup in locals/database_connections.rb
-connection_options = AdapterHelper::MySQL.load_connection_from_env
-ActiveRecord::Base.establish_connection(connection_options)
+++ /dev/null
-print "Using native Oracle\n"
-require 'fileutils'
-require 'logger'
-require 'adapter_helper/oracle'
-
-log_path = File.expand_path(File.join(File.dirname(__FILE__), %w[.. .. .. log]))
-FileUtils.mkdir_p log_path
-puts "Logging to #{log_path}/debug.log"
-ActiveRecord::Base.logger = Logger.new("#{log_path}/debug.log")
-
-# Adapter config setup in locals/database_connections.rb
-connection_options = AdapterHelper::Oracle.load_connection_from_env
-puts connection_options.inspect
-ActiveRecord::Base.establish_connection(connection_options)
+++ /dev/null
-print "Using native Postgresql\n"
-require 'logger'
-require 'adapter_helper/postgresql'
-
-ActiveRecord::Base.logger = Logger.new("debug.log")
-
-# Adapter config setup in locals/database_connections.rb
-connection_options = AdapterHelper::Postgresql.load_connection_from_env
-ActiveRecord::Base.establish_connection(connection_options)
+++ /dev/null
-print "Using native Sqlite3\n"
-require 'logger'
-require 'adapter_helper/sqlite3'
-
-ActiveRecord::Base.logger = Logger.new("debug.log")
-
-# Adapter config setup in locals/database_connections.rb
-connection_options = AdapterHelper::Sqlite3.load_connection_from_env
-ActiveRecord::Base.establish_connection(connection_options)
+++ /dev/null
-class Article < ActiveRecord::Base
- has_many :readings
- has_many :users, :through => :readings
-end
-
+++ /dev/null
-first:
- id: 1
- name: Article One
-second:
- id: 2
- name: Article Two
\ No newline at end of file
+++ /dev/null
-class Comment < ActiveRecord::Base
- set_primary_keys :id
- belongs_to :person, :polymorphic => true
- belongs_to :hack
-end
-
+++ /dev/null
-comment1:
- id: 1
- person_id: 1
- person_type: Employee
-
-comment2:
- id: 2
- person_id: 1
- person_type: User
- hack_id: andrew
-
-comment3:
- id: 3
- person_id: andrew
- person_type: Hack
-
\ No newline at end of file
+++ /dev/null
-CREATE TABLE reference_types (
- reference_type_id integer NOT NULL generated by default as identity (start with 100, increment by 1, no cache),
- type_label varchar(50) default NULL,
- abbreviation varchar(50) default NULL,
- description varchar(50) default NULL,
- PRIMARY KEY (reference_type_id)
-);
-
-CREATE TABLE reference_codes (
- reference_type_id integer,
- reference_code integer NOT NULL,
- code_label varchar(50) default NULL,
- abbreviation varchar(50) default NULL,
- description varchar(50) default NULL,
- PRIMARY KEY (reference_type_id,reference_code)
-);
-
-CREATE TABLE products (
- id integer NOT NULL,
- name varchar(50) default NULL,
- PRIMARY KEY (id)
-);
-
-CREATE TABLE tariffs (
- tariff_id integer NOT NULL,
- start_date date NOT NULL,
- amount integer default NULL,
- PRIMARY KEY (tariff_id,start_date)
-);
-
-CREATE TABLE product_tariffs (
- product_id integer NOT NULL,
- tariff_id integer NOT NULL,
- tariff_start_date date NOT NULL,
- PRIMARY KEY (product_id,tariff_id,tariff_start_date)
-);
-
-CREATE TABLE suburbs (
- city_id integer NOT NULL,
- suburb_id integer NOT NULL,
- name varchar(50) NOT NULL,
- PRIMARY KEY (city_id,suburb_id)
-);
-
-CREATE TABLE streets (
- id integer NOT NULL ,
- city_id integer NOT NULL,
- suburb_id integer NOT NULL,
- name varchar(50) NOT NULL,
- PRIMARY KEY (id)
-);
-
-CREATE TABLE users (
- id integer NOT NULL ,
- name varchar(50) NOT NULL,
- PRIMARY KEY (id)
-);
-
-CREATE TABLE articles (
- id integer NOT NULL ,
- name varchar(50) NOT NULL,
- PRIMARY KEY (id)
-);
-
-CREATE TABLE readings (
- id integer NOT NULL ,
- user_id integer NOT NULL,
- article_id integer NOT NULL,
- rating integer NOT NULL,
- PRIMARY KEY (id)
-);
-
-CREATE TABLE groups (
- id integer NOT NULL ,
- name varchar(50) NOT NULL,
- PRIMARY KEY (id)
-);
-
-CREATE TABLE memberships (
- user_id integer NOT NULL,
- group_id integer NOT NULL,
- PRIMARY KEY (user_id,group_id)
-);
-
-CREATE TABLE membership_statuses (
- id integer NOT NULL ,
- user_id integer NOT NULL,
- group_id integer NOT NULL,
- status varchar(50) NOT NULL,
- PRIMARY KEY (id)
-);
-
-create table kitchen_sinks (
- id_1 integer not null,
- id_2 integer not null,
- a_date date,
- a_string varchar(100),
- primary key (id_1, id_2)
-);
-
-create table restaurants (
- franchise_id integer not null,
- store_id integer not null,
- name varchar(100),
- primary key (franchise_id, store_id)
-);
-
-create table restaurants_suburbs (
- franchise_id integer not null,
- store_id integer not null,
- city_id integer not null,
- suburb_id integer not null
-);
+++ /dev/null
-drop table MEMBERSHIPS;
-drop table REFERENCE_CODES;
-drop table TARIFFS;
-drop table ARTICLES;
-drop table GROUPS;
-drop table MEMBERSHIP_STATUSES;
-drop table READINGS;
-drop table REFERENCE_TYPES;
-drop table STREETS;
-drop table PRODUCTS;
-drop table USERS;
-drop table SUBURBS;
-drop table PRODUCT_TARIFFS;
-drop table KITCHEN_SINK;
-drop table RESTAURANTS;
-drop table RESTAURANTS_SUBURBS;
+++ /dev/null
-create table reference_types (
- reference_type_id int(11) not null auto_increment,
- type_label varchar(50) default null,
- abbreviation varchar(50) default null,
- description varchar(50) default null,
- primary key (reference_type_id)
-) type=InnoDB;
-
-create table reference_codes (
- reference_type_id int(11),
- reference_code int(11) not null,
- code_label varchar(50) default null,
- abbreviation varchar(50) default null,
- description varchar(50) default null,
- primary key (reference_type_id, reference_code)
-) type=InnoDB;
-
-create table products (
- id int(11) not null auto_increment,
- name varchar(50) default null,
- primary key (id)
-) type=InnoDB;
-
-create table tariffs (
- tariff_id int(11) not null,
- start_date date not null,
- amount integer(11) default null,
- primary key (tariff_id, start_date)
-) type=InnoDB;
-
-create table product_tariffs (
- product_id int(11) not null,
- tariff_id int(11) not null,
- tariff_start_date date not null,
- primary key (product_id, tariff_id, tariff_start_date)
-) type=InnoDB;
-
-create table suburbs (
- city_id int(11) not null,
- suburb_id int(11) not null,
- name varchar(50) not null,
- primary key (city_id, suburb_id)
-) type=InnoDB;
-
-create table streets (
- id int(11) not null auto_increment,
- city_id int(11) not null,
- suburb_id int(11) not null,
- name varchar(50) not null,
- primary key (id)
-) type=InnoDB;
-
-create table users (
- id int(11) not null auto_increment,
- name varchar(50) not null,
- primary key (id)
-) type=InnoDB;
-
-create table articles (
- id int(11) not null auto_increment,
- name varchar(50) not null,
- primary key (id)
-) type=InnoDB;
-
-create table readings (
- id int(11) not null auto_increment,
- user_id int(11) not null,
- article_id int(11) not null,
- rating int(11) not null,
- primary key (id)
-) type=InnoDB;
-
-create table groups (
- id int(11) not null auto_increment,
- name varchar(50) not null,
- primary key (id)
-) type=InnoDB;
-
-create table memberships (
- user_id int(11) not null,
- group_id int(11) not null,
- primary key (user_id,group_id)
-) type=InnoDB;
-
-create table membership_statuses (
- id int(11) not null auto_increment,
- user_id int(11) not null,
- group_id int(11) not null,
- status varchar(50) not null,
- primary key (id)
-) type=InnoDB;
-
-create table departments (
- department_id int(11) not null,
- location_id int(11) not null,
- primary key (department_id, location_id)
-) type=InnoDB;
-
-create table employees (
- id int(11) not null auto_increment,
- department_id int(11) default null,
- location_id int(11) default null,
- primary key (id)
-) type=InnoDB;
-
-create table comments (
- id int(11) not null auto_increment,
- person_id varchar(100) default null,
- person_type varchar(100) default null,
- hack_id varchar(100) default null,
- primary key (id)
-) type=InnoDB;
-
-create table hacks (
- name varchar(50) not null,
- primary key (name)
-) type=InnoDB;
-
-create table kitchen_sinks (
- id_1 int(11) not null,
- id_2 int(11) not null,
- a_date date,
- a_string varchar(100),
- primary key (id_1, id_2)
-) type=InnoDB;
-
-create table restaurants (
- franchise_id int(11) not null,
- store_id int(11) not null,
- name varchar(100),
- primary key (franchise_id, store_id)
-) type=InnoDB;
-
-create table restaurants_suburbs (
- franchise_id int(11) not null,
- store_id int(11) not null,
- city_id int(11) not null,
- suburb_id int(11) not null
-) type=InnoDB;
-
-create table dorms (
- id int(11) not null auto_increment,
- primary key(id)
-) type=InnoDB;
-
-create table rooms (
- dorm_id int(11) not null,
- room_id int(11) not null,
- primary key (dorm_id, room_id)
-) type=InnoDB;
-
-create table room_attributes (
- id int(11) not null auto_increment,
- name varchar(50),
- primary key(id)
-) type=InnoDB;
-
-create table room_attribute_assignments (
- dorm_id int(11) not null,
- room_id int(11) not null,
- room_attribute_id int(11) not null
-) type=InnoDB;
-
-create table students (
- id int(11) not null auto_increment,
- primary key(id)
-) type=InnoDB;
-
-create table room_assignments (
- student_id int(11) not null,
- dorm_id int(11) not null,
- room_id int(11) not null
-) type=InnoDB;
-
+++ /dev/null
-drop table reference_types;
-drop sequence reference_types_seq;
-drop table reference_codes;
-drop table products;
-drop sequence products_seq;
-drop table tariffs;
-drop table product_tariffs;
-drop table suburbs;
-drop table streets;
-drop sequence streets_seq;
-drop table users;
-drop sequence users_seq;
-drop table articles;
-drop sequence articles_seq;
-drop table readings;
-drop sequence readings_seq;
-drop table groups;
-drop sequence groups_seq;
-drop table memberships;
-drop table membership_statuses;
-drop sequence membership_statuses_seq;
-drop table departments;
-drop table employees;
-drop sequence employees_seq;
-drop table comments;
-drop sequence comments_seq;
-drop table hacks;
-drop table kitchen_sinks;
-drop table restaurants;
-drop table restaurants_suburbs;
-drop table dorms;
-drop sequence dorms_seq;
-drop table rooms;
-drop table room_attributes;
-drop sequence room_attributes_seq;
-drop table room_attribute_assignments;
-drop table room_assignments;
-drop table students;
-drop sequence students_seq;
+++ /dev/null
-create sequence reference_types_seq start with 1000;
-
-create table reference_types (
- reference_type_id number(11) primary key,
- type_label varchar2(50) default null,
- abbreviation varchar2(50) default null,
- description varchar2(50) default null
-);
-
-create table reference_codes (
- reference_type_id number(11),
- reference_code number(11),
- code_label varchar2(50) default null,
- abbreviation varchar2(50) default null,
- description varchar2(50) default null
-);
-
-create sequence products_seq start with 1000;
-
-create table products (
- id number(11) primary key,
- name varchar2(50) default null
-);
-
-create table tariffs (
- tariff_id number(11),
- start_date date,
- amount number(11) default null,
- constraint tariffs_pk primary key (tariff_id, start_date)
-);
-
-create table product_tariffs (
- product_id number(11),
- tariff_id number(11),
- tariff_start_date date,
- constraint product_tariffs_pk primary key (product_id, tariff_id, tariff_start_date)
-);
-
-create table suburbs (
- city_id number(11),
- suburb_id number(11),
- name varchar2(50) not null,
- constraint suburbs_pk primary key (city_id, suburb_id)
-);
-
-create sequence streets_seq start with 1000;
-
-create table streets (
- id number(11) primary key,
- city_id number(11) not null,
- suburb_id number(11) not null,
- name varchar2(50) not null
-);
-
-create sequence users_seq start with 1000;
-
-create table users (
- id number(11) primary key,
- name varchar2(50) not null
-);
-
-create sequence articles_seq start with 1000;
-
-create table articles (
- id number(11) primary key,
- name varchar2(50) not null
-);
-
-create sequence readings_seq start with 1000;
-
-create table readings (
- id number(11) primary key,
- user_id number(11) not null,
- article_id number(11) not null,
- rating number(11) not null
-);
-
-create sequence groups_seq start with 1000;
-
-create table groups (
- id number(11) primary key,
- name varchar2(50) not null
-);
-
-create table memberships (
- user_id number(11) not null,
- group_id number(11) not null,
- constraint memberships_pk primary key (user_id, group_id)
-);
-
-create sequence membership_statuses_seq start with 1000;
-
-create table membership_statuses (
- id number(11) primary key,
- user_id number(11) not null,
- group_id number(11) not null,
- status varchar2(50) not null
-);
-
-create table departments (
- department_id number(11) not null,
- location_id number(11) not null,
- constraint departments_pk primary key (department_id, location_id)
-);
-
-create sequence employees_seq start with 1000;
-
-create table employees (
- id number(11) not null primary key,
- department_id number(11) default null,
- location_id number(11) default null
-);
-
-create sequence comments_seq start with 1000;
-
-create table comments (
- id number(11) not null primary key,
- person_id varchar(100) default null,
- person_type varchar(100) default null,
- hack_id varchar(100) default null
-);
-
-create table hacks (
- name varchar(50) not null primary key
-);
-
-create table kitchen_sinks (
- id_1 number(11) not null,
- id_2 number(11) not null,
- a_date date,
- a_string varchar(100),
- constraint kitchen_sinks_pk primary key (id_1, id_2)
-);
-
-create table restaurants (
- franchise_id number(11) not null,
- store_id number(11) not null,
- name varchar(100),
- constraint restaurants_pk primary key (franchise_id, store_id)
-);
-
-create table restaurants_suburbs (
- franchise_id number(11) not null,
- store_id number(11) not null,
- city_id number(11) not null,
- suburb_id number(11) not null
-);
-
-create sequence dorms_seq start with 1000;
-
-create table dorms (
- id number(11) not null,
- constraint dorms_pk primary key (id)
-);
-
-create table rooms (
- dorm_id number(11) not null,
- room_id number(11) not null,
- constraint rooms_pk primary key (dorm_id, room_id)
-);
-
-create sequence room_attributes_seq start with 1000;
-
-create table room_attributes (
- id number(11) not null,
- name varchar(50),
- constraint room_attributes_pk primary key (id)
-);
-
-create table room_attribute_assignments (
- dorm_id number(11) not null,
- room_id number(11) not null,
- room_attribute_id number(11) not null
-);
-
-create sequence students_seq start with 1000;
-
-create table students (
- id number(11) not null,
- constraint students_pk primary key (id)
-);
-
-create table room_assignments (
- student_id number(11) not null,
- dorm_id number(11) not null,
- room_id number(11) not null
-);
-
+++ /dev/null
-create sequence public.reference_types_seq start 1000;
-
-create table reference_types (
- reference_type_id int default nextval('public.reference_types_seq'),
- type_label varchar(50) default null,
- abbreviation varchar(50) default null,
- description varchar(50) default null,
- primary key (reference_type_id)
-);
-
-create table reference_codes (
- reference_type_id int,
- reference_code int not null,
- code_label varchar(50) default null,
- abbreviation varchar(50) default null,
- description varchar(50) default null
-);
-
-create sequence public.products_seq start 1000;
-
-create table products (
- id int not null default nextval('public.products_seq'),
- name varchar(50) default null,
- primary key (id)
-);
-
-create table tariffs (
- tariff_id int not null,
- start_date date not null,
- amount int default null,
- primary key (tariff_id, start_date)
-);
-
-create table product_tariffs (
- product_id int not null,
- tariff_id int not null,
- tariff_start_date date not null,
- primary key (product_id, tariff_id, tariff_start_date)
-);
-
-create table suburbs (
- city_id int not null,
- suburb_id int not null,
- name varchar(50) not null,
- primary key (city_id, suburb_id)
-);
-
-create sequence public.streets_seq start 1000;
-
-create table streets (
- id int not null default nextval('public.streets_seq'),
- city_id int not null,
- suburb_id int not null,
- name varchar(50) not null,
- primary key (id)
-);
-
-create sequence public.users_seq start 1000;
-
-create table users (
- id int not null default nextval('public.users_seq'),
- name varchar(50) not null,
- primary key (id)
-);
-
-create sequence public.articles_seq start 1000;
-
-create table articles (
- id int not null default nextval('public.articles_seq'),
- name varchar(50) not null,
- primary key (id)
-);
-
-create sequence public.readings_seq start 1000;
-
-create table readings (
- id int not null default nextval('public.readings_seq'),
- user_id int not null,
- article_id int not null,
- rating int not null,
- primary key (id)
-);
-
-create sequence public.groups_seq start 1000;
-
-create table groups (
- id int not null default nextval('public.groups_seq'),
- name varchar(50) not null,
- primary key (id)
-);
-
-create table memberships (
- user_id int not null,
- group_id int not null,
- primary key (user_id, group_id)
-);
-
-create sequence public.membership_statuses_seq start 1000;
-
-create table membership_statuses (
- id int not null default nextval('public.membership_statuses_seq'),
- user_id int not null,
- group_id int not null,
- status varchar(50) not null,
- primary key (id)
-);
-
-create table departments (
- department_id int not null,
- location_id int not null,
- primary key (department_id, location_id)
-);
-
-create sequence public.employees_seq start 1000;
-
-create table employees (
- id int not null default nextval('public.employees_seq'),
- department_id int default null,
- location_id int default null,
- primary key (id)
-);
-
-create sequence public.comments_seq start 1000;
-
-create table comments (
- id int not null default nextval('public.comments_seq'),
- person_id varchar(100) default null,
- person_type varchar(100) default null,
- hack_id varchar(100) default null,
- primary key (id)
-);
-
-create table hacks (
- name varchar(50) not null,
- primary key (name)
-);
-
-create table kitchen_sinks (
- id_1 int not null,
- id_2 int not null,
- a_date date,
- a_string varchar(100),
- primary key (id_1, id_2)
-);
-
-create table restaurants (
- franchise_id int not null,
- store_id int not null,
- name varchar(100),
- primary key (franchise_id, store_id)
-);
-
-create table restaurants_suburbs (
- franchise_id int not null,
- store_id int not null,
- city_id int not null,
- suburb_id int not null
-);
-
-create sequence public.dorms_seq start 1000;
-
-create table dorms (
- id int not null default nextval('public.dorms_seq'),
- primary key (id)
-);
-
-create table rooms (
- dorm_id int not null,
- room_id int not null,
- primary key (dorm_id, room_id)
-);
-
-create sequence public.room_attributes_seq start 1000;
-
-create table room_attributes (
- id int not null default nextval('public.room_attributes_seq'),
- name varchar(50),
- primary key (id)
-);
-
-create table room_attribute_assignments (
- dorm_id int not null,
- room_id int not null,
- room_attribute_id int not null
-);
-
-create sequence public.students_seq start 1000;
-
-create table students (
- id int not null default nextval('public.students_seq'),
- primary key (id)
-);
-
-create table room_assignments (
- student_id int not null,
- dorm_id int not null,
- room_id int not null
-);
-
+++ /dev/null
-create table reference_types (
- reference_type_id integer primary key,
- type_label varchar(50) default null,
- abbreviation varchar(50) default null,
- description varchar(50) default null
-);
-
-create table reference_codes (
- reference_type_id int(11),
- reference_code int(11) not null,
- code_label varchar(50) default null,
- abbreviation varchar(50) default null,
- description varchar(50) default null,
- primary key (reference_type_id, reference_code)
-);
-
-create table products (
- id int(11) not null primary key,
- name varchar(50) default null
-);
-
-create table tariffs (
- tariff_id int(11) not null,
- start_date date not null,
- amount integer(11) default null,
- primary key (tariff_id, start_date)
-);
-
-create table product_tariffs (
- product_id int(11) not null,
- tariff_id int(11) not null,
- tariff_start_date date not null,
- primary key (product_id, tariff_id, tariff_start_date)
-);
-
-create table suburbs (
- city_id int(11) not null,
- suburb_id int(11) not null,
- name varchar(50) not null,
- primary key (city_id, suburb_id)
-);
-
-create table streets (
- id integer not null primary key autoincrement,
- city_id int(11) not null,
- suburb_id int(11) not null,
- name varchar(50) not null
-);
-
-create table users (
- id integer not null primary key autoincrement,
- name varchar(50) not null
-);
-
-create table articles (
- id integer not null primary key autoincrement,
- name varchar(50) not null
-);
-
-create table readings (
- id integer not null primary key autoincrement,
- user_id int(11) not null,
- article_id int(11) not null,
- rating int(11) not null
-);
-
-create table groups (
- id integer not null primary key autoincrement,
- name varchar(50) not null
-);
-
-create table memberships (
- user_id int not null,
- group_id int not null,
- primary key (user_id, group_id)
-);
-
-create table membership_statuses (
- id integer not null primary key autoincrement,
- user_id int not null,
- group_id int not null,
- status varchar(50) not null
-);
-
-create table departments (
- department_id integer not null,
- location_id integer not null,
- primary key (department_id, location_id)
-);
-
-create table employees (
- id integer not null primary key autoincrement,
- department_id integer null,
- location_id integer null
-);
-
-create table comments (
- id integer not null primary key autoincrement,
- person_id varchar(100) null,
- person_type varchar(100) null,
- hack_id varchar(100) null
-);
-
-create table hacks (
- name varchar(50) not null primary key
-);
-
-create table kitchen_sinks (
- id_1 integer not null,
- id_2 integer not null,
- a_date date,
- a_string varchar(100),
- primary key (id_1, id_2)
-);
-
-create table restaurants (
- franchise_id integer not null,
- store_id integer not null,
- name varchar(100),
- primary key (franchise_id, store_id)
-);
-
-create table restaurants_suburbs (
- franchise_id integer not null,
- store_id integer not null,
- city_id integer not null,
- suburb_id integer not null
-);
-
-create table dorms (
- id integer not null primary key autoincrement
-);
-
-create table rooms (
- dorm_id integer not null,
- room_id integer not null,
- primary key (dorm_id, room_id)
-);
-
-create table room_attributes (
- id integer not null primary key autoincrement,
- name varchar(50)
-);
-
-create table room_attribute_assignments (
- dorm_id integer not null,
- room_id integer not null,
- room_attribute_id integer not null
-);
-
-create table students (
- id integer not null primary key autoincrement
-);
-
-create table room_assignments (
- student_id integer not null,
- dorm_id integer not null,
- room_id integer not null
-);
-
+++ /dev/null
-class Department < ActiveRecord::Base
- # set_primary_keys *keys - turns on composite key functionality
- set_primary_keys :department_id, :location_id
- has_many :employees, :foreign_key => [:department_id, :location_id]
-end
+++ /dev/null
-department1-cpk:
- department_id: 1
- location_id: 1
+++ /dev/null
-class Employee < ActiveRecord::Base
- belongs_to :department, :foreign_key => [:department_id, :location_id]
- has_many :comments, :as => :person
-end
+++ /dev/null
-employee1:
- id: 1
- department_id: 1
- location_id: 1
-employee2:
- id: 2
- department_id: 1
- location_id: 1
-
+++ /dev/null
-class Group < ActiveRecord::Base
- has_many :memberships
-end
\ No newline at end of file
+++ /dev/null
-cpk:
- id: 1
- name: Composite Primary Keys
\ No newline at end of file
+++ /dev/null
-class Hack < ActiveRecord::Base
- set_primary_keys :name
- has_many :comments, :as => :person
-
- has_one :first_comment, :as => :person, :class_name => "Comment"
-end
\ No newline at end of file
+++ /dev/null
-andrew:
- name: andrew
\ No newline at end of file
+++ /dev/null
-class Membership < ActiveRecord::Base
- # set_primary_keys *keys - turns on composite key functionality
- set_primary_keys :user_id, :group_id
- belongs_to :user
- belongs_to :group
- has_many :statuses, :class_name => 'MembershipStatus', :foreign_key => [:user_id, :group_id]
-end
\ No newline at end of file
+++ /dev/null
-class MembershipStatus < ActiveRecord::Base
- belongs_to :membership, :foreign_key => [:user_id, :group_id]
-end
\ No newline at end of file
+++ /dev/null
-santiago-cpk:
- id: 1
- user_id: 1
- group_id: 1
- status: Active
-drnic-cpk:
- id: 2
- user_id: 2
- group_id: 1
- status: Owner
\ No newline at end of file
+++ /dev/null
-santiago-cpk:
- user_id: 1
- group_id: 1
-drnic-cpk:
- user_id: 2
- group_id: 1
\ No newline at end of file
+++ /dev/null
-class Product < ActiveRecord::Base
- set_primary_keys :id # redundant
- has_many :product_tariffs, :foreign_key => :product_id
- has_one :product_tariff, :foreign_key => :product_id
-
- has_many :tariffs, :through => :product_tariffs, :foreign_key => [:tariff_id, :tariff_start_date]
-end
+++ /dev/null
-class ProductTariff < ActiveRecord::Base
- set_primary_keys :product_id, :tariff_id, :tariff_start_date
- belongs_to :product, :foreign_key => :product_id
- belongs_to :tariff, :foreign_key => [:tariff_id, :tariff_start_date]
-end
+++ /dev/null
-first_flat:
- product_id: 1
- tariff_id: 1
- tariff_start_date: <%= Date.today.to_s(:db) %>
-first_free:
- product_id: 1
- tariff_id: 2
- tariff_start_date: <%= Date.today.to_s(:db) %>
-second_free:
- product_id: 2
- tariff_id: 2
- tariff_start_date: <%= Date.today.to_s(:db) %>
+++ /dev/null
-first_product:
- id: 1
- name: Product One
-second_product:
- id: 2
- name: Product Two
\ No newline at end of file
+++ /dev/null
-class Reading < ActiveRecord::Base
- belongs_to :article
- belongs_to :user
-end
+++ /dev/null
-santiago_first:
- id: 1
- user_id: 1
- article_id: 1
- rating: 4
-santiago_second:
- id: 2
- user_id: 1
- article_id: 2
- rating: 5
\ No newline at end of file
+++ /dev/null
-class ReferenceCode < ActiveRecord::Base
- set_primary_keys :reference_type_id, :reference_code
-
- belongs_to :reference_type, :foreign_key => "reference_type_id"
-
- validates_presence_of :reference_code, :code_label, :abbreviation
-end
+++ /dev/null
-name_prefix_mr:
- reference_type_id: 1
- reference_code: 1
- code_label: MR
- abbreviation: Mr
-name_prefix_mrs:
- reference_type_id: 1
- reference_code: 2
- code_label: MRS
- abbreviation: Mrs
-name_prefix_ms:
- reference_type_id: 1
- reference_code: 3
- code_label: MS
- abbreviation: Ms
-
-gender_male:
- reference_type_id: 2
- reference_code: 1
- code_label: MALE
- abbreviation: Male
-gender_female:
- reference_type_id: 2
- reference_code: 2
- code_label: FEMALE
- abbreviation: Female
-
-
\ No newline at end of file
+++ /dev/null
-class ReferenceType < ActiveRecord::Base
- set_primary_key :reference_type_id
- has_many :reference_codes, :foreign_key => "reference_type_id"
-
- validates_presence_of :type_label, :abbreviation
- validates_uniqueness_of :type_label
-end
+++ /dev/null
-name_prefix:
- reference_type_id: 1
- type_label: NAME_PREFIX
- abbreviation: Name Prefix
-
-gender:
- reference_type_id: 2
- type_label: GENDER
- abbreviation: Gender
+++ /dev/null
-class Street < ActiveRecord::Base
- belongs_to :suburb, :foreign_key => [:city_id, :suburb_id]
-end
\ No newline at end of file
+++ /dev/null
-first:
- id: 1
- city_id: 1
- suburb_id: 1
- name: First Street
-second1:
- id: 2
- city_id: 2
- suburb_id: 1
- name: First Street
-second2:
- id: 3
- city_id: 2
- suburb_id: 1
- name: Second Street
\ No newline at end of file
+++ /dev/null
-class Suburb < ActiveRecord::Base
- set_primary_keys :city_id, :suburb_id
- has_many :streets, :foreign_key => [:city_id, :suburb_id]
- has_many :first_streets, :foreign_key => [:city_id, :suburb_id],
- :class_name => 'Street', :conditions => "streets.name = 'First Street'"
-end
\ No newline at end of file
+++ /dev/null
-first:
- city_id: 1
- suburb_id: 1
- name: First Suburb
-second:
- city_id: 2
- suburb_id: 1
- name: Second Suburb
-
\ No newline at end of file
+++ /dev/null
-class Tariff < ActiveRecord::Base
- set_primary_keys [:tariff_id, :start_date]
- has_many :product_tariffs, :foreign_key => [:tariff_id, :tariff_start_date]
- has_one :product_tariff, :foreign_key => [:tariff_id, :tariff_start_date]
- has_many :products, :through => :product_tariffs, :foreign_key => [:tariff_id, :tariff_start_date]
-end
+++ /dev/null
-flat:
- tariff_id: 1
- start_date: <%= Date.today.to_s(:db) %>
- amount: 50
-free:
- tariff_id: 2
- start_date: <%= Date.today.to_s(:db) %>
- amount: 0
-flat_future:
- tariff_id: 1
- start_date: <%= Date.today.next.to_s(:db) %>
- amount: 100
-
\ No newline at end of file
+++ /dev/null
-class User < ActiveRecord::Base
- has_many :readings
- has_many :articles, :through => :readings
- has_many :comments, :as => :person
- has_many :hacks, :through => :comments, :source => :hack
-
- def find_custom_articles
- articles.find(:all, :conditions => ["name = ?", "Article One"])
- end
-end
+++ /dev/null
-santiago:
- id: 1
- name: Santiago
-drnic:
- id: 2
- name: Dr Nic
\ No newline at end of file
+++ /dev/null
-# From:
-# http://www.bigbold.com/snippets/posts/show/2178
-# http://blog.caboo.se/articles/2006/06/11/stupid-hash-tricks
-#
-# An example utilisation of these methods in a controller is:
-# def some_action
-# # some script kiddie also passed in :bee, which we don't want tampered with _here_.
-# @model = Model.create(params.pass(:foo, :bar))
-# end
-class Hash
-
- # lets through the keys in the argument
- # >> {:one => 1, :two => 2, :three => 3}.pass(:one)
- # => {:one=>1}
- def pass(*keys)
- keys = keys.first if keys.first.is_a?(Array)
- tmp = self.clone
- tmp.delete_if {|k,v| ! keys.include?(k.to_sym) }
- tmp.delete_if {|k,v| ! keys.include?(k.to_s) }
- tmp
- end
-
- # blocks the keys in the arguments
- # >> {:one => 1, :two => 2, :three => 3}.block(:one)
- # => {:two=>2, :three=>3}
- def block(*keys)
- keys = keys.first if keys.first.is_a?(Array)
- tmp = self.clone
- tmp.delete_if {|k,v| keys.include?(k.to_sym) }
- tmp.delete_if {|k,v| keys.include?(k.to_s) }
- tmp
- end
-
-end
+++ /dev/null
-require 'abstract_unit'
-require 'fixtures/article'
-require 'fixtures/product'
-require 'fixtures/tariff'
-require 'fixtures/product_tariff'
-require 'fixtures/suburb'
-require 'fixtures/street'
-require 'fixtures/restaurant'
-require 'fixtures/dorm'
-require 'fixtures/room'
-require 'fixtures/room_attribute'
-require 'fixtures/room_attribute_assignment'
-require 'fixtures/student'
-require 'fixtures/room_assignment'
-require 'fixtures/user'
-require 'fixtures/reading'
-
-class TestAssociations < Test::Unit::TestCase
- fixtures :articles, :products, :tariffs, :product_tariffs, :suburbs, :streets, :restaurants, :restaurants_suburbs,
- :dorms, :rooms, :room_attributes, :room_attribute_assignments, :students, :room_assignments, :users, :readings
-
- def test_has_many_through_with_conditions_when_through_association_is_not_composite
- user = User.find(:first)
- assert_equal 1, user.articles.find(:all, :conditions => ["articles.name = ?", "Article One"]).size
- end
-
- def test_has_many_through_with_conditions_when_through_association_is_composite
- room = Room.find(:first)
- assert_equal 0, room.room_attributes.find(:all, :conditions => ["room_attributes.name != ?", "keg"]).size
- end
-
- def test_has_many_through_on_custom_finder_when_through_association_is_composite_finder_when_through_association_is_not_composite
- user = User.find(:first)
- assert_equal 1, user.find_custom_articles.size
- end
-
- def test_has_many_through_on_custom_finder_when_through_association_is_composite
- room = Room.find(:first)
- assert_equal 0, room.find_custom_room_attributes.size
- end
-
- def test_count
- assert_equal 2, Product.count(:include => :product_tariffs)
- assert_equal 3, Tariff.count(:include => :product_tariffs)
- assert_equal 2, Tariff.count(:group => :start_date).size
- end
-
- def test_products
- assert_not_nil products(:first_product).product_tariffs
- assert_equal 2, products(:first_product).product_tariffs.length
- assert_not_nil products(:first_product).tariffs
- assert_equal 2, products(:first_product).tariffs.length
- assert_not_nil products(:first_product).product_tariff
- end
-
- def test_product_tariffs
- assert_not_nil product_tariffs(:first_flat).product
- assert_not_nil product_tariffs(:first_flat).tariff
- assert_equal Product, product_tariffs(:first_flat).product.class
- assert_equal Tariff, product_tariffs(:first_flat).tariff.class
- end
-
- def test_tariffs
- assert_not_nil tariffs(:flat).product_tariffs
- assert_equal 1, tariffs(:flat).product_tariffs.length
- assert_not_nil tariffs(:flat).products
- assert_equal 1, tariffs(:flat).products.length
- assert_not_nil tariffs(:flat).product_tariff
- end
-
- # Its not generating the instances of associated classes from the rows
- def test_find_includes_products
- assert @products = Product.find(:all, :include => :product_tariffs)
- assert_equal 2, @products.length
- assert_not_nil @products.first.instance_variable_get('@product_tariffs'), '@product_tariffs not set; should be array'
- assert_equal 3, @products.inject(0) {|sum, tariff| sum + tariff.instance_variable_get('@product_tariffs').length},
- "Incorrect number of product_tariffs returned"
- end
-
- def test_find_includes_tariffs
- assert @tariffs = Tariff.find(:all, :include => :product_tariffs)
- assert_equal 3, @tariffs.length
- assert_not_nil @tariffs.first.instance_variable_get('@product_tariffs'), '@product_tariffs not set; should be array'
- assert_equal 3, @tariffs.inject(0) {|sum, tariff| sum + tariff.instance_variable_get('@product_tariffs').length},
- "Incorrect number of product_tariffs returnedturned"
- end
-
- def test_find_includes_product
- assert @product_tariffs = ProductTariff.find(:all, :include => :product)
- assert_equal 3, @product_tariffs.length
- assert_not_nil @product_tariffs.first.instance_variable_get('@product'), '@product not set'
- end
-
- def test_find_includes_comp_belongs_to_tariff
- assert @product_tariffs = ProductTariff.find(:all, :include => :tariff)
- assert_equal 3, @product_tariffs.length
- assert_not_nil @product_tariffs.first.instance_variable_get('@tariff'), '@tariff not set'
- end
-
- def test_find_includes_extended
- assert @products = Product.find(:all, :include => {:product_tariffs => :tariff})
- assert_equal 3, @products.inject(0) {|sum, product| sum + product.instance_variable_get('@product_tariffs').length},
- "Incorrect number of product_tariffs returned"
-
- assert @tariffs = Tariff.find(:all, :include => {:product_tariffs => :product})
- assert_equal 3, @tariffs.inject(0) {|sum, tariff| sum + tariff.instance_variable_get('@product_tariffs').length},
- "Incorrect number of product_tariffs returned"
- end
-
- def test_join_where_clause
- @product = Product.find(:first, :include => :product_tariffs)
- where_clause = @product.product_tariffs.composite_where_clause(
- ['foo','bar'], [1,2]
- )
- assert_equal('(foo=1 AND bar=2)', where_clause)
- end
-
- def test_has_many_through
- @products = Product.find(:all, :include => :tariffs)
- assert_equal 3, @products.inject(0) {|sum, product| sum + product.instance_variable_get('@tariffs').length},
- "Incorrect number of tariffs returned"
- end
-
- def test_has_many_through_when_not_pre_loaded
- student = Student.find(:first)
- rooms = student.rooms
- assert_equal 1, rooms.size
- assert_equal 1, rooms.first.dorm_id
- assert_equal 1, rooms.first.room_id
- end
-
- def test_has_many_through_when_through_association_is_composite
- dorm = Dorm.find(:first)
- assert_equal 1, dorm.rooms.length
- assert_equal 1, dorm.rooms.first.room_attributes.length
- assert_equal 'keg', dorm.rooms.first.room_attributes.first.name
- end
-
- def test_associations_with_conditions
- @suburb = Suburb.find([2, 1])
- assert_equal 2, @suburb.streets.size
-
- @suburb = Suburb.find([2, 1])
- assert_equal 1, @suburb.first_streets.size
-
- @suburb = Suburb.find([2, 1], :include => :streets)
- assert_equal 2, @suburb.streets.size
-
- @suburb = Suburb.find([2, 1], :include => :first_streets)
- assert_equal 1, @suburb.first_streets.size
- end
-
- def test_has_and_belongs_to_many
- @restaurant = Restaurant.find([1,1])
- assert_equal 2, @restaurant.suburbs.size
-
- @restaurant = Restaurant.find([1,1], :include => :suburbs)
- assert_equal 2, @restaurant.suburbs.size
- end
-end
+++ /dev/null
-require 'abstract_unit'
-require 'fixtures/kitchen_sink'
-require 'fixtures/reference_type'
-
-class TestAttributeMethods < Test::Unit::TestCase
- fixtures :kitchen_sinks, :reference_types
-
- def test_read_attribute_with_single_key
- rt = ReferenceType.find(1)
- assert_equal(1, rt.reference_type_id)
- assert_equal('NAME_PREFIX', rt.type_label)
- assert_equal('Name Prefix', rt.abbreviation)
- end
-
- def test_read_attribute_with_composite_keys
- sink = KitchenSink.find(1,2)
- assert_equal(1, sink.id_1)
- assert_equal(2, sink.id_2)
- assert_equal(Date.today, sink.a_date.to_date)
- assert_equal('string', sink.a_string)
- end
-end
+++ /dev/null
-require 'abstract_unit'
-require 'fixtures/reference_type'
-require 'fixtures/reference_code'
-require 'fixtures/product'
-require 'fixtures/tariff'
-require 'fixtures/product_tariff'
-
-class TestAttributes < Test::Unit::TestCase
- fixtures :reference_types, :reference_codes, :products, :tariffs, :product_tariffs
-
- CLASSES = {
- :single => {
- :class => ReferenceType,
- :primary_keys => :reference_type_id,
- },
- :dual => {
- :class => ReferenceCode,
- :primary_keys => [:reference_type_id, :reference_code],
- },
- }
-
- def setup
- self.class.classes = CLASSES
- end
-
- def test_brackets
- testing_with do
- @first.attributes.each_pair do |attr_name, value|
- assert_equal value, @first[attr_name]
- end
- end
- end
-
- def test_brackets_primary_key
- testing_with do
- assert_equal @first.id, @first[@primary_keys], "[] failing for #{@klass}"
- assert_equal @first.id, @first[@first.class.primary_key]
- end
- end
-
- def test_brackets_assignment
- testing_with do
- @first.attributes.each_pair do |attr_name, value|
- @first[attr_name]= !value.nil? ? value * 2 : '1'
- assert_equal !value.nil? ? value * 2 : '1', @first[attr_name]
- end
- end
- end
-
- def test_brackets_foreign_key_assignment
- @flat = Tariff.find(1, Date.today.to_s(:db))
- @second_free = ProductTariff.find(2,2,Date.today.to_s(:db))
- @second_free_fk = [:tariff_id, :tariff_start_date]
- @second_free[key = @second_free_fk] = @flat.id
- compare_indexes('@flat', @flat.class.primary_key, '@second_free', @second_free_fk)
- assert_equal @flat.id, @second_free[key]
- @second_free[key = @second_free_fk.to_composite_ids] = @flat.id
- assert_equal @flat.id, @second_free[key]
- compare_indexes('@flat', @flat.class.primary_key, '@second_free', @second_free_fk)
- @second_free[key = @second_free_fk.to_composite_ids] = @flat.id.to_s
- assert_equal @flat.id, @second_free[key]
- compare_indexes('@flat', @flat.class.primary_key, '@second_free', @second_free_fk)
- @second_free[key = @second_free_fk.to_composite_ids] = @flat.id.to_s
- assert_equal @flat.id, @second_free[key]
- compare_indexes('@flat', @flat.class.primary_key, '@second_free', @second_free_fk)
- @second_free[key = @second_free_fk.to_composite_ids.to_s] = @flat.id
- assert_equal @flat.id, @second_free[key]
- compare_indexes('@flat', @flat.class.primary_key, '@second_free', @second_free_fk)
- @second_free[key = @second_free_fk.to_composite_ids.to_s] = @flat.id.to_s
- assert_equal @flat.id, @second_free[key]
- compare_indexes('@flat', @flat.class.primary_key, '@second_free', @second_free_fk)
- end
-private
- def compare_indexes(obj_name1, indexes1, obj_name2, indexes2)
- obj1, obj2 = eval "[#{obj_name1}, #{obj_name2}]"
- indexes1.length.times do |key_index|
- assert_equal obj1[indexes1[key_index].to_s],
- obj2[indexes2[key_index].to_s],
- "#{obj_name1}[#{indexes1[key_index]}]=#{obj1[indexes1[key_index].to_s].inspect} != " +
- "#{obj_name2}[#{indexes2[key_index]}]=#{obj2[indexes2[key_index].to_s].inspect}; " +
- "#{obj_name2} = #{obj2.inspect}"
- end
- end
-end
\ No newline at end of file
+++ /dev/null
-require 'abstract_unit'
-require 'fixtures/reference_type'
-require 'fixtures/reference_code'
-
-class TestClone < Test::Unit::TestCase
- fixtures :reference_types, :reference_codes
-
- CLASSES = {
- :single => {
- :class => ReferenceType,
- :primary_keys => :reference_type_id,
- },
- :dual => {
- :class => ReferenceCode,
- :primary_keys => [:reference_type_id, :reference_code],
- },
- }
-
- def setup
- self.class.classes = CLASSES
- end
-
- def test_truth
- testing_with do
- clone = @first.clone
- assert_equal @first.attributes.block(@klass.primary_key), clone.attributes
- if composite?
- @klass.primary_key.each {|key| assert_nil clone[key], "Primary key '#{key}' should be nil"}
- else
- assert_nil clone[@klass.primary_key], "Sole primary key should be nil"
- end
- end
- end
-end
\ No newline at end of file
+++ /dev/null
-require 'abstract_unit'
-require 'fixtures/reference_type'
-require 'fixtures/reference_code'
-
-class CompositeArraysTest < Test::Unit::TestCase
-
- def test_new_primary_keys
- keys = CompositePrimaryKeys::CompositeKeys.new
- assert_not_nil keys
- assert_equal '', keys.to_s
- assert_equal '', "#{keys}"
- end
-
- def test_initialize_primary_keys
- keys = CompositePrimaryKeys::CompositeKeys.new([1,2,3])
- assert_not_nil keys
- assert_equal '1,2,3', keys.to_s
- assert_equal '1,2,3', "#{keys}"
- end
-
- def test_to_composite_keys
- keys = [1,2,3].to_composite_keys
- assert_equal CompositePrimaryKeys::CompositeKeys, keys.class
- assert_equal '1,2,3', keys.to_s
- end
-
- def test_new_ids
- keys = CompositePrimaryKeys::CompositeIds.new
- assert_not_nil keys
- assert_equal '', keys.to_s
- assert_equal '', "#{keys}"
- end
-
- def test_initialize_ids
- keys = CompositePrimaryKeys::CompositeIds.new([1,2,3])
- assert_not_nil keys
- assert_equal '1,2,3', keys.to_s
- assert_equal '1,2,3', "#{keys}"
- end
-
- def test_to_composite_ids
- keys = [1,2,3].to_composite_ids
- assert_equal CompositePrimaryKeys::CompositeIds, keys.class
- assert_equal '1,2,3', keys.to_s
- end
-
- def test_flatten
- keys = [CompositePrimaryKeys::CompositeIds.new([1,2,3]), CompositePrimaryKeys::CompositeIds.new([4,5,6])]
- assert_equal 6, keys.flatten.size
- end
-end
\ No newline at end of file
+++ /dev/null
-require 'abstract_unit'
-require 'fixtures/reference_type'
-require 'fixtures/reference_code'
-require 'fixtures/street'
-require 'fixtures/suburb'
-
-class TestCreate < Test::Unit::TestCase
- fixtures :reference_types, :reference_codes, :streets, :suburbs
-
- CLASSES = {
- :single => {
- :class => ReferenceType,
- :primary_keys => :reference_type_id,
- :create => {:reference_type_id => 10, :type_label => 'NEW_TYPE', :abbreviation => 'New Type'}
- },
- :dual => {
- :class => ReferenceCode,
- :primary_keys => [:reference_type_id, :reference_code],
- :create => {:reference_type_id => 1, :reference_code => 20, :code_label => 'NEW_CODE', :abbreviation => 'New Code'}
- },
- }
-
- def setup
- self.class.classes = CLASSES
- end
-
- def test_setup
- testing_with do
- assert_not_nil @klass_info[:create]
- end
- end
-
- def test_create
- testing_with do
- assert new_obj = @klass.create(@klass_info[:create])
- assert !new_obj.new_record?
- end
- end
-
- def test_create_no_id
- testing_with do
- begin
- @obj = @klass.create(@klass_info[:create].block(@klass.primary_key))
- @successful = !composite?
- rescue CompositePrimaryKeys::ActiveRecord::CompositeKeyError
- @successful = false
- rescue
- flunk "Incorrect exception raised: #{$!}, #{$!.class}"
- end
- assert_equal composite?, !@successful, "Create should have failed for composites; #{@obj.inspect}"
- end
- end
-
- def test_create_on_association
- suburb = Suburb.find(:first)
- suburb.streets.create(:name => "my street")
- street = Street.find_by_name('my street')
- assert_equal(suburb.city_id, street.city_id)
- assert_equal(suburb.suburb_id, street.suburb_id)
- end
-
- def test_create_on_association_when_belongs_to_is_single_key
- rt = ReferenceType.find(:first)
- rt.reference_codes.create(:reference_code => 4321, :code_label => 'foo', :abbreviation => 'bar')
- rc = ReferenceCode.find_by_reference_code(4321)
- assert_equal(rc.reference_type_id, rt.reference_type_id)
- end
-end
+++ /dev/null
-require 'abstract_unit'
-require 'fixtures/reference_type'
-require 'fixtures/reference_code'
-require 'fixtures/department'
-require 'fixtures/employee'
-
-class TestDelete < Test::Unit::TestCase
- fixtures :reference_types, :reference_codes, :departments, :employees
-
- CLASSES = {
- :single => {
- :class => ReferenceType,
- :primary_keys => :reference_type_id,
- },
- :dual => {
- :class => ReferenceCode,
- :primary_keys => [:reference_type_id, :reference_code],
- },
- }
-
- def setup
- self.class.classes = CLASSES
- end
-
- def test_destroy_one
- testing_with do
- #assert @first.destroy
- assert true
- end
- end
-
- def test_destroy_one_via_class
- testing_with do
- assert @klass.destroy(*@first.id)
- end
- end
-
- def test_destroy_one_alone_via_class
- testing_with do
- assert @klass.destroy(@first.id)
- end
- end
-
- def test_delete_one
- testing_with do
- assert @klass.delete(*@first.id) if composite?
- end
- end
-
- def test_delete_one_alone
- testing_with do
- assert @klass.delete(@first.id)
- end
- end
-
- def test_delete_many
- testing_with do
- to_delete = @klass.find(:all)[0..1]
- assert_equal 2, to_delete.length
- end
- end
-
- def test_delete_all
- testing_with do
- @klass.delete_all
- end
- end
-
- def test_clear_association
- department = Department.find(1,1)
- assert_equal 2, department.employees.size, "Before clear employee count should be 2."
- department.employees.clear
- assert_equal 0, department.employees.size, "After clear employee count should be 0."
- department.reload
- assert_equal 0, department.employees.size, "After clear and a reload from DB employee count should be 0."
- end
-
- def test_delete_association
- department = Department.find(1,1)
- assert_equal 2, department.employees.size , "Before delete employee count should be 2."
- first_employee = department.employees[0]
- department.employees.delete(first_employee)
- assert_equal 1, department.employees.size, "After delete employee count should be 1."
- department.reload
- assert_equal 1, department.employees.size, "After delete and a reload from DB employee count should be 1."
- end
-
- def test_delete_records_for_has_many_association_with_composite_primary_key
- reference_type = ReferenceType.find(1)
- codes_to_delete = reference_type.reference_codes[0..1]
- assert_equal 3, reference_type.reference_codes.size, "Before deleting records reference_code count should be 3."
- reference_type.reference_codes.delete_records(codes_to_delete)
- reference_type.reload
- assert_equal 1, reference_type.reference_codes.size, "After deleting 2 records and a reload from DB reference_code count should be 1."
- end
-end
+++ /dev/null
-require 'abstract_unit'
-require 'fixtures/reference_type'
-require 'fixtures/reference_code'
-
-class TestDummy < Test::Unit::TestCase
- fixtures :reference_types, :reference_codes
-
- classes = {
- :single => {
- :class => ReferenceType,
- :primary_keys => :reference_type_id,
- },
- :dual => {
- :class => ReferenceCode,
- :primary_keys => [:reference_type_id, :reference_code],
- },
- }
-
- def setup
- self.class.classes = classes
- end
-
- def test_truth
- testing_with do
- assert true
- end
- end
-end
\ No newline at end of file
+++ /dev/null
-require 'abstract_unit'
-require 'fixtures/article'
-require 'fixtures/department'
-
-class TestExists < Test::Unit::TestCase
- fixtures :articles, :departments
-
- def test_single_key_exists_giving_id
- assert Article.exists?(1)
- end
-
- def test_single_key_exists_giving_condition
- assert Article.exists?(['name = ?', 'Article One'])
- end
-
- def test_composite_key_exists_giving_ids_as_string
- assert Department.exists?('1,1,')
- end
-
- def test_composite_key_exists_giving_ids_as_array
- assert Department.exists?([1,1])
- assert_equal(false, Department.exists?([1111,1111]))
- end
-
- def test_composite_key_exists_giving_ids_as_condition
- assert Department.exists?(['department_id = ? and location_id = ?', 1, 1])
- assert_equal(false, Department.exists?(['department_id = ? and location_id = ?', 11111, 11111]))
- end
-end
\ No newline at end of file
+++ /dev/null
-require 'abstract_unit'
-require 'fixtures/reference_type'
-require 'fixtures/reference_code'
-
-# Testing the find action on composite ActiveRecords with two primary keys
-class TestFind < Test::Unit::TestCase
- fixtures :reference_types, :reference_codes
-
- CLASSES = {
- :single => {
- :class => ReferenceType,
- :primary_keys => [:reference_type_id],
- },
- :dual => {
- :class => ReferenceCode,
- :primary_keys => [:reference_type_id, :reference_code],
- },
- :dual_strs => {
- :class => ReferenceCode,
- :primary_keys => ['reference_type_id', 'reference_code'],
- },
- }
-
- def setup
- self.class.classes = CLASSES
- end
-
- def test_find_first
- testing_with do
- obj = @klass.find(:first)
- assert obj
- assert_equal @klass, obj.class
- end
- end
-
- def test_find
- testing_with do
- found = @klass.find(*first_id) # e.g. find(1,1) or find 1,1
- assert found
- assert_equal @klass, found.class
- assert_equal found, @klass.find(found.id)
- assert_equal found, @klass.find(found.to_param)
- end
- end
-
- def test_find_composite_ids
- testing_with do
- found = @klass.find(first_id) # e.g. find([1,1].to_composite_ids)
- assert found
- assert_equal @klass, found.class
- assert_equal found, @klass.find(found.id)
- assert_equal found, @klass.find(found.to_param)
- end
- end
-
- def test_to_param
- testing_with do
- assert_equal first_id_str, @first.to_param.to_s
- end
- end
-
- def things_to_look_at
- testing_with do
- assert_equal found, @klass.find(found.id.to_s) # fails for 2+ keys
- end
- end
-
- def test_not_found
- assert_raise(::ActiveRecord::RecordNotFound) do
- ReferenceCode.send :find, '999,999'
- end
- end
-end
\ No newline at end of file
+++ /dev/null
-require 'abstract_unit'
-require 'fixtures/reference_type'
-require 'fixtures/reference_code'
-
-class TestIds < Test::Unit::TestCase
- fixtures :reference_types, :reference_codes
-
- CLASSES = {
- :single => {
- :class => ReferenceType,
- :primary_keys => [:reference_type_id],
- },
- :dual => {
- :class => ReferenceCode,
- :primary_keys => [:reference_type_id, :reference_code],
- },
- :dual_strs => {
- :class => ReferenceCode,
- :primary_keys => ['reference_type_id', 'reference_code'],
- },
- }
-
- def setup
- self.class.classes = CLASSES
- end
-
- def test_id
- testing_with do
- assert_equal @first.id, @first.ids if composite?
- end
- end
-
- def test_id_to_s
- testing_with do
- assert_equal first_id_str, @first.id.to_s
- assert_equal first_id_str, "#{@first.id}"
- end
- end
-
- def test_ids_to_s
- testing_with do
- order = @klass.primary_key.is_a?(String) ? @klass.primary_key : @klass.primary_key.join(',')
- to_test = @klass.find(:all, :order => order)[0..1].map(&:id)
- assert_equal '(1,1),(1,2)', @klass.ids_to_s(to_test) if @key_test == :dual
- assert_equal '1,1;1,2', @klass.ids_to_s(to_test, ',', ';', '', '') if @key_test == :dual
- end
- end
-
- def test_composite_where_clause
- testing_with do
- where = 'reference_codes.reference_type_id=1 AND reference_codes.reference_code=2) OR (reference_codes.reference_type_id=2 AND reference_codes.reference_code=2'
- assert_equal(where, @klass.composite_where_clause([[1, 2], [2, 2]])) if @key_test == :dual
- end
- end
-
- def test_set_ids_string
- testing_with do
- array = @primary_keys.collect {|key| 5}
- expected = composite? ? array.to_composite_keys : array.first
- @first.id = expected.to_s
- assert_equal expected, @first.id
- end
- end
-
- def test_set_ids_array
- testing_with do
- array = @primary_keys.collect {|key| 5}
- expected = composite? ? array.to_composite_keys : array.first
- @first.id = expected
- assert_equal expected, @first.id
- end
- end
-
- def test_set_ids_comp
- testing_with do
- array = @primary_keys.collect {|key| 5}
- expected = composite? ? array.to_composite_keys : array.first
- @first.id = expected
- assert_equal expected, @first.id
- end
- end
-
- def test_primary_keys
- testing_with do
- if composite?
- assert_not_nil @klass.primary_keys
- assert_equal @primary_keys.map {|key| key.to_sym}, @klass.primary_keys
- assert_equal @klass.primary_keys, @klass.primary_key
- else
- assert_not_nil @klass.primary_key
- assert_equal @primary_keys, [@klass.primary_key.to_sym]
- end
- assert_equal @primary_keys.join(','), @klass.primary_key.to_s
- # Need a :primary_keys should be Array with to_s overridden
- end
- end
-end
\ No newline at end of file
+++ /dev/null
-require 'abstract_unit'
-require 'fixtures/reference_type'
-require 'fixtures/reference_code'
-
-class TestMiscellaneous < Test::Unit::TestCase
- fixtures :reference_types, :reference_codes, :products
-
- CLASSES = {
- :single => {
- :class => ReferenceType,
- :primary_keys => :reference_type_id,
- },
- :dual => {
- :class => ReferenceCode,
- :primary_keys => [:reference_type_id, :reference_code],
- },
- }
-
- def setup
- self.class.classes = CLASSES
- end
-
- def test_composite_class
- testing_with do
- assert_equal composite?, @klass.composite?
- end
- end
-
- def test_composite_instance
- testing_with do
- assert_equal composite?, @first.composite?
- end
- end
-
- def test_count
- assert_equal 2, Product.count
- end
-
-end
\ No newline at end of file
+++ /dev/null
-require 'abstract_unit'
-require 'fixtures/reference_type'
-require 'fixtures/reference_code'
-require 'plugins/pagination'
-
-class TestPagination < Test::Unit::TestCase
- fixtures :reference_types, :reference_codes
-
- include ActionController::Pagination
- DEFAULT_PAGE_SIZE = 2
-
- attr_accessor :params
-
- CLASSES = {
- :single => {
- :class => ReferenceType,
- :primary_keys => :reference_type_id,
- :table => :reference_types,
- },
- :dual => {
- :class => ReferenceCode,
- :primary_keys => [:reference_type_id, :reference_code],
- :table => :reference_codes,
- },
- }
-
- def setup
- self.class.classes = CLASSES
- @params = {}
- end
-
- def test_paginate_all
- testing_with do
- @object_pages, @objects = paginate @klass_info[:table], :per_page => DEFAULT_PAGE_SIZE
- assert_equal 2, @objects.length, "Each page should have #{DEFAULT_PAGE_SIZE} items"
- end
- end
-end
\ No newline at end of file
+++ /dev/null
-require 'abstract_unit'
-require 'fixtures/comment'
-require 'fixtures/user'
-require 'fixtures/employee'
-require 'fixtures/hack'
-
-class TestPolymorphic < Test::Unit::TestCase
- fixtures :users, :employees, :comments, :hacks
-
- def test_polymorphic_has_many
- comments = Hack.find('andrew').comments
- assert_equal 'andrew', comments[0].person_id
- end
-
- def test_polymorphic_has_one
- first_comment = Hack.find('andrew').first_comment
- assert_equal 'andrew', first_comment.person_id
- end
-
- def test_has_many_through
- user = users(:santiago)
- article_names = user.articles.collect { |a| a.name }.sort
- assert_equal ['Article One', 'Article Two'], article_names
- end
-
- def test_polymorphic_has_many_through
- user = users(:santiago)
- assert_equal ['andrew'], user.hacks.collect { |a| a.name }.sort
- end
-
-end
+++ /dev/null
-# Test cases devised by Santiago that broke the Composite Primary Keys
-# code at one point in time. But no more!!!
-
-require 'abstract_unit'
-require 'fixtures/user'
-require 'fixtures/article'
-require 'fixtures/reading'
-
-class TestSantiago < Test::Unit::TestCase
- fixtures :suburbs, :streets, :users, :articles, :readings
-
- def test_normal_and_composite_associations
- assert_not_nil @suburb = Suburb.find(1,1)
- assert_equal 1, @suburb.streets.length
-
- assert_not_nil @street = Street.find(1)
- assert_not_nil @street.suburb
- end
-
- def test_single_keys
- @santiago = User.find(1)
- assert_not_nil @santiago.articles
- assert_equal 2, @santiago.articles.length
- assert_not_nil @santiago.readings
- assert_equal 2, @santiago.readings.length
- end
-end
+++ /dev/null
-require 'abstract_unit'
-require 'fixtures/user'
-require 'fixtures/group'
-require 'fixtures/membership_status'
-require 'fixtures/membership'
-
-class TestTutorialExample < Test::Unit::TestCase
- fixtures :users, :groups, :memberships, :membership_statuses
-
- def test_membership
- assert(membership = Membership.find(1,1), "Cannot find a membership")
- assert(membership.user)
- assert(membership.group)
- end
-
- def test_status
- assert(membership = Membership.find(1,1), "Cannot find a membership")
- assert(statuses = membership.statuses, "No has_many association to status")
- assert_equal(membership, statuses.first.membership)
- end
-
- def test_count
- assert(membership = Membership.find(1,1), "Cannot find a membership")
- assert_equal(1, membership.statuses.count)
- end
-end
\ No newline at end of file
+++ /dev/null
-require 'abstract_unit'
-require 'fixtures/reference_type'
-require 'fixtures/reference_code'
-
-class TestUpdate < Test::Unit::TestCase
- fixtures :reference_types, :reference_codes
-
- CLASSES = {
- :single => {
- :class => ReferenceType,
- :primary_keys => :reference_type_id,
- :update => { :description => 'RT Desc' },
- },
- :dual => {
- :class => ReferenceCode,
- :primary_keys => [:reference_type_id, :reference_code],
- :update => { :description => 'RT Desc' },
- },
- }
-
- def setup
- self.class.classes = CLASSES
- end
-
- def test_setup
- testing_with do
- assert_not_nil @klass_info[:update]
- end
- end
-
- def test_update_attributes
- testing_with do
- assert @first.update_attributes(@klass_info[:update])
- assert @first.reload
- @klass_info[:update].each_pair do |attr_name, new_value|
- assert_equal new_value, @first[attr_name], "Attribute #{attr_name} is incorrect"
- end
- end
- end
-end
\ No newline at end of file
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
- <link rel="stylesheet" href="stylesheets/screen.css" type="text/css" media="screen" />
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
- <title>
- Composite Primary Keys
- </title>
- <script src="javascripts/rounded_corners_lite.inc.js" type="text/javascript"></script>
-<style>
-
-</style>
- <script type="text/javascript">
- window.onload = function() {
- settings = {
- tl: { radius: 10 },
- tr: { radius: 10 },
- bl: { radius: 10 },
- br: { radius: 10 },
- antiAlias: true,
- autoPad: true,
- validTags: ["div"]
- }
- var versionBox = new curvyCorners(settings, document.getElementById("version"));
- versionBox.applyCornersToAll();
- }
- </script>
-</head>
-<body>
-<div id="main">
-
- <h1>Composite Primary Keys</h1>
- <div id="version" class="clickable" onclick='document.location = "http://rubyforge.org/projects/compositekeys"; return false'>
- Get Version
- <a href="http://rubyforge.org/projects/compositekeys" class="numbers">2.2.2</a>
- </div>
- <h1>→ Ruby on Rails</h1>
-<h1>→ ActiveRecords</h1>
-<h2>What</h2>
-<p>Ruby on Rails does not support composite primary keys. This free software is an extension <br />
-to the database layer of Rails – <a href="http://wiki.rubyonrails.com/rails/pages/ActiveRecord">ActiveRecords</a> – to support composite primary keys as transparently as possible.</p>
-<p>Any Ruby script using ActiveRecords can use Composite Primary Keys with this library.</p>
-<h2>Installing</h2>
-<p><pre class="syntax"><span class="ident">sudo</span> <span class="ident">gem</span> <span class="ident">install</span> <span class="ident">composite_primary_keys</span></pre></p>
-<p>Rails: Add the following to the bottom of your <code>environment.rb</code> file</p>
-<p><pre class="syntax"><span class="ident">require</span> <span class="punct">'</span><span class="string">composite_primary_keys</span><span class="punct">'</span></pre></p>
-<p>Ruby scripts: Add the following to the top of your script</p>
-<p><pre class="syntax"><span class="ident">require</span> <span class="punct">'</span><span class="string">rubygems</span><span class="punct">'</span>
-<span class="ident">require</span> <span class="punct">'</span><span class="string">composite_primary_keys</span><span class="punct">'</span></pre></p>
-<h2>The basics</h2>
-<p>A model with composite primary keys would look like…</p>
-<p><pre class="syntax"><span class="keyword">class </span><span class="class">Membership</span> <span class="punct"><</span> <span class="constant">ActiveRecord</span><span class="punct">::</span><span class="constant">Base</span>
- <span class="comment"># set_primary_keys *keys - turns on composite key functionality</span>
- <span class="ident">set_primary_keys</span> <span class="symbol">:user_id</span><span class="punct">,</span> <span class="symbol">:group_id</span>
- <span class="ident">belongs_to</span> <span class="symbol">:user</span>
- <span class="ident">belongs_to</span> <span class="symbol">:group</span>
- <span class="ident">has_many</span> <span class="symbol">:statuses</span><span class="punct">,</span> <span class="symbol">:class_name</span> <span class="punct">=></span> <span class="punct">'</span><span class="string">MembershipStatus</span><span class="punct">',</span> <span class="symbol">:foreign_key</span> <span class="punct">=></span> <span class="punct">[</span><span class="symbol">:user_id</span><span class="punct">,</span> <span class="symbol">:group_id</span><span class="punct">]</span>
-<span class="keyword">end</span></pre></p>
-<p>A model associated with a composite key model would be defined like…</p>
-<p><pre class="syntax"><span class="keyword">class </span><span class="class">MembershipStatus</span> <span class="punct"><</span> <span class="constant">ActiveRecord</span><span class="punct">::</span><span class="constant">Base</span>
- <span class="ident">belongs_to</span> <span class="symbol">:membership</span><span class="punct">,</span> <span class="symbol">:foreign_key</span> <span class="punct">=></span> <span class="punct">[</span><span class="symbol">:user_id</span><span class="punct">,</span> <span class="symbol">:group_id</span><span class="punct">]</span>
-<span class="keyword">end</span></pre></p>
-<p>That is, associations can include composite keys too. Nice.</p>
-<h2>Demonstration of usage</h2>
-<p>Once you’ve created your models to specify composite primary keys (such as the Membership class) and associations (such as MembershipStatus#membership), you can uses them like any normal model with associations.</p>
-<p>But first, lets check out our primary keys.</p>
-<p><pre class="syntax"><span class="constant">MembershipStatus</span><span class="punct">.</span><span class="ident">primary_key</span> <span class="comment"># => "id" # normal single key</span>
-<span class="constant">Membership</span><span class="punct">.</span><span class="ident">primary_key</span> <span class="comment"># => [:user_id, :group_id] # composite keys</span>
-<span class="constant">Membership</span><span class="punct">.</span><span class="ident">primary_key</span><span class="punct">.</span><span class="ident">to_s</span> <span class="comment"># => "user_id,group_id"</span></pre></p>
-<p>Now we want to be able to find instances using the same syntax we always use for ActiveRecords…</p>
-<p><pre class="syntax"><span class="constant">MembershipStatus</span><span class="punct">.</span><span class="ident">find</span><span class="punct">(</span><span class="number">1</span><span class="punct">)</span> <span class="comment"># single id returns single instance</span>
-<span class="punct">=></span> <span class="punct"><</span><span class="constant">MembershipStatus</span><span class="punct">:</span><span class="number">0x392a8c8</span> <span class="attribute">@attributes</span><span class="punct">={"</span><span class="string">id</span><span class="punct">"=>"</span><span class="string">1</span><span class="punct">",</span> <span class="punct">"</span><span class="string">status</span><span class="punct">"=>"</span><span class="string">Active</span><span class="punct">"}></span>
-<span class="constant">Membership</span><span class="punct">.</span><span class="ident">find</span><span class="punct">(</span><span class="number">1</span><span class="punct">,</span><span class="number">1</span><span class="punct">)</span> <span class="comment"># composite ids returns single instance</span>
-<span class="punct">=></span> <span class="punct"><</span><span class="constant">Membership</span><span class="punct">:</span><span class="number">0x39218b0</span> <span class="attribute">@attributes</span><span class="punct">={"</span><span class="string">user_id</span><span class="punct">"=>"</span><span class="string">1</span><span class="punct">",</span> <span class="punct">"</span><span class="string">group_id</span><span class="punct">"=>"</span><span class="string">1</span><span class="punct">"}></span></pre></p>
-<p>Using <a href="http://www.rubyonrails.org">Ruby on Rails</a>? You’ll want to your url_for helpers<br />
-to convert composite keys into strings and back again…</p>
-<p><pre class="syntax"><span class="constant">Membership</span><span class="punct">.</span><span class="ident">find</span><span class="punct">(</span><span class="symbol">:first</span><span class="punct">).</span><span class="ident">to_param</span> <span class="comment"># => "1,1"</span></pre></p>
-<p>And then use the string id within your controller to find the object again</p>
-<p><pre class="syntax"><span class="ident">params</span><span class="punct">[</span><span class="symbol">:id</span><span class="punct">]</span> <span class="comment"># => '1,1'</span>
-<span class="constant">Membership</span><span class="punct">.</span><span class="ident">find</span><span class="punct">(</span><span class="ident">params</span><span class="punct">[</span><span class="symbol">:id</span><span class="punct">])</span>
-<span class="punct">=></span> <span class="punct"><</span><span class="constant">Membership</span><span class="punct">:</span><span class="number">0x3904288</span> <span class="attribute">@attributes</span><span class="punct">={"</span><span class="string">user_id</span><span class="punct">"=>"</span><span class="string">1</span><span class="punct">",</span> <span class="punct">"</span><span class="string">group_id</span><span class="punct">"=>"</span><span class="string">1</span><span class="punct">"}></span></pre></p>
-<p>That is, an ActiveRecord supporting composite keys behaves transparently<br />
-throughout your application. Just like a normal ActiveRecord.</p>
-<h2>Other tricks</h2>
-<h3>Pass a list of composite ids to the <code>#find</code> method</h3>
-<p><pre class="syntax"><span class="constant">Membership</span><span class="punct">.</span><span class="ident">find</span> <span class="punct">[</span><span class="number">1</span><span class="punct">,</span><span class="number">1</span><span class="punct">],</span> <span class="punct">[</span><span class="number">2</span><span class="punct">,</span><span class="number">1</span><span class="punct">]</span>
-<span class="punct">=></span> <span class="punct">[</span>
- <span class="punct"><</span><span class="constant">Membership</span><span class="punct">:</span><span class="number">0x394ade8</span> <span class="attribute">@attributes</span><span class="punct">={"</span><span class="string">user_id</span><span class="punct">"=>"</span><span class="string">1</span><span class="punct">",</span> <span class="punct">"</span><span class="string">group_id</span><span class="punct">"=>"</span><span class="string">1</span><span class="punct">"}>,</span>
- <span class="punct"><</span><span class="constant">Membership</span><span class="punct">:</span><span class="number">0x394ada0</span> <span class="attribute">@attributes</span><span class="punct">={"</span><span class="string">user_id</span><span class="punct">"=>"</span><span class="string">2</span><span class="punct">",</span> <span class="punct">"</span><span class="string">group_id</span><span class="punct">"=>"</span><span class="string">1</span><span class="punct">"}></span>
-<span class="punct">]</span></pre></p>
-<p>Perform <code>#count</code> operations</p>
-<p><pre class="syntax"><span class="constant">MembershipStatus</span><span class="punct">.</span><span class="ident">find</span><span class="punct">(</span><span class="symbol">:first</span><span class="punct">).</span><span class="ident">memberships</span><span class="punct">.</span><span class="ident">count</span> <span class="comment"># => 1</span></pre></p>
-<h3>Routes with Rails</h3>
-<p>From Pete Sumskas:</p>
-<blockquote>
-<p>I ran into one problem that I didn’t see mentioned on <a href="http://groups.google.com/group/compositekeys">this list</a> – <br />
- and I didn’t see any information about what I should do to address it in the<br />
- documentation (might have missed it).</p>
-<p>The problem was that the urls being generated for a ‘show’ action (for<br />
- example) had a syntax like:<br />
- <br />
- <pre>/controller/show/123000,Bu70</pre></p>
-<p>for a two-field composite PK. The default routing would not match that,<br />
- so after working out how to do the routing I added:<br />
- <br />
- <pre class="syntax"><span class="ident">map</span><span class="punct">.</span><span class="ident">connect</span> <span class="punct">'</span><span class="string">:controller/:action/:id</span><span class="punct">',</span> <span class="symbol">:id</span> <span class="punct">=></span> <span class="punct">/</span><span class="regex"><span class="escape">\w</span>+(,<span class="escape">\w</span>+)*</span><span class="punct">/</span></pre><br />
- <br />
- to my <code>route.rb</code> file.</p>
-</blockquote>
-<p><a name="dbs"></a></p>
-<h2>Which databases?</h2>
-<p>A suite of unit tests have been run on the following databases supported by ActiveRecord:</p>
-<table>
- <tr>
- <th>Database</th>
- <th>Test Success</th>
- <th>User feedback</th>
- </tr>
- <tr>
- <td>mysql </td>
- <td><span class=success><span class="caps">YES</span></span></td>
- <td><span class=success><span class="caps">YES</span></span> (<a href="mailto:compositekeys@googlegroups.com?subject=Mysql+is+working">Yes!</a> or <a href="mailto:compositekeys@googlegroups.com?subject=Mysql+is+failing">No…</a>)</td>
- </tr>
- <tr>
- <td>sqlite3 </td>
- <td><span class=success><span class="caps">YES</span></span></td>
- <td><span class=success><span class="caps">YES</span></span> (<a href="mailto:compositekeys@googlegroups.com?subject=Sqlite3+is+working">Yes!</a> or <a href="mailto:compositekeys@googlegroups.com?subject=Sqlite3+is+failing">No…</a>)</td>
- </tr>
- <tr>
- <td>postgresql</td>
- <td><span class=success><span class="caps">YES</span></span></td>
- <td><span class=success><span class="caps">YES</span></span> (<a href="mailto:compositekeys@googlegroups.com?subject=Postgresql+is+working">Yes!</a> or <a href="mailto:compositekeys@googlegroups.com?subject=Postgresql+is+failing">No…</a>)</td>
- </tr>
- <tr>
- <td>oracle </td>
- <td><span class=success><span class="caps">YES</span></span></td>
- <td><span class=success><span class="caps">YES</span></span> (<a href="mailto:compositekeys@googlegroups.com?subject=Oracle+is+working">Yes!</a> or <a href="mailto:compositekeys@googlegroups.com?subject=Oracle+is+failing">No…</a>)</td>
- </tr>
- <tr>
- <td>sqlserver </td>
- <td><span class=unknown>???</span> (<a href="mailto:compositekeys@googlegroups.com?subject=Help+with+SQLServer">I can help</a>)</td>
- <td><span class=unknown>???</span> (<a href="mailto:compositekeys@googlegroups.com?subject=SQLServer+is+working">Yes!</a> or <a href="mailto:compositekeys@googlegroups.com?subject=SQLServer+is+failing">No…</a>)</td>
- </tr>
- <tr>
- <td>db2 </td>
- <td><span class=unknown>???</span> (<a href="mailto:compositekeys@googlegroups.com?subject=Help+with+DB2">I can help</a>)</td>
- <td><span class=unknown>???</span> (<a href="mailto:compositekeys@googlegroups.com?subject=DB2+is+working">Yes!</a> or <a href="mailto:compositekeys@googlegroups.com?subject=DB2+is+failing">No…</a>)</td>
- </tr>
- <tr>
- <td>firebird </td>
- <td><span class=unknown>???</span> (<a href="mailto:compositekeys@googlegroups.com?subject=Help+with+Firebird">I can help</a>)</td>
- <td><span class=unknown>???</span> (<a href="mailto:compositekeys@googlegroups.com?subject=Firebird+is+working">Yes!</a> or <a href="mailto:compositekeys@googlegroups.com?subject=Firebird+is+failing">No…</a>)</td>
- </tr>
- <tr>
- <td>sybase </td>
- <td><span class=unknown>???</span> (<a href="mailto:compositekeys@googlegroups.com?subject=Help+with+Sybase">I can help</a>)</td>
- <td><span class=unknown>???</span> (<a href="mailto:compositekeys@googlegroups.com?subject=Sybase+is+working">Yes!</a> or <a href="mailto:compositekeys@googlegroups.com?subject=Sybase+is+failing">No…</a>)</td>
- </tr>
- <tr>
- <td>openbase </td>
- <td><span class=unknown>???</span> (<a href="mailto:compositekeys@googlegroups.com?subject=Help+with+Openbase">I can help</a>)</td>
- <td><span class=unknown>???</span> (<a href="mailto:compositekeys@googlegroups.com?subject=Openbase+is+working">Yes!</a> or <a href="mailto:compositekeys@googlegroups.com?subject=Openbase+is+failing">No…</a>)</td>
- </tr>
- <tr>
- <td>frontbase </td>
- <td><span class=unknown>???</span> (<a href="mailto:compositekeys@googlegroups.com?subject=Help+with+Frontbase">I can help</a>)</td>
- <td><span class=unknown>???</span> (<a href="mailto:compositekeys@googlegroups.com?subject=Frontbase+is+working">Yes!</a> or <a href="mailto:compositekeys@googlegroups.com?subject=Frontbase+is+failing">No…</a>)</td>
- </tr>
-</table>
-<h2>Dr Nic’s Blog</h2>
-<p><a href="http://www.drnicwilliams.com">http://www.drnicwilliams.com</a> – for future announcements and<br />
-other stories and things.</p>
-<h2>Forum</h2>
-<p><a href="http://groups.google.com/group/compositekeys">http://groups.google.com/group/compositekeys</a></p>
-<h2>How to submit patches</h2>
-<p>Read the <a href="http://drnicwilliams.com/2007/06/01/8-steps-for-fixing-other-peoples-code/">8 steps for fixing other people’s code</a> and for section <a href="http://drnicwilliams.com/2007/06/01/8-steps-for-fixing-other-peoples-code/#8b-google-groups">8b: Submit patch to Google Groups</a>, use the Google Group above.</p>
-<p>The source for this project is available via git. You can <a href="http://github.com/drnic/composite_primary_keys/tree/master">browse and/or fork the source</a>, or to clone the project locally:<br />
- <br />
-<pre>git clone git://github.com/drnic/composite_primary_keys.git</pre></p>
-<h2>Licence</h2>
-<p>This code is free to use under the terms of the <span class="caps">MIT</span> licence.</p>
-<h2>Contact</h2>
-<p>Comments are welcome. Send an email to <a href="mailto:drnicwilliams@gmail.com">Dr Nic Williams</a>.</p>
- <p class="coda">
- <a href="mailto:drnicwilliams@gmail.com">Dr Nic</a>, 21st January 2009<br>
- Theme extended from <a href="http://rb2js.rubyforge.org/">Paul Battley</a>
- </p>
-</div>
-
-<script src="http://www.google-analytics.com/urchin.js" type="text/javascript">
-</script>
-<script type="text/javascript">
-_uacct = "UA-567811-2";
-urchinTracker();
-</script>
-
-</body>
-</html>
+++ /dev/null
-h1. Composite Primary Keys
-
-h1. -> Ruby on Rails
-
-h1. -> ActiveRecords
-
-h2. What
-
-Ruby on Rails does not support composite primary keys. This free software is an extension
-to the database layer of Rails - "ActiveRecords":http://wiki.rubyonrails.com/rails/pages/ActiveRecord - to support composite primary keys as transparently as possible.
-
-Any Ruby script using ActiveRecords can use Composite Primary Keys with this library.
-
-h2. Installing
-
-<pre syntax="ruby">sudo gem install composite_primary_keys</pre>
-
-Rails: Add the following to the bottom of your <code>environment.rb</code> file
-
-<pre syntax="ruby">require 'composite_primary_keys'</pre>
-
-Ruby scripts: Add the following to the top of your script
-
-<pre syntax="ruby">require 'rubygems'
-require 'composite_primary_keys'</pre>
-
-h2. The basics
-
-A model with composite primary keys would look like...
-
-<pre syntax="ruby">class Membership < ActiveRecord::Base
- # set_primary_keys *keys - turns on composite key functionality
- set_primary_keys :user_id, :group_id
- belongs_to :user
- belongs_to :group
- has_many :statuses, :class_name => 'MembershipStatus', :foreign_key => [:user_id, :group_id]
-end</pre>
-
-A model associated with a composite key model would be defined like...
-
-<pre syntax="ruby">class MembershipStatus < ActiveRecord::Base
- belongs_to :membership, :foreign_key => [:user_id, :group_id]
-end</pre>
-
-That is, associations can include composite keys too. Nice.
-
-h2. Demonstration of usage
-
-Once you've created your models to specify composite primary keys (such as the Membership class) and associations (such as MembershipStatus#membership), you can uses them like any normal model with associations.
-
-But first, lets check out our primary keys.
-
-<pre syntax="ruby">MembershipStatus.primary_key # => "id" # normal single key
-Membership.primary_key # => [:user_id, :group_id] # composite keys
-Membership.primary_key.to_s # => "user_id,group_id"</pre>
-
-Now we want to be able to find instances using the same syntax we always use for ActiveRecords...
-
-<pre syntax="ruby">MembershipStatus.find(1) # single id returns single instance
-=> <MembershipStatus:0x392a8c8 @attributes={"id"=>"1", "status"=>"Active"}>
-Membership.find(1,1) # composite ids returns single instance
-=> <Membership:0x39218b0 @attributes={"user_id"=>"1", "group_id"=>"1"}></pre>
-
-Using "Ruby on Rails":http://www.rubyonrails.org? You'll want to your url_for helpers
-to convert composite keys into strings and back again...
-
-<pre syntax="ruby">Membership.find(:first).to_param # => "1,1"</pre>
-
-And then use the string id within your controller to find the object again
-
-<pre syntax="ruby">params[:id] # => '1,1'
-Membership.find(params[:id])
-=> <Membership:0x3904288 @attributes={"user_id"=>"1", "group_id"=>"1"}></pre>
-
-That is, an ActiveRecord supporting composite keys behaves transparently
-throughout your application. Just like a normal ActiveRecord.
-
-
-h2. Other tricks
-
-h3. Pass a list of composite ids to the <code>#find</code> method
-
-<pre syntax="ruby">Membership.find [1,1], [2,1]
-=> [
- <Membership:0x394ade8 @attributes={"user_id"=>"1", "group_id"=>"1"}>,
- <Membership:0x394ada0 @attributes={"user_id"=>"2", "group_id"=>"1"}>
-]</pre>
-
-Perform <code>#count</code> operations
-
-<pre syntax="ruby">MembershipStatus.find(:first).memberships.count # => 1</pre>
-
-h3. Routes with Rails
-
-From Pete Sumskas:
-
-<blockquote>
- I ran into one problem that I didn't see mentioned on "this list":http://groups.google.com/group/compositekeys -
- and I didn't see any information about what I should do to address it in the
- documentation (might have missed it).
-
- The problem was that the urls being generated for a 'show' action (for
- example) had a syntax like:
-
- <pre>/controller/show/123000,Bu70</pre>
-
- for a two-field composite PK. The default routing would not match that,
- so after working out how to do the routing I added:
-
- <pre syntax="ruby">map.connect ':controller/:action/:id', :id => /\w+(,\w+)*/</pre>
-
- to my <code>route.rb</code> file.
-
-</blockquote>
-
-<a name="dbs"></a>
-
-h2. Which databases?
-
-
-A suite of unit tests have been run on the following databases supported by ActiveRecord:
-
-|_.Database|_.Test Success|_.User feedback|
-|mysql |<span class=success>YES</span>|<span class=success>YES</span> ("Yes!":mailto:compositekeys@googlegroups.com?subject=Mysql+is+working or "No...":mailto:compositekeys@googlegroups.com?subject=Mysql+is+failing)|
-|sqlite3 |<span class=success>YES</span>|<span class=success>YES</span> ("Yes!":mailto:compositekeys@googlegroups.com?subject=Sqlite3+is+working or "No...":mailto:compositekeys@googlegroups.com?subject=Sqlite3+is+failing)|
-|postgresql|<span class=success>YES</span>|<span class=success>YES</span> ("Yes!":mailto:compositekeys@googlegroups.com?subject=Postgresql+is+working or "No...":mailto:compositekeys@googlegroups.com?subject=Postgresql+is+failing)|
-|oracle |<span class=success>YES</span>|<span class=success>YES</span> ("Yes!":mailto:compositekeys@googlegroups.com?subject=Oracle+is+working or "No...":mailto:compositekeys@googlegroups.com?subject=Oracle+is+failing)|
-|sqlserver |<span class=unknown>???</span> ("I can help":mailto:compositekeys@googlegroups.com?subject=Help+with+SQLServer)|<span class=unknown>???</span> ("Yes!":mailto:compositekeys@googlegroups.com?subject=SQLServer+is+working or "No...":mailto:compositekeys@googlegroups.com?subject=SQLServer+is+failing)|
-|db2 |<span class=unknown>???</span> ("I can help":mailto:compositekeys@googlegroups.com?subject=Help+with+DB2)|<span class=unknown>???</span> ("Yes!":mailto:compositekeys@googlegroups.com?subject=DB2+is+working or "No...":mailto:compositekeys@googlegroups.com?subject=DB2+is+failing)|
-|firebird |<span class=unknown>???</span> ("I can help":mailto:compositekeys@googlegroups.com?subject=Help+with+Firebird)|<span class=unknown>???</span> ("Yes!":mailto:compositekeys@googlegroups.com?subject=Firebird+is+working or "No...":mailto:compositekeys@googlegroups.com?subject=Firebird+is+failing)|
-|sybase |<span class=unknown>???</span> ("I can help":mailto:compositekeys@googlegroups.com?subject=Help+with+Sybase)|<span class=unknown>???</span> ("Yes!":mailto:compositekeys@googlegroups.com?subject=Sybase+is+working or "No...":mailto:compositekeys@googlegroups.com?subject=Sybase+is+failing)|
-|openbase |<span class=unknown>???</span> ("I can help":mailto:compositekeys@googlegroups.com?subject=Help+with+Openbase)|<span class=unknown>???</span> ("Yes!":mailto:compositekeys@googlegroups.com?subject=Openbase+is+working or "No...":mailto:compositekeys@googlegroups.com?subject=Openbase+is+failing)|
-|frontbase |<span class=unknown>???</span> ("I can help":mailto:compositekeys@googlegroups.com?subject=Help+with+Frontbase)|<span class=unknown>???</span> ("Yes!":mailto:compositekeys@googlegroups.com?subject=Frontbase+is+working or "No...":mailto:compositekeys@googlegroups.com?subject=Frontbase+is+failing)|
-
-h2. Dr Nic's Blog
-
-"http://www.drnicwilliams.com":http://www.drnicwilliams.com - for future announcements and
-other stories and things.
-
-h2. Forum
-
-"http://groups.google.com/group/compositekeys":http://groups.google.com/group/compositekeys
-
-h2. How to submit patches
-
-Read the "8 steps for fixing other people's code":http://drnicwilliams.com/2007/06/01/8-steps-for-fixing-other-peoples-code/ and for section "8b: Submit patch to Google Groups":http://drnicwilliams.com/2007/06/01/8-steps-for-fixing-other-peoples-code/#8b-google-groups, use the Google Group above.
-
-
-The source for this project is available via git. You can "browse and/or fork the source":http://github.com/drnic/composite_primary_keys/tree/master, or to clone the project locally:
-
-<pre>git clone git://github.com/drnic/composite_primary_keys.git</pre>
-
-h2. Licence
-
-This code is free to use under the terms of the MIT licence.
-
-h2. Contact
-
-Comments are welcome. Send an email to "Dr Nic Williams":mailto:drnicwilliams@gmail.com.
+++ /dev/null
-
- /****************************************************************
- * *
- * curvyCorners *
- * ------------ *
- * *
- * This script generates rounded corners for your divs. *
- * *
- * Version 1.2.9 *
- * Copyright (c) 2006 Cameron Cooke *
- * By: Cameron Cooke and Tim Hutchison. *
- * *
- * *
- * Website: http://www.curvycorners.net *
- * Email: info@totalinfinity.com *
- * Forum: http://www.curvycorners.net/forum/ *
- * *
- * *
- * 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; *
- * Inc., 59 Temple Place, Suite 330, Boston, *
- * MA 02111-1307 USA *
- * *
- ****************************************************************/
-
-var isIE = navigator.userAgent.toLowerCase().indexOf("msie") > -1; var isMoz = document.implementation && document.implementation.createDocument; var isSafari = ((navigator.userAgent.toLowerCase().indexOf('safari')!=-1)&&(navigator.userAgent.toLowerCase().indexOf('mac')!=-1))?true:false; function curvyCorners()
-{ if(typeof(arguments[0]) != "object") throw newCurvyError("First parameter of curvyCorners() must be an object."); if(typeof(arguments[1]) != "object" && typeof(arguments[1]) != "string") throw newCurvyError("Second parameter of curvyCorners() must be an object or a class name."); if(typeof(arguments[1]) == "string")
-{ var startIndex = 0; var boxCol = getElementsByClass(arguments[1]);}
-else
-{ var startIndex = 1; var boxCol = arguments;}
-var curvyCornersCol = new Array(); if(arguments[0].validTags)
-var validElements = arguments[0].validTags; else
-var validElements = ["div"]; for(var i = startIndex, j = boxCol.length; i < j; i++)
-{ var currentTag = boxCol[i].tagName.toLowerCase(); if(inArray(validElements, currentTag) !== false)
-{ curvyCornersCol[curvyCornersCol.length] = new curvyObject(arguments[0], boxCol[i]);}
-}
-this.objects = curvyCornersCol; this.applyCornersToAll = function()
-{ for(var x = 0, k = this.objects.length; x < k; x++)
-{ this.objects[x].applyCorners();}
-}
-}
-function curvyObject()
-{ this.box = arguments[1]; this.settings = arguments[0]; this.topContainer = null; this.bottomContainer = null; this.masterCorners = new Array(); this.contentDIV = null; var boxHeight = get_style(this.box, "height", "height"); var boxWidth = get_style(this.box, "width", "width"); var borderWidth = get_style(this.box, "borderTopWidth", "border-top-width"); var borderColour = get_style(this.box, "borderTopColor", "border-top-color"); var boxColour = get_style(this.box, "backgroundColor", "background-color"); var backgroundImage = get_style(this.box, "backgroundImage", "background-image"); var boxPosition = get_style(this.box, "position", "position"); var boxPadding = get_style(this.box, "paddingTop", "padding-top"); this.boxHeight = parseInt(((boxHeight != "" && boxHeight != "auto" && boxHeight.indexOf("%") == -1)? boxHeight.substring(0, boxHeight.indexOf("px")) : this.box.scrollHeight)); this.boxWidth = parseInt(((boxWidth != "" && boxWidth != "auto" && boxWidth.indexOf("%") == -1)? boxWidth.substring(0, boxWidth.indexOf("px")) : this.box.scrollWidth)); this.borderWidth = parseInt(((borderWidth != "" && borderWidth.indexOf("px") !== -1)? borderWidth.slice(0, borderWidth.indexOf("px")) : 0)); this.boxColour = format_colour(boxColour); this.boxPadding = parseInt(((boxPadding != "" && boxPadding.indexOf("px") !== -1)? boxPadding.slice(0, boxPadding.indexOf("px")) : 0)); this.borderColour = format_colour(borderColour); this.borderString = this.borderWidth + "px" + " solid " + this.borderColour; this.backgroundImage = ((backgroundImage != "none")? backgroundImage : ""); this.boxContent = this.box.innerHTML; if(boxPosition != "absolute") this.box.style.position = "relative"; this.box.style.padding = "0px"; if(isIE && boxWidth == "auto" && boxHeight == "auto") this.box.style.width = "100%"; if(this.settings.autoPad == true && this.boxPadding > 0)
-this.box.innerHTML = ""; this.applyCorners = function()
-{ for(var t = 0; t < 2; t++)
-{ switch(t)
-{ case 0:
-if(this.settings.tl || this.settings.tr)
-{ var newMainContainer = document.createElement("DIV"); newMainContainer.style.width = "100%"; newMainContainer.style.fontSize = "1px"; newMainContainer.style.overflow = "hidden"; newMainContainer.style.position = "absolute"; newMainContainer.style.paddingLeft = this.borderWidth + "px"; newMainContainer.style.paddingRight = this.borderWidth + "px"; var topMaxRadius = Math.max(this.settings.tl ? this.settings.tl.radius : 0, this.settings.tr ? this.settings.tr.radius : 0); newMainContainer.style.height = topMaxRadius + "px"; newMainContainer.style.top = 0 - topMaxRadius + "px"; newMainContainer.style.left = 0 - this.borderWidth + "px"; this.topContainer = this.box.appendChild(newMainContainer);}
-break; case 1:
-if(this.settings.bl || this.settings.br)
-{ var newMainContainer = document.createElement("DIV"); newMainContainer.style.width = "100%"; newMainContainer.style.fontSize = "1px"; newMainContainer.style.overflow = "hidden"; newMainContainer.style.position = "absolute"; newMainContainer.style.paddingLeft = this.borderWidth + "px"; newMainContainer.style.paddingRight = this.borderWidth + "px"; var botMaxRadius = Math.max(this.settings.bl ? this.settings.bl.radius : 0, this.settings.br ? this.settings.br.radius : 0); newMainContainer.style.height = botMaxRadius + "px"; newMainContainer.style.bottom = 0 - botMaxRadius + "px"; newMainContainer.style.left = 0 - this.borderWidth + "px"; this.bottomContainer = this.box.appendChild(newMainContainer);}
-break;}
-}
-if(this.topContainer) this.box.style.borderTopWidth = "0px"; if(this.bottomContainer) this.box.style.borderBottomWidth = "0px"; var corners = ["tr", "tl", "br", "bl"]; for(var i in corners)
-{ if(i > -1 < 4)
-{ var cc = corners[i]; if(!this.settings[cc])
-{ if(((cc == "tr" || cc == "tl") && this.topContainer != null) || ((cc == "br" || cc == "bl") && this.bottomContainer != null))
-{ var newCorner = document.createElement("DIV"); newCorner.style.position = "relative"; newCorner.style.fontSize = "1px"; newCorner.style.overflow = "hidden"; if(this.backgroundImage == "")
-newCorner.style.backgroundColor = this.boxColour; else
-newCorner.style.backgroundImage = this.backgroundImage; switch(cc)
-{ case "tl":
-newCorner.style.height = topMaxRadius - this.borderWidth + "px"; newCorner.style.marginRight = this.settings.tr.radius - (this.borderWidth*2) + "px"; newCorner.style.borderLeft = this.borderString; newCorner.style.borderTop = this.borderString; newCorner.style.left = -this.borderWidth + "px"; break; case "tr":
-newCorner.style.height = topMaxRadius - this.borderWidth + "px"; newCorner.style.marginLeft = this.settings.tl.radius - (this.borderWidth*2) + "px"; newCorner.style.borderRight = this.borderString; newCorner.style.borderTop = this.borderString; newCorner.style.backgroundPosition = "-" + (topMaxRadius + this.borderWidth) + "px 0px"; newCorner.style.left = this.borderWidth + "px"; break; case "bl":
-newCorner.style.height = botMaxRadius - this.borderWidth + "px"; newCorner.style.marginRight = this.settings.br.radius - (this.borderWidth*2) + "px"; newCorner.style.borderLeft = this.borderString; newCorner.style.borderBottom = this.borderString; newCorner.style.left = -this.borderWidth + "px"; newCorner.style.backgroundPosition = "-" + (this.borderWidth) + "px -" + (this.boxHeight + (botMaxRadius + this.borderWidth)) + "px"; break; case "br":
-newCorner.style.height = botMaxRadius - this.borderWidth + "px"; newCorner.style.marginLeft = this.settings.bl.radius - (this.borderWidth*2) + "px"; newCorner.style.borderRight = this.borderString; newCorner.style.borderBottom = this.borderString; newCorner.style.left = this.borderWidth + "px"
-newCorner.style.backgroundPosition = "-" + (botMaxRadius + this.borderWidth) + "px -" + (this.boxHeight + (botMaxRadius + this.borderWidth)) + "px"; break;}
-}
-}
-else
-{ if(this.masterCorners[this.settings[cc].radius])
-{ var newCorner = this.masterCorners[this.settings[cc].radius].cloneNode(true);}
-else
-{ var newCorner = document.createElement("DIV"); newCorner.style.height = this.settings[cc].radius + "px"; newCorner.style.width = this.settings[cc].radius + "px"; newCorner.style.position = "absolute"; newCorner.style.fontSize = "1px"; newCorner.style.overflow = "hidden"; var borderRadius = parseInt(this.settings[cc].radius - this.borderWidth); for(var intx = 0, j = this.settings[cc].radius; intx < j; intx++)
-{ if((intx +1) >= borderRadius)
-var y1 = -1; else
-var y1 = (Math.floor(Math.sqrt(Math.pow(borderRadius, 2) - Math.pow((intx+1), 2))) - 1); if(borderRadius != j)
-{ if((intx) >= borderRadius)
-var y2 = -1; else
-var y2 = Math.ceil(Math.sqrt(Math.pow(borderRadius,2) - Math.pow(intx, 2))); if((intx+1) >= j)
-var y3 = -1; else
-var y3 = (Math.floor(Math.sqrt(Math.pow(j ,2) - Math.pow((intx+1), 2))) - 1);}
-if((intx) >= j)
-var y4 = -1; else
-var y4 = Math.ceil(Math.sqrt(Math.pow(j ,2) - Math.pow(intx, 2))); if(y1 > -1) this.drawPixel(intx, 0, this.boxColour, 100, (y1+1), newCorner, -1, this.settings[cc].radius); if(borderRadius != j)
-{ for(var inty = (y1 + 1); inty < y2; inty++)
-{ if(this.settings.antiAlias)
-{ if(this.backgroundImage != "")
-{ var borderFract = (pixelFraction(intx, inty, borderRadius) * 100); if(borderFract < 30)
-{ this.drawPixel(intx, inty, this.borderColour, 100, 1, newCorner, 0, this.settings[cc].radius);}
-else
-{ this.drawPixel(intx, inty, this.borderColour, 100, 1, newCorner, -1, this.settings[cc].radius);}
-}
-else
-{ var pixelcolour = BlendColour(this.boxColour, this.borderColour, pixelFraction(intx, inty, borderRadius)); this.drawPixel(intx, inty, pixelcolour, 100, 1, newCorner, 0, this.settings[cc].radius, cc);}
-}
-}
-if(this.settings.antiAlias)
-{ if(y3 >= y2)
-{ if (y2 == -1) y2 = 0; this.drawPixel(intx, y2, this.borderColour, 100, (y3 - y2 + 1), newCorner, 0, 0);}
-}
-else
-{ if(y3 >= y1)
-{ this.drawPixel(intx, (y1 + 1), this.borderColour, 100, (y3 - y1), newCorner, 0, 0);}
-}
-var outsideColour = this.borderColour;}
-else
-{ var outsideColour = this.boxColour; var y3 = y1;}
-if(this.settings.antiAlias)
-{ for(var inty = (y3 + 1); inty < y4; inty++)
-{ this.drawPixel(intx, inty, outsideColour, (pixelFraction(intx, inty , j) * 100), 1, newCorner, ((this.borderWidth > 0)? 0 : -1), this.settings[cc].radius);}
-}
-}
-this.masterCorners[this.settings[cc].radius] = newCorner.cloneNode(true);}
-if(cc != "br")
-{ for(var t = 0, k = newCorner.childNodes.length; t < k; t++)
-{ var pixelBar = newCorner.childNodes[t]; var pixelBarTop = parseInt(pixelBar.style.top.substring(0, pixelBar.style.top.indexOf("px"))); var pixelBarLeft = parseInt(pixelBar.style.left.substring(0, pixelBar.style.left.indexOf("px"))); var pixelBarHeight = parseInt(pixelBar.style.height.substring(0, pixelBar.style.height.indexOf("px"))); if(cc == "tl" || cc == "bl"){ pixelBar.style.left = this.settings[cc].radius -pixelBarLeft -1 + "px";}
-if(cc == "tr" || cc == "tl"){ pixelBar.style.top = this.settings[cc].radius -pixelBarHeight -pixelBarTop + "px";}
-switch(cc)
-{ case "tr":
-pixelBar.style.backgroundPosition = "-" + Math.abs((this.boxWidth - this.settings[cc].radius + this.borderWidth) + pixelBarLeft) + "px -" + Math.abs(this.settings[cc].radius -pixelBarHeight -pixelBarTop - this.borderWidth) + "px"; break; case "tl":
-pixelBar.style.backgroundPosition = "-" + Math.abs((this.settings[cc].radius -pixelBarLeft -1) - this.borderWidth) + "px -" + Math.abs(this.settings[cc].radius -pixelBarHeight -pixelBarTop - this.borderWidth) + "px"; break; case "bl":
-pixelBar.style.backgroundPosition = "-" + Math.abs((this.settings[cc].radius -pixelBarLeft -1) - this.borderWidth) + "px -" + Math.abs((this.boxHeight + this.settings[cc].radius + pixelBarTop) -this.borderWidth) + "px"; break;}
-}
-}
-}
-if(newCorner)
-{ switch(cc)
-{ case "tl":
-if(newCorner.style.position == "absolute") newCorner.style.top = "0px"; if(newCorner.style.position == "absolute") newCorner.style.left = "0px"; if(this.topContainer) this.topContainer.appendChild(newCorner); break; case "tr":
-if(newCorner.style.position == "absolute") newCorner.style.top = "0px"; if(newCorner.style.position == "absolute") newCorner.style.right = "0px"; if(this.topContainer) this.topContainer.appendChild(newCorner); break; case "bl":
-if(newCorner.style.position == "absolute") newCorner.style.bottom = "0px"; if(newCorner.style.position == "absolute") newCorner.style.left = "0px"; if(this.bottomContainer) this.bottomContainer.appendChild(newCorner); break; case "br":
-if(newCorner.style.position == "absolute") newCorner.style.bottom = "0px"; if(newCorner.style.position == "absolute") newCorner.style.right = "0px"; if(this.bottomContainer) this.bottomContainer.appendChild(newCorner); break;}
-}
-}
-}
-var radiusDiff = new Array(); radiusDiff["t"] = Math.abs(this.settings.tl.radius - this.settings.tr.radius)
-radiusDiff["b"] = Math.abs(this.settings.bl.radius - this.settings.br.radius); for(z in radiusDiff)
-{ if(z == "t" || z == "b")
-{ if(radiusDiff[z])
-{ var smallerCornerType = ((this.settings[z + "l"].radius < this.settings[z + "r"].radius)? z +"l" : z +"r"); var newFiller = document.createElement("DIV"); newFiller.style.height = radiusDiff[z] + "px"; newFiller.style.width = this.settings[smallerCornerType].radius+ "px"
-newFiller.style.position = "absolute"; newFiller.style.fontSize = "1px"; newFiller.style.overflow = "hidden"; newFiller.style.backgroundColor = this.boxColour; switch(smallerCornerType)
-{ case "tl":
-newFiller.style.bottom = "0px"; newFiller.style.left = "0px"; newFiller.style.borderLeft = this.borderString; this.topContainer.appendChild(newFiller); break; case "tr":
-newFiller.style.bottom = "0px"; newFiller.style.right = "0px"; newFiller.style.borderRight = this.borderString; this.topContainer.appendChild(newFiller); break; case "bl":
-newFiller.style.top = "0px"; newFiller.style.left = "0px"; newFiller.style.borderLeft = this.borderString; this.bottomContainer.appendChild(newFiller); break; case "br":
-newFiller.style.top = "0px"; newFiller.style.right = "0px"; newFiller.style.borderRight = this.borderString; this.bottomContainer.appendChild(newFiller); break;}
-}
-var newFillerBar = document.createElement("DIV"); newFillerBar.style.position = "relative"; newFillerBar.style.fontSize = "1px"; newFillerBar.style.overflow = "hidden"; newFillerBar.style.backgroundColor = this.boxColour; newFillerBar.style.backgroundImage = this.backgroundImage; switch(z)
-{ case "t":
-if(this.topContainer)
-{ if(this.settings.tl.radius && this.settings.tr.radius)
-{ newFillerBar.style.height = topMaxRadius - this.borderWidth + "px"; newFillerBar.style.marginLeft = this.settings.tl.radius - this.borderWidth + "px"; newFillerBar.style.marginRight = this.settings.tr.radius - this.borderWidth + "px"; newFillerBar.style.borderTop = this.borderString; if(this.backgroundImage != "")
-newFillerBar.style.backgroundPosition = "-" + (topMaxRadius + this.borderWidth) + "px 0px"; this.topContainer.appendChild(newFillerBar);}
-this.box.style.backgroundPosition = "0px -" + (topMaxRadius - this.borderWidth) + "px";}
-break; case "b":
-if(this.bottomContainer)
-{ if(this.settings.bl.radius && this.settings.br.radius)
-{ newFillerBar.style.height = botMaxRadius - this.borderWidth + "px"; newFillerBar.style.marginLeft = this.settings.bl.radius - this.borderWidth + "px"; newFillerBar.style.marginRight = this.settings.br.radius - this.borderWidth + "px"; newFillerBar.style.borderBottom = this.borderString; if(this.backgroundImage != "")
-newFillerBar.style.backgroundPosition = "-" + (botMaxRadius + this.borderWidth) + "px -" + (this.boxHeight + (topMaxRadius + this.borderWidth)) + "px"; this.bottomContainer.appendChild(newFillerBar);}
-}
-break;}
-}
-}
-if(this.settings.autoPad == true && this.boxPadding > 0)
-{ var contentContainer = document.createElement("DIV"); contentContainer.style.position = "relative"; contentContainer.innerHTML = this.boxContent; contentContainer.className = "autoPadDiv"; var topPadding = Math.abs(topMaxRadius - this.boxPadding); var botPadding = Math.abs(botMaxRadius - this.boxPadding); if(topMaxRadius < this.boxPadding)
-contentContainer.style.paddingTop = topPadding + "px"; if(botMaxRadius < this.boxPadding)
-contentContainer.style.paddingBottom = botMaxRadius + "px"; contentContainer.style.paddingLeft = this.boxPadding + "px"; contentContainer.style.paddingRight = this.boxPadding + "px"; this.contentDIV = this.box.appendChild(contentContainer);}
-}
-this.drawPixel = function(intx, inty, colour, transAmount, height, newCorner, image, cornerRadius)
-{ var pixel = document.createElement("DIV"); pixel.style.height = height + "px"; pixel.style.width = "1px"; pixel.style.position = "absolute"; pixel.style.fontSize = "1px"; pixel.style.overflow = "hidden"; var topMaxRadius = Math.max(this.settings["tr"].radius, this.settings["tl"].radius); if(image == -1 && this.backgroundImage != "")
-{ pixel.style.backgroundImage = this.backgroundImage; pixel.style.backgroundPosition = "-" + (this.boxWidth - (cornerRadius - intx) + this.borderWidth) + "px -" + ((this.boxHeight + topMaxRadius + inty) -this.borderWidth) + "px";}
-else
-{ pixel.style.backgroundColor = colour;}
-if (transAmount != 100)
-setOpacity(pixel, transAmount); pixel.style.top = inty + "px"; pixel.style.left = intx + "px"; newCorner.appendChild(pixel);}
-}
-function insertAfter(parent, node, referenceNode)
-{ parent.insertBefore(node, referenceNode.nextSibling);}
-function BlendColour(Col1, Col2, Col1Fraction)
-{ var red1 = parseInt(Col1.substr(1,2),16); var green1 = parseInt(Col1.substr(3,2),16); var blue1 = parseInt(Col1.substr(5,2),16); var red2 = parseInt(Col2.substr(1,2),16); var green2 = parseInt(Col2.substr(3,2),16); var blue2 = parseInt(Col2.substr(5,2),16); if(Col1Fraction > 1 || Col1Fraction < 0) Col1Fraction = 1; var endRed = Math.round((red1 * Col1Fraction) + (red2 * (1 - Col1Fraction))); if(endRed > 255) endRed = 255; if(endRed < 0) endRed = 0; var endGreen = Math.round((green1 * Col1Fraction) + (green2 * (1 - Col1Fraction))); if(endGreen > 255) endGreen = 255; if(endGreen < 0) endGreen = 0; var endBlue = Math.round((blue1 * Col1Fraction) + (blue2 * (1 - Col1Fraction))); if(endBlue > 255) endBlue = 255; if(endBlue < 0) endBlue = 0; return "#" + IntToHex(endRed)+ IntToHex(endGreen)+ IntToHex(endBlue);}
-function IntToHex(strNum)
-{ base = strNum / 16; rem = strNum % 16; base = base - (rem / 16); baseS = MakeHex(base); remS = MakeHex(rem); return baseS + '' + remS;}
-function MakeHex(x)
-{ if((x >= 0) && (x <= 9))
-{ return x;}
-else
-{ switch(x)
-{ case 10: return "A"; case 11: return "B"; case 12: return "C"; case 13: return "D"; case 14: return "E"; case 15: return "F";}
-}
-}
-function pixelFraction(x, y, r)
-{ var pixelfraction = 0; var xvalues = new Array(1); var yvalues = new Array(1); var point = 0; var whatsides = ""; var intersect = Math.sqrt((Math.pow(r,2) - Math.pow(x,2))); if ((intersect >= y) && (intersect < (y+1)))
-{ whatsides = "Left"; xvalues[point] = 0; yvalues[point] = intersect - y; point = point + 1;}
-var intersect = Math.sqrt((Math.pow(r,2) - Math.pow(y+1,2))); if ((intersect >= x) && (intersect < (x+1)))
-{ whatsides = whatsides + "Top"; xvalues[point] = intersect - x; yvalues[point] = 1; point = point + 1;}
-var intersect = Math.sqrt((Math.pow(r,2) - Math.pow(x+1,2))); if ((intersect >= y) && (intersect < (y+1)))
-{ whatsides = whatsides + "Right"; xvalues[point] = 1; yvalues[point] = intersect - y; point = point + 1;}
-var intersect = Math.sqrt((Math.pow(r,2) - Math.pow(y,2))); if ((intersect >= x) && (intersect < (x+1)))
-{ whatsides = whatsides + "Bottom"; xvalues[point] = intersect - x; yvalues[point] = 0;}
-switch (whatsides)
-{ case "LeftRight":
-pixelfraction = Math.min(yvalues[0],yvalues[1]) + ((Math.max(yvalues[0],yvalues[1]) - Math.min(yvalues[0],yvalues[1]))/2); break; case "TopRight":
-pixelfraction = 1-(((1-xvalues[0])*(1-yvalues[1]))/2); break; case "TopBottom":
-pixelfraction = Math.min(xvalues[0],xvalues[1]) + ((Math.max(xvalues[0],xvalues[1]) - Math.min(xvalues[0],xvalues[1]))/2); break; case "LeftBottom":
-pixelfraction = (yvalues[0]*xvalues[1])/2; break; default:
-pixelfraction = 1;}
-return pixelfraction;}
-function rgb2Hex(rgbColour)
-{ try{ var rgbArray = rgb2Array(rgbColour); var red = parseInt(rgbArray[0]); var green = parseInt(rgbArray[1]); var blue = parseInt(rgbArray[2]); var hexColour = "#" + IntToHex(red) + IntToHex(green) + IntToHex(blue);}
-catch(e){ alert("There was an error converting the RGB value to Hexadecimal in function rgb2Hex");}
-return hexColour;}
-function rgb2Array(rgbColour)
-{ var rgbValues = rgbColour.substring(4, rgbColour.indexOf(")")); var rgbArray = rgbValues.split(", "); return rgbArray;}
-function setOpacity(obj, opacity)
-{ opacity = (opacity == 100)?99.999:opacity; if(isSafari && obj.tagName != "IFRAME")
-{ var rgbArray = rgb2Array(obj.style.backgroundColor); var red = parseInt(rgbArray[0]); var green = parseInt(rgbArray[1]); var blue = parseInt(rgbArray[2]); obj.style.backgroundColor = "rgba(" + red + ", " + green + ", " + blue + ", " + opacity/100 + ")";}
-else if(typeof(obj.style.opacity) != "undefined")
-{ obj.style.opacity = opacity/100;}
-else if(typeof(obj.style.MozOpacity) != "undefined")
-{ obj.style.MozOpacity = opacity/100;}
-else if(typeof(obj.style.filter) != "undefined")
-{ obj.style.filter = "alpha(opacity:" + opacity + ")";}
-else if(typeof(obj.style.KHTMLOpacity) != "undefined")
-{ obj.style.KHTMLOpacity = opacity/100;}
-}
-function inArray(array, value)
-{ for(var i = 0; i < array.length; i++){ if (array[i] === value) return i;}
-return false;}
-function inArrayKey(array, value)
-{ for(key in array){ if(key === value) return true;}
-return false;}
-function addEvent(elm, evType, fn, useCapture) { if (elm.addEventListener) { elm.addEventListener(evType, fn, useCapture); return true;}
-else if (elm.attachEvent) { var r = elm.attachEvent('on' + evType, fn); return r;}
-else { elm['on' + evType] = fn;}
-}
-function removeEvent(obj, evType, fn, useCapture){ if (obj.removeEventListener){ obj.removeEventListener(evType, fn, useCapture); return true;} else if (obj.detachEvent){ var r = obj.detachEvent("on"+evType, fn); return r;} else { alert("Handler could not be removed");}
-}
-function format_colour(colour)
-{ var returnColour = "#ffffff"; if(colour != "" && colour != "transparent")
-{ if(colour.substr(0, 3) == "rgb")
-{ returnColour = rgb2Hex(colour);}
-else if(colour.length == 4)
-{ returnColour = "#" + colour.substring(1, 2) + colour.substring(1, 2) + colour.substring(2, 3) + colour.substring(2, 3) + colour.substring(3, 4) + colour.substring(3, 4);}
-else
-{ returnColour = colour;}
-}
-return returnColour;}
-function get_style(obj, property, propertyNS)
-{ try
-{ if(obj.currentStyle)
-{ var returnVal = eval("obj.currentStyle." + property);}
-else
-{ if(isSafari && obj.style.display == "none")
-{ obj.style.display = ""; var wasHidden = true;}
-var returnVal = document.defaultView.getComputedStyle(obj, '').getPropertyValue(propertyNS); if(isSafari && wasHidden)
-{ obj.style.display = "none";}
-}
-}
-catch(e)
-{ }
-return returnVal;}
-function getElementsByClass(searchClass, node, tag)
-{ var classElements = new Array(); if(node == null)
-node = document; if(tag == null)
-tag = '*'; var els = node.getElementsByTagName(tag); var elsLen = els.length; var pattern = new RegExp("(^|\s)"+searchClass+"(\s|$)"); for (i = 0, j = 0; i < elsLen; i++)
-{ if(pattern.test(els[i].className))
-{ classElements[j] = els[i]; j++;}
-}
-return classElements;}
-function newCurvyError(errorMessage)
-{ return new Error("curvyCorners Error:\n" + errorMessage)
-}
+++ /dev/null
-body {
- background-color: #2F30EE;
- font-family: "Georgia", sans-serif;
- font-size: 16px;
- line-height: 1.6em;
- padding: 1.6em 0 0 0;
- color: #eee;
-}
-h1, h2, h3, h4, h5, h6 {
- color: #FFEDFA;
-}
-h1 {
- font-family: sans-serif;
- font-weight: normal;
- font-size: 4em;
- line-height: 0.8em;
- letter-spacing: -0.1ex;
- margin: 5px;
-}
-li {
- padding: 0;
- margin: 0;
- list-style-type: square;
-}
-a {
- color: #99f;
- font-weight: normal;
- text-decoration: underline;
-}
-blockquote {
- font-size: 90%;
- font-style: italic;
- border-left: 1px solid #eee;
- padding-left: 1em;
-}
-.caps {
- font-size: 80%;
-}
-
-#main {
- width: 45em;
- padding: 0;
- margin: 0 auto;
-}
-.coda {
- text-align: right;
- color: #77f;
- font-size: smaller;
-}
-
-table {
- font-size: 90%;
- line-height: 1.4em;
- color: #ff8;
- background-color: #111;
- padding: 2px 10px 2px 10px;
- border-style: dashed;
-}
-
-th {
- color: #fff;
-}
-
-td {
- padding: 2px 10px 2px 10px;
-}
-
-.success {
- color: #0CC52B;
-}
-
-.failed {
- color: #E90A1B;
-}
-
-.unknown {
- color: #995000;
-}
-pre, code {
- font-family: monospace;
- font-size: 90%;
- line-height: 1.4em;
- color: #ff8;
- background-color: #111;
- padding: 2px 10px 2px 10px;
-}
-.comment { color: #aaa; font-style: italic; }
-.keyword { color: #eff; font-weight: bold; }
-.punct { color: #eee; font-weight: bold; }
-.symbol { color: #0bb; }
-.string { color: #6b4; }
-.ident { color: #ff8; }
-.constant { color: #66f; }
-.regex { color: #ec6; }
-.number { color: #F99; }
-.expr { color: #227; }
-
-#version {
- float: right;
- text-align: right;
- font-family: sans-serif;
- font-weight: normal;
- background-color: #ff8;
- color: #66f;
- padding: 15px 20px 10px 20px;
- margin: 0 auto;
- margin-top: 15px;
- border: 3px solid #66f;
-}
-
-#version .numbers {
- display: block;
- font-size: 4em;
- line-height: 0.8em;
- letter-spacing: -0.1ex;
-}
-
-#version a {
- text-decoration: none;
-}
-
-.clickable {
- cursor: pointer;
- cursor: hand;
-}
-
+++ /dev/null
-// <%= title %>
-var version = <%= version.to_json %>;
-<%= body %>
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
- <link rel="stylesheet" href="stylesheets/screen.css" type="text/css" media="screen" />
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
- <title>
- <%= title %>
- </title>
- <script src="javascripts/rounded_corners_lite.inc.js" type="text/javascript"></script>
-<style>
-
-</style>
- <script type="text/javascript">
- window.onload = function() {
- settings = {
- tl: { radius: 10 },
- tr: { radius: 10 },
- bl: { radius: 10 },
- br: { radius: 10 },
- antiAlias: true,
- autoPad: true,
- validTags: ["div"]
- }
- var versionBox = new curvyCorners(settings, document.getElementById("version"));
- versionBox.applyCornersToAll();
- }
- </script>
-</head>
-<body>
-<div id="main">
-
- <h1><%= title %></h1>
- <div id="version" class="clickable" onclick='document.location = "<%= download %>"; return false'>
- Get Version
- <a href="<%= download %>" class="numbers"><%= version %></a>
- </div>
- <%= body %>
- <p class="coda">
- <a href="mailto:drnicwilliams@gmail.com">Dr Nic</a>, <%= modified.pretty %><br>
- Theme extended from <a href="http://rb2js.rubyforge.org/">Paul Battley</a>
- </p>
-</div>
-
-<script src="http://www.google-analytics.com/urchin.js" type="text/javascript">
-</script>
-<script type="text/javascript">
-_uacct = "UA-567811-2";
-urchinTracker();
-</script>
-
-</body>
-</html>
+++ /dev/null
-// Announcement JS file
-var version = "2.2.2";
-MagicAnnouncement.show('compositekeys', version);
+++ /dev/null
-h1. Announcement JS file
-MagicAnnouncement.show('compositekeys', version);
\ No newline at end of file
+++ /dev/null
-// Version JS file
-var version = "2.2.2";
-
-document.write(" - " + version);
+++ /dev/null
-h1. Version JS file
-
-document.write(" - " + version);
\ No newline at end of file
+++ /dev/null
-* Exported the changelog of Pagination code for historical reference.
-
-* Imported some patches from Rails Trac (others closed as "wontfix"):
- #8176, #7325, #7028, #4113. Documentation is much cleaner now and there
- are some new unobtrusive features!
-
-* Extracted Pagination from Rails trunk (r6795)
-
-#
-# ChangeLog for /trunk/actionpack/lib/action_controller/pagination.rb
-#
-# Generated by Trac 0.10.3
-# 05/20/07 23:48:02
-#
-
-09/03/06 23:28:54 david [4953]
- * trunk/actionpack/lib/action_controller/pagination.rb (modified)
- Docs and deprecation
-
-08/07/06 12:40:14 bitsweat [4715]
- * trunk/actionpack/lib/action_controller/pagination.rb (modified)
- Deprecate direct usage of @params. Update ActionView::Base for
- instance var deprecation.
-
-06/21/06 02:16:11 rick [4476]
- * trunk/actionpack/lib/action_controller/pagination.rb (modified)
- Fix indent in pagination documentation. Closes #4990. [Kevin Clark]
-
-04/25/06 17:42:48 marcel [4268]
- * trunk/actionpack/lib/action_controller/pagination.rb (modified)
- Remove all remaining references to @params in the documentation.
-
-03/16/06 06:38:08 rick [3899]
- * trunk/actionpack/lib/action_view/helpers/pagination_helper.rb (modified)
- trivial documentation patch for #pagination_links [Francois
- Beausoleil] closes #4258
-
-02/20/06 03:15:22 david [3620]
- * trunk/actionpack/lib/action_controller/pagination.rb (modified)
- * trunk/actionpack/test/activerecord/pagination_test.rb (modified)
- * trunk/activerecord/CHANGELOG (modified)
- * trunk/activerecord/lib/active_record/base.rb (modified)
- * trunk/activerecord/test/base_test.rb (modified)
- Added :count option to pagination that'll make it possible for the
- ActiveRecord::Base.count call to using something else than * for the
- count. Especially important for count queries using DISTINCT #3839
- [skaes]. Added :select option to Base.count that'll allow you to
- select something else than * to be counted on. Especially important
- for count queries using DISTINCT (closes #3839) [skaes].
-
-02/09/06 09:17:40 nzkoz [3553]
- * trunk/actionpack/lib/action_controller/pagination.rb (modified)
- * trunk/actionpack/test/active_record_unit.rb (added)
- * trunk/actionpack/test/activerecord (added)
- * trunk/actionpack/test/activerecord/active_record_assertions_test.rb (added)
- * trunk/actionpack/test/activerecord/pagination_test.rb (added)
- * trunk/actionpack/test/controller/active_record_assertions_test.rb (deleted)
- * trunk/actionpack/test/fixtures/companies.yml (added)
- * trunk/actionpack/test/fixtures/company.rb (added)
- * trunk/actionpack/test/fixtures/db_definitions (added)
- * trunk/actionpack/test/fixtures/db_definitions/sqlite.sql (added)
- * trunk/actionpack/test/fixtures/developer.rb (added)
- * trunk/actionpack/test/fixtures/developers_projects.yml (added)
- * trunk/actionpack/test/fixtures/developers.yml (added)
- * trunk/actionpack/test/fixtures/project.rb (added)
- * trunk/actionpack/test/fixtures/projects.yml (added)
- * trunk/actionpack/test/fixtures/replies.yml (added)
- * trunk/actionpack/test/fixtures/reply.rb (added)
- * trunk/actionpack/test/fixtures/topic.rb (added)
- * trunk/actionpack/test/fixtures/topics.yml (added)
- * Fix pagination problems when using include
- * Introduce Unit Tests for pagination
- * Allow count to work with :include by using count distinct.
-
- [Kevin Clark & Jeremy Hopple]
-
-11/05/05 02:10:29 bitsweat [2878]
- * trunk/actionpack/lib/action_controller/pagination.rb (modified)
- Update paginator docs. Closes #2744.
-
-10/16/05 15:42:03 minam [2649]
- * trunk/actionpack/lib/action_controller/pagination.rb (modified)
- Update/clean up AP documentation (rdoc)
-
-08/31/05 00:13:10 ulysses [2078]
- * trunk/actionpack/CHANGELOG (modified)
- * trunk/actionpack/lib/action_controller/pagination.rb (modified)
- Add option to specify the singular name used by pagination. Closes
- #1960
-
-08/23/05 14:24:15 minam [2041]
- * trunk/actionpack/CHANGELOG (modified)
- * trunk/actionpack/lib/action_controller/pagination.rb (modified)
- Add support for :include with pagination (subject to existing
- constraints for :include with :limit and :offset) #1478
- [michael@schubert.cx]
-
-07/15/05 20:27:38 david [1839]
- * trunk/actionpack/lib/action_controller/pagination.rb (modified)
- * trunk/actionpack/lib/action_view/helpers/pagination_helper.rb (modified)
- More pagination speed #1334 [Stefan Kaes]
-
-07/14/05 08:02:01 david [1832]
- * trunk/actionpack/lib/action_controller/pagination.rb (modified)
- * trunk/actionpack/lib/action_view/helpers/pagination_helper.rb (modified)
- * trunk/actionpack/test/controller/addresses_render_test.rb (modified)
- Made pagination faster #1334 [Stefan Kaes]
-
-04/13/05 05:40:22 david [1159]
- * trunk/actionpack/CHANGELOG (modified)
- * trunk/actionpack/lib/action_controller/pagination.rb (modified)
- * trunk/activerecord/lib/active_record/base.rb (modified)
- Fixed pagination to work with joins #1034 [scott@sigkill.org]
-
-04/02/05 09:11:17 david [1067]
- * trunk/actionpack/CHANGELOG (modified)
- * trunk/actionpack/lib/action_controller/pagination.rb (modified)
- * trunk/actionpack/lib/action_controller/scaffolding.rb (modified)
- * trunk/actionpack/lib/action_controller/templates/scaffolds/list.rhtml (modified)
- * trunk/railties/lib/rails_generator/generators/components/scaffold/templates/controller.rb (modified)
- * trunk/railties/lib/rails_generator/generators/components/scaffold/templates/view_list.rhtml (modified)
- Added pagination for scaffolding (10 items per page) #964
- [mortonda@dgrmm.net]
-
-03/31/05 14:46:11 david [1048]
- * trunk/actionpack/lib/action_view/helpers/pagination_helper.rb (modified)
- Improved the message display on the exception handler pages #963
- [Johan Sorensen]
-
-03/27/05 00:04:07 david [1017]
- * trunk/actionpack/CHANGELOG (modified)
- * trunk/actionpack/lib/action_view/helpers/pagination_helper.rb (modified)
- Fixed that pagination_helper would ignore :params #947 [Sebastian
- Kanthak]
-
-03/22/05 13:09:44 david [976]
- * trunk/actionpack/lib/action_view/helpers/pagination_helper.rb (modified)
- Fixed documentation and prepared for 0.11.0 release
-
-03/21/05 14:35:36 david [967]
- * trunk/actionpack/lib/action_controller/pagination.rb (modified)
- * trunk/actionpack/lib/action_view/helpers/pagination_helper.rb (modified)
- Tweaked the documentation
-
-03/20/05 23:12:05 david [949]
- * trunk/actionpack/CHANGELOG (modified)
- * trunk/actionpack/lib/action_controller.rb (modified)
- * trunk/actionpack/lib/action_controller/pagination.rb (added)
- * trunk/actionpack/lib/action_view/helpers/pagination_helper.rb (added)
- * trunk/activesupport/lib/active_support/core_ext/kernel.rb (added)
- Added pagination support through both a controller and helper add-on
- #817 [Sam Stephenson]
+++ /dev/null
-Pagination
-==========
-
-To install:
-
- script/plugin install svn://errtheblog.com/svn/plugins/classic_pagination
-
-This code was extracted from Rails trunk after the release 1.2.3.
-WARNING: this code is dead. It is unmaintained, untested and full of cruft.
-
-There is a much better pagination plugin called will_paginate.
-Install it like this and glance through the README:
-
- script/plugin install svn://errtheblog.com/svn/plugins/will_paginate
-
-It doesn't have the same API, but is in fact much nicer. You can
-have both plugins installed until you change your controller/view code that
-handles pagination. Then, simply uninstall classic_pagination.
+++ /dev/null
-require 'rake'
-require 'rake/testtask'
-require 'rake/rdoctask'
-
-desc 'Default: run unit tests.'
-task :default => :test
-
-desc 'Test the classic_pagination plugin.'
-Rake::TestTask.new(:test) do |t|
- t.libs << 'lib'
- t.pattern = 'test/**/*_test.rb'
- t.verbose = true
-end
-
-desc 'Generate documentation for the classic_pagination plugin.'
-Rake::RDocTask.new(:rdoc) do |rdoc|
- rdoc.rdoc_dir = 'rdoc'
- rdoc.title = 'Pagination'
- rdoc.options << '--line-numbers' << '--inline-source'
- rdoc.rdoc_files.include('README')
- rdoc.rdoc_files.include('lib/**/*.rb')
-end
+++ /dev/null
-puts "\n\n" + File.read(File.dirname(__FILE__) + '/README')
+++ /dev/null
-module ActionController
- # === Action Pack pagination for Active Record collections
- #
- # The Pagination module aids in the process of paging large collections of
- # Active Record objects. It offers macro-style automatic fetching of your
- # model for multiple views, or explicit fetching for single actions. And if
- # the magic isn't flexible enough for your needs, you can create your own
- # paginators with a minimal amount of code.
- #
- # The Pagination module can handle as much or as little as you wish. In the
- # controller, have it automatically query your model for pagination; or,
- # if you prefer, create Paginator objects yourself.
- #
- # Pagination is included automatically for all controllers.
- #
- # For help rendering pagination links, see
- # ActionView::Helpers::PaginationHelper.
- #
- # ==== Automatic pagination for every action in a controller
- #
- # class PersonController < ApplicationController
- # model :person
- #
- # paginate :people, :order => 'last_name, first_name',
- # :per_page => 20
- #
- # # ...
- # end
- #
- # Each action in this controller now has access to a <tt>@people</tt>
- # instance variable, which is an ordered collection of model objects for the
- # current page (at most 20, sorted by last name and first name), and a
- # <tt>@person_pages</tt> Paginator instance. The current page is determined
- # by the <tt>params[:page]</tt> variable.
- #
- # ==== Pagination for a single action
- #
- # def list
- # @person_pages, @people =
- # paginate :people, :order => 'last_name, first_name'
- # end
- #
- # Like the previous example, but explicitly creates <tt>@person_pages</tt>
- # and <tt>@people</tt> for a single action, and uses the default of 10 items
- # per page.
- #
- # ==== Custom/"classic" pagination
- #
- # def list
- # @person_pages = Paginator.new self, Person.count, 10, params[:page]
- # @people = Person.find :all, :order => 'last_name, first_name',
- # :limit => @person_pages.items_per_page,
- # :offset => @person_pages.current.offset
- # end
- #
- # Explicitly creates the paginator from the previous example and uses
- # Paginator#to_sql to retrieve <tt>@people</tt> from the model.
- #
- module Pagination
- unless const_defined?(:OPTIONS)
- # A hash holding options for controllers using macro-style pagination
- OPTIONS = Hash.new
-
- # The default options for pagination
- DEFAULT_OPTIONS = {
- :class_name => nil,
- :singular_name => nil,
- :per_page => 10,
- :conditions => nil,
- :order_by => nil,
- :order => nil,
- :join => nil,
- :joins => nil,
- :count => nil,
- :include => nil,
- :select => nil,
- :group => nil,
- :parameter => 'page'
- }
- else
- DEFAULT_OPTIONS[:group] = nil
- end
-
- def self.included(base) #:nodoc:
- super
- base.extend(ClassMethods)
- end
-
- def self.validate_options!(collection_id, options, in_action) #:nodoc:
- options.merge!(DEFAULT_OPTIONS) {|key, old, new| old}
-
- valid_options = DEFAULT_OPTIONS.keys
- valid_options << :actions unless in_action
-
- unknown_option_keys = options.keys - valid_options
- raise ActionController::ActionControllerError,
- "Unknown options: #{unknown_option_keys.join(', ')}" unless
- unknown_option_keys.empty?
-
- options[:singular_name] ||= ActiveSupport::Inflector.singularize(collection_id.to_s)
- options[:class_name] ||= ActiveSupport::Inflector.camelize(options[:singular_name])
- end
-
- # Returns a paginator and a collection of Active Record model instances
- # for the paginator's current page. This is designed to be used in a
- # single action; to automatically paginate multiple actions, consider
- # ClassMethods#paginate.
- #
- # +options+ are:
- # <tt>:singular_name</tt>:: the singular name to use, if it can't be inferred by singularizing the collection name
- # <tt>:class_name</tt>:: the class name to use, if it can't be inferred by
- # camelizing the singular name
- # <tt>:per_page</tt>:: the maximum number of items to include in a
- # single page. Defaults to 10
- # <tt>:conditions</tt>:: optional conditions passed to Model.find(:all, *params) and
- # Model.count
- # <tt>:order</tt>:: optional order parameter passed to Model.find(:all, *params)
- # <tt>:order_by</tt>:: (deprecated, used :order) optional order parameter passed to Model.find(:all, *params)
- # <tt>:joins</tt>:: optional joins parameter passed to Model.find(:all, *params)
- # and Model.count
- # <tt>:join</tt>:: (deprecated, used :joins or :include) optional join parameter passed to Model.find(:all, *params)
- # and Model.count
- # <tt>:include</tt>:: optional eager loading parameter passed to Model.find(:all, *params)
- # and Model.count
- # <tt>:select</tt>:: :select parameter passed to Model.find(:all, *params)
- #
- # <tt>:count</tt>:: parameter passed as :select option to Model.count(*params)
- #
- # <tt>:group</tt>:: :group parameter passed to Model.find(:all, *params). It forces the use of DISTINCT instead of plain COUNT to come up with the total number of records
- #
- def paginate(collection_id, options={})
- Pagination.validate_options!(collection_id, options, true)
- paginator_and_collection_for(collection_id, options)
- end
-
- # These methods become class methods on any controller
- module ClassMethods
- # Creates a +before_filter+ which automatically paginates an Active
- # Record model for all actions in a controller (or certain actions if
- # specified with the <tt>:actions</tt> option).
- #
- # +options+ are the same as PaginationHelper#paginate, with the addition
- # of:
- # <tt>:actions</tt>:: an array of actions for which the pagination is
- # active. Defaults to +nil+ (i.e., every action)
- def paginate(collection_id, options={})
- Pagination.validate_options!(collection_id, options, false)
- module_eval do
- before_filter :create_paginators_and_retrieve_collections
- OPTIONS[self] ||= Hash.new
- OPTIONS[self][collection_id] = options
- end
- end
- end
-
- def create_paginators_and_retrieve_collections #:nodoc:
- Pagination::OPTIONS[self.class].each do |collection_id, options|
- next unless options[:actions].include? action_name if
- options[:actions]
-
- paginator, collection =
- paginator_and_collection_for(collection_id, options)
-
- paginator_name = "@#{options[:singular_name]}_pages"
- self.instance_variable_set(paginator_name, paginator)
-
- collection_name = "@#{collection_id.to_s}"
- self.instance_variable_set(collection_name, collection)
- end
- end
-
- # Returns the total number of items in the collection to be paginated for
- # the +model+ and given +conditions+. Override this method to implement a
- # custom counter.
- def count_collection_for_pagination(model, options)
- model.count(:conditions => options[:conditions],
- :joins => options[:join] || options[:joins],
- :include => options[:include],
- :select => (options[:group] ? "DISTINCT #{options[:group]}" : options[:count]))
- end
-
- # Returns a collection of items for the given +model+ and +options[conditions]+,
- # ordered by +options[order]+, for the current page in the given +paginator+.
- # Override this method to implement a custom finder.
- def find_collection_for_pagination(model, options, paginator)
- model.find(:all, :conditions => options[:conditions],
- :order => options[:order_by] || options[:order],
- :joins => options[:join] || options[:joins], :include => options[:include],
- :select => options[:select], :limit => options[:per_page],
- :group => options[:group], :offset => paginator.current.offset)
- end
-
- protected :create_paginators_and_retrieve_collections,
- :count_collection_for_pagination,
- :find_collection_for_pagination
-
- def paginator_and_collection_for(collection_id, options) #:nodoc:
- klass = options[:class_name].constantize
- page = params[options[:parameter]]
- count = count_collection_for_pagination(klass, options)
- paginator = Paginator.new(self, count, options[:per_page], page)
- collection = find_collection_for_pagination(klass, options, paginator)
-
- return paginator, collection
- end
-
- private :paginator_and_collection_for
-
- # A class representing a paginator for an Active Record collection.
- class Paginator
- include Enumerable
-
- # Creates a new Paginator on the given +controller+ for a set of items
- # of size +item_count+ and having +items_per_page+ items per page.
- # Raises ArgumentError if items_per_page is out of bounds (i.e., less
- # than or equal to zero). The page CGI parameter for links defaults to
- # "page" and can be overridden with +page_parameter+.
- def initialize(controller, item_count, items_per_page, current_page=1)
- raise ArgumentError, 'must have at least one item per page' if
- items_per_page <= 0
-
- @controller = controller
- @item_count = item_count || 0
- @items_per_page = items_per_page
- @pages = {}
-
- self.current_page = current_page
- end
- attr_reader :controller, :item_count, :items_per_page
-
- # Sets the current page number of this paginator. If +page+ is a Page
- # object, its +number+ attribute is used as the value; if the page does
- # not belong to this Paginator, an ArgumentError is raised.
- def current_page=(page)
- if page.is_a? Page
- raise ArgumentError, 'Page/Paginator mismatch' unless
- page.paginator == self
- end
- page = page.to_i
- @current_page_number = has_page_number?(page) ? page : 1
- end
-
- # Returns a Page object representing this paginator's current page.
- def current_page
- @current_page ||= self[@current_page_number]
- end
- alias current :current_page
-
- # Returns a new Page representing the first page in this paginator.
- def first_page
- @first_page ||= self[1]
- end
- alias first :first_page
-
- # Returns a new Page representing the last page in this paginator.
- def last_page
- @last_page ||= self[page_count]
- end
- alias last :last_page
-
- # Returns the number of pages in this paginator.
- def page_count
- @page_count ||= @item_count.zero? ? 1 :
- (q,r=@item_count.divmod(@items_per_page); r==0? q : q+1)
- end
-
- alias length :page_count
-
- # Returns true if this paginator contains the page of index +number+.
- def has_page_number?(number)
- number >= 1 and number <= page_count
- end
-
- # Returns a new Page representing the page with the given index
- # +number+.
- def [](number)
- @pages[number] ||= Page.new(self, number)
- end
-
- # Successively yields all the paginator's pages to the given block.
- def each(&block)
- page_count.times do |n|
- yield self[n+1]
- end
- end
-
- # A class representing a single page in a paginator.
- class Page
- include Comparable
-
- # Creates a new Page for the given +paginator+ with the index
- # +number+. If +number+ is not in the range of valid page numbers or
- # is not a number at all, it defaults to 1.
- def initialize(paginator, number)
- @paginator = paginator
- @number = number.to_i
- @number = 1 unless @paginator.has_page_number? @number
- end
- attr_reader :paginator, :number
- alias to_i :number
-
- # Compares two Page objects and returns true when they represent the
- # same page (i.e., their paginators are the same and they have the
- # same page number).
- def ==(page)
- return false if page.nil?
- @paginator == page.paginator and
- @number == page.number
- end
-
- # Compares two Page objects and returns -1 if the left-hand page comes
- # before the right-hand page, 0 if the pages are equal, and 1 if the
- # left-hand page comes after the right-hand page. Raises ArgumentError
- # if the pages do not belong to the same Paginator object.
- def <=>(page)
- raise ArgumentError unless @paginator == page.paginator
- @number <=> page.number
- end
-
- # Returns the item offset for the first item in this page.
- def offset
- @paginator.items_per_page * (@number - 1)
- end
-
- # Returns the number of the first item displayed.
- def first_item
- offset + 1
- end
-
- # Returns the number of the last item displayed.
- def last_item
- [@paginator.items_per_page * @number, @paginator.item_count].min
- end
-
- # Returns true if this page is the first page in the paginator.
- def first?
- self == @paginator.first
- end
-
- # Returns true if this page is the last page in the paginator.
- def last?
- self == @paginator.last
- end
-
- # Returns a new Page object representing the page just before this
- # page, or nil if this is the first page.
- def previous
- if first? then nil else @paginator[@number - 1] end
- end
-
- # Returns a new Page object representing the page just after this
- # page, or nil if this is the last page.
- def next
- if last? then nil else @paginator[@number + 1] end
- end
-
- # Returns a new Window object for this page with the specified
- # +padding+.
- def window(padding=2)
- Window.new(self, padding)
- end
-
- # Returns the limit/offset array for this page.
- def to_sql
- [@paginator.items_per_page, offset]
- end
-
- def to_param #:nodoc:
- @number.to_s
- end
- end
-
- # A class for representing ranges around a given page.
- class Window
- # Creates a new Window object for the given +page+ with the specified
- # +padding+.
- def initialize(page, padding=2)
- @paginator = page.paginator
- @page = page
- self.padding = padding
- end
- attr_reader :paginator, :page
-
- # Sets the window's padding (the number of pages on either side of the
- # window page).
- def padding=(padding)
- @padding = padding < 0 ? 0 : padding
- # Find the beginning and end pages of the window
- @first = @paginator.has_page_number?(@page.number - @padding) ?
- @paginator[@page.number - @padding] : @paginator.first
- @last = @paginator.has_page_number?(@page.number + @padding) ?
- @paginator[@page.number + @padding] : @paginator.last
- end
- attr_reader :padding, :first, :last
-
- # Returns an array of Page objects in the current window.
- def pages
- (@first.number..@last.number).to_a.collect! {|n| @paginator[n]}
- end
- alias to_a :pages
- end
- end
-
- end
-end
+++ /dev/null
-module ActionView
- module Helpers
- # Provides methods for linking to ActionController::Pagination objects using a simple generator API. You can optionally
- # also build your links manually using ActionView::Helpers::AssetHelper#link_to like so:
- #
- # <%= link_to "Previous page", { :page => paginator.current.previous } if paginator.current.previous %>
- # <%= link_to "Next page", { :page => paginator.current.next } if paginator.current.next %>
- module PaginationHelper
- unless const_defined?(:DEFAULT_OPTIONS)
- DEFAULT_OPTIONS = {
- :name => :page,
- :window_size => 2,
- :always_show_anchors => true,
- :link_to_current_page => false,
- :params => {}
- }
- end
-
- # Creates a basic HTML link bar for the given +paginator+. Links will be created
- # for the next and/or previous page and for a number of other pages around the current
- # pages position. The +html_options+ hash is passed to +link_to+ when the links are created.
- #
- # ==== Options
- # <tt>:name</tt>:: the routing name for this paginator
- # (defaults to +page+)
- # <tt>:prefix</tt>:: prefix for pagination links
- # (i.e. Older Pages: 1 2 3 4)
- # <tt>:suffix</tt>:: suffix for pagination links
- # (i.e. 1 2 3 4 <- Older Pages)
- # <tt>:window_size</tt>:: the number of pages to show around
- # the current page (defaults to <tt>2</tt>)
- # <tt>:always_show_anchors</tt>:: whether or not the first and last
- # pages should always be shown
- # (defaults to +true+)
- # <tt>:link_to_current_page</tt>:: whether or not the current page
- # should be linked to (defaults to
- # +false+)
- # <tt>:params</tt>:: any additional routing parameters
- # for page URLs
- #
- # ==== Examples
- # # We'll assume we have a paginator setup in @person_pages...
- #
- # pagination_links(@person_pages)
- # # => 1 <a href="/?page=2/">2</a> <a href="/?page=3/">3</a> ... <a href="/?page=10/">10</a>
- #
- # pagination_links(@person_pages, :link_to_current_page => true)
- # # => <a href="/?page=1/">1</a> <a href="/?page=2/">2</a> <a href="/?page=3/">3</a> ... <a href="/?page=10/">10</a>
- #
- # pagination_links(@person_pages, :always_show_anchors => false)
- # # => 1 <a href="/?page=2/">2</a> <a href="/?page=3/">3</a>
- #
- # pagination_links(@person_pages, :window_size => 1)
- # # => 1 <a href="/?page=2/">2</a> ... <a href="/?page=10/">10</a>
- #
- # pagination_links(@person_pages, :params => { :viewer => "flash" })
- # # => 1 <a href="/?page=2&viewer=flash/">2</a> <a href="/?page=3&viewer=flash/">3</a> ...
- # # <a href="/?page=10&viewer=flash/">10</a>
- def pagination_links(paginator, options={}, html_options={})
- name = options[:name] || DEFAULT_OPTIONS[:name]
- params = (options[:params] || DEFAULT_OPTIONS[:params]).clone
-
- prefix = options[:prefix] || ''
- suffix = options[:suffix] || ''
-
- pagination_links_each(paginator, options, prefix, suffix) do |n|
- params[name] = n
- link_to(n.to_s, params, html_options)
- end
- end
-
- # Iterate through the pages of a given +paginator+, invoking a
- # block for each page number that needs to be rendered as a link.
- #
- # ==== Options
- # <tt>:window_size</tt>:: the number of pages to show around
- # the current page (defaults to +2+)
- # <tt>:always_show_anchors</tt>:: whether or not the first and last
- # pages should always be shown
- # (defaults to +true+)
- # <tt>:link_to_current_page</tt>:: whether or not the current page
- # should be linked to (defaults to
- # +false+)
- #
- # ==== Example
- # # Turn paginated links into an Ajax call
- # pagination_links_each(paginator, page_options) do |link|
- # options = { :url => {:action => 'list'}, :update => 'results' }
- # html_options = { :href => url_for(:action => 'list') }
- #
- # link_to_remote(link.to_s, options, html_options)
- # end
- def pagination_links_each(paginator, options, prefix = nil, suffix = nil)
- options = DEFAULT_OPTIONS.merge(options)
- link_to_current_page = options[:link_to_current_page]
- always_show_anchors = options[:always_show_anchors]
-
- current_page = paginator.current_page
- window_pages = current_page.window(options[:window_size]).pages
- return if window_pages.length <= 1 unless link_to_current_page
-
- first, last = paginator.first, paginator.last
-
- html = ''
-
- html << prefix if prefix
-
- if always_show_anchors and not (wp_first = window_pages[0]).first?
- html << yield(first.number)
- html << ' ... ' if wp_first.number - first.number > 1
- html << ' '
- end
-
- window_pages.each do |page|
- if current_page == page && !link_to_current_page
- html << page.number.to_s
- else
- html << yield(page.number)
- end
- html << ' '
- end
-
- if always_show_anchors and not (wp_last = window_pages[-1]).last?
- html << ' ... ' if last.number - wp_last.number > 1
- html << yield(last.number)
- end
-
- html << suffix if suffix
-
- html
- end
-
- end # PaginationHelper
- end # Helpers
-end # ActionView
+++ /dev/null
-thirty_seven_signals:
- id: 1
- name: 37Signals
- rating: 4
-
-TextDrive:
- id: 2
- name: TextDrive
- rating: 4
-
-PlanetArgon:
- id: 3
- name: Planet Argon
- rating: 4
-
-Google:
- id: 4
- name: Google
- rating: 4
-
-Ionist:
- id: 5
- name: Ioni.st
- rating: 4
\ No newline at end of file
+++ /dev/null
-class Company < ActiveRecord::Base
- attr_protected :rating
- set_sequence_name :companies_nonstd_seq
-
- validates_presence_of :name
- def validate
- errors.add('rating', 'rating should not be 2') if rating == 2
- end
-end
\ No newline at end of file
+++ /dev/null
-class Developer < ActiveRecord::Base
- has_and_belongs_to_many :projects
-end
-
-class DeVeLoPeR < ActiveRecord::Base
- set_table_name "developers"
-end
+++ /dev/null
-david:
- id: 1
- name: David
- salary: 80000
-
-jamis:
- id: 2
- name: Jamis
- salary: 150000
-
-<% for digit in 3..10 %>
-dev_<%= digit %>:
- id: <%= digit %>
- name: fixture_<%= digit %>
- salary: 100000
-<% end %>
-
-poor_jamis:
- id: 11
- name: Jamis
- salary: 9000
\ No newline at end of file
+++ /dev/null
-david_action_controller:
- developer_id: 1
- project_id: 2
- joined_on: 2004-10-10
-
-david_active_record:
- developer_id: 1
- project_id: 1
- joined_on: 2004-10-10
-
-jamis_active_record:
- developer_id: 2
- project_id: 1
\ No newline at end of file
+++ /dev/null
-class Project < ActiveRecord::Base
- has_and_belongs_to_many :developers, :uniq => true
-end
+++ /dev/null
-action_controller:
- id: 2
- name: Active Controller
-
-active_record:
- id: 1
- name: Active Record
+++ /dev/null
-witty_retort:
- id: 1
- topic_id: 1
- content: Birdman is better!
- created_at: <%= 6.hours.ago.to_s(:db) %>
- updated_at: nil
-
-another:
- id: 2
- topic_id: 2
- content: Nuh uh!
- created_at: <%= 1.hour.ago.to_s(:db) %>
- updated_at: nil
\ No newline at end of file
+++ /dev/null
-class Reply < ActiveRecord::Base
- belongs_to :topic, :include => [:replies]
-
- validates_presence_of :content
-end
+++ /dev/null
-CREATE TABLE 'companies' (
- 'id' INTEGER PRIMARY KEY NOT NULL,
- 'name' TEXT DEFAULT NULL,
- 'rating' INTEGER DEFAULT 1
-);
-
-CREATE TABLE 'replies' (
- 'id' INTEGER PRIMARY KEY NOT NULL,
- 'content' text,
- 'created_at' datetime,
- 'updated_at' datetime,
- 'topic_id' integer
-);
-
-CREATE TABLE 'topics' (
- 'id' INTEGER PRIMARY KEY NOT NULL,
- 'title' varchar(255),
- 'subtitle' varchar(255),
- 'content' text,
- 'created_at' datetime,
- 'updated_at' datetime
-);
-
-CREATE TABLE 'developers' (
- 'id' INTEGER PRIMARY KEY NOT NULL,
- 'name' TEXT DEFAULT NULL,
- 'salary' INTEGER DEFAULT 70000,
- 'created_at' DATETIME DEFAULT NULL,
- 'updated_at' DATETIME DEFAULT NULL
-);
-
-CREATE TABLE 'projects' (
- 'id' INTEGER PRIMARY KEY NOT NULL,
- 'name' TEXT DEFAULT NULL
-);
-
-CREATE TABLE 'developers_projects' (
- 'developer_id' INTEGER NOT NULL,
- 'project_id' INTEGER NOT NULL,
- 'joined_on' DATE DEFAULT NULL,
- 'access_level' INTEGER DEFAULT 1
-);
+++ /dev/null
-class Topic < ActiveRecord::Base
- has_many :replies, :include => [:user], :dependent => :destroy
-end
+++ /dev/null
-futurama:
- id: 1
- title: Isnt futurama awesome?
- subtitle: It really is, isnt it.
- content: I like futurama
- created_at: <%= 1.day.ago.to_s(:db) %>
- updated_at:
-
-harvey_birdman:
- id: 2
- title: Harvey Birdman is the king of all men
- subtitle: yup
- content: It really is
- created_at: <%= 2.hours.ago.to_s(:db) %>
- updated_at:
-
-rails:
- id: 3
- title: Rails is nice
- subtitle: It makes me happy
- content: except when I have to hack internals to fix pagination. even then really.
- created_at: <%= 20.minutes.ago.to_s(:db) %>
+++ /dev/null
-require 'test/unit'
-
-unless defined?(ActiveRecord)
- plugin_root = File.join(File.dirname(__FILE__), '..')
-
- # first look for a symlink to a copy of the framework
- if framework_root = ["#{plugin_root}/rails", "#{plugin_root}/../../rails"].find { |p| File.directory? p }
- puts "found framework root: #{framework_root}"
- # this allows for a plugin to be tested outside an app
- $:.unshift "#{framework_root}/activesupport/lib", "#{framework_root}/activerecord/lib", "#{framework_root}/actionpack/lib"
- else
- # is the plugin installed in an application?
- app_root = plugin_root + '/../../..'
-
- if File.directory? app_root + '/config'
- puts 'using config/boot.rb'
- ENV['RAILS_ENV'] = 'test'
- require File.expand_path(app_root + '/config/boot')
- else
- # simply use installed gems if available
- puts 'using rubygems'
- require 'rubygems'
- gem 'actionpack'; gem 'activerecord'
- end
- end
-
- %w(action_pack active_record action_controller active_record/fixtures action_controller/test_process).each {|f| require f}
-
- Dependencies.load_paths.unshift "#{plugin_root}/lib"
-end
-
-# Define the connector
-class ActiveRecordTestConnector
- cattr_accessor :able_to_connect
- cattr_accessor :connected
-
- # Set our defaults
- self.connected = false
- self.able_to_connect = true
-
- class << self
- def setup
- unless self.connected || !self.able_to_connect
- setup_connection
- load_schema
- require_fixture_models
- self.connected = true
- end
- rescue Exception => e # errors from ActiveRecord setup
- $stderr.puts "\nSkipping ActiveRecord assertion tests: #{e}"
- #$stderr.puts " #{e.backtrace.join("\n ")}\n"
- self.able_to_connect = false
- end
-
- private
-
- def setup_connection
- if Object.const_defined?(:ActiveRecord)
- defaults = { :database => ':memory:' }
- begin
- options = defaults.merge :adapter => 'sqlite3', :timeout => 500
- ActiveRecord::Base.establish_connection(options)
- ActiveRecord::Base.configurations = { 'sqlite3_ar_integration' => options }
- ActiveRecord::Base.connection
- rescue Exception # errors from establishing a connection
- $stderr.puts 'SQLite 3 unavailable; trying SQLite 2.'
- options = defaults.merge :adapter => 'sqlite'
- ActiveRecord::Base.establish_connection(options)
- ActiveRecord::Base.configurations = { 'sqlite2_ar_integration' => options }
- ActiveRecord::Base.connection
- end
-
- Object.send(:const_set, :QUOTED_TYPE, ActiveRecord::Base.connection.quote_column_name('type')) unless Object.const_defined?(:QUOTED_TYPE)
- else
- raise "Can't setup connection since ActiveRecord isn't loaded."
- end
- end
-
- # Load actionpack sqlite tables
- def load_schema
- File.read(File.dirname(__FILE__) + "/fixtures/schema.sql").split(';').each do |sql|
- ActiveRecord::Base.connection.execute(sql) unless sql.blank?
- end
- end
-
- def require_fixture_models
- Dir.glob(File.dirname(__FILE__) + "/fixtures/*.rb").each {|f| require f}
- end
- end
-end
-
-# Test case for inheritance
-class ActiveRecordTestCase < Test::Unit::TestCase
- # Set our fixture path
- if ActiveRecordTestConnector.able_to_connect
- self.fixture_path = "#{File.dirname(__FILE__)}/fixtures/"
- self.use_transactional_fixtures = false
- end
-
- def self.fixtures(*args)
- super if ActiveRecordTestConnector.connected
- end
-
- def run(*args)
- super if ActiveRecordTestConnector.connected
- end
-
- # Default so Test::Unit::TestCase doesn't complain
- def test_truth
- end
-end
-
-ActiveRecordTestConnector.setup
-ActionController::Routing::Routes.reload rescue nil
-ActionController::Routing::Routes.draw do |map|
- map.connect ':controller/:action/:id'
-end
+++ /dev/null
-require File.dirname(__FILE__) + '/helper'
-require File.dirname(__FILE__) + '/../init'
-
-class PaginationHelperTest < Test::Unit::TestCase
- include ActionController::Pagination
- include ActionView::Helpers::PaginationHelper
- include ActionView::Helpers::UrlHelper
- include ActionView::Helpers::TagHelper
-
- def setup
- @controller = Class.new do
- attr_accessor :url, :request
- def url_for(options, *parameters_for_method_reference)
- url
- end
- end
- @controller = @controller.new
- @controller.url = "http://www.example.com"
- end
-
- def test_pagination_links
- total, per_page, page = 30, 10, 1
- output = pagination_links Paginator.new(@controller, total, per_page, page)
- assert_equal "1 <a href=\"http://www.example.com\">2</a> <a href=\"http://www.example.com\">3</a> ", output
- end
-
- def test_pagination_links_with_prefix
- total, per_page, page = 30, 10, 1
- output = pagination_links Paginator.new(@controller, total, per_page, page), :prefix => 'Newer '
- assert_equal "Newer 1 <a href=\"http://www.example.com\">2</a> <a href=\"http://www.example.com\">3</a> ", output
- end
-
- def test_pagination_links_with_suffix
- total, per_page, page = 30, 10, 1
- output = pagination_links Paginator.new(@controller, total, per_page, page), :suffix => 'Older'
- assert_equal "1 <a href=\"http://www.example.com\">2</a> <a href=\"http://www.example.com\">3</a> Older", output
- end
-end
+++ /dev/null
-require File.dirname(__FILE__) + '/helper'
-require File.dirname(__FILE__) + '/../init'
-
-class PaginationTest < ActiveRecordTestCase
- fixtures :topics, :replies, :developers, :projects, :developers_projects
-
- class PaginationController < ActionController::Base
- if respond_to? :view_paths=
- self.view_paths = [ "#{File.dirname(__FILE__)}/../fixtures/" ]
- else
- self.template_root = [ "#{File.dirname(__FILE__)}/../fixtures/" ]
- end
-
- def simple_paginate
- @topic_pages, @topics = paginate(:topics)
- render :nothing => true
- end
-
- def paginate_with_per_page
- @topic_pages, @topics = paginate(:topics, :per_page => 1)
- render :nothing => true
- end
-
- def paginate_with_order
- @topic_pages, @topics = paginate(:topics, :order => 'created_at asc')
- render :nothing => true
- end
-
- def paginate_with_order_by
- @topic_pages, @topics = paginate(:topics, :order_by => 'created_at asc')
- render :nothing => true
- end
-
- def paginate_with_include_and_order
- @topic_pages, @topics = paginate(:topics, :include => :replies, :order => 'replies.created_at asc, topics.created_at asc')
- render :nothing => true
- end
-
- def paginate_with_conditions
- @topic_pages, @topics = paginate(:topics, :conditions => ["created_at > ?", 30.minutes.ago])
- render :nothing => true
- end
-
- def paginate_with_class_name
- @developer_pages, @developers = paginate(:developers, :class_name => "DeVeLoPeR")
- render :nothing => true
- end
-
- def paginate_with_singular_name
- @developer_pages, @developers = paginate()
- render :nothing => true
- end
-
- def paginate_with_joins
- @developer_pages, @developers = paginate(:developers,
- :joins => 'LEFT JOIN developers_projects ON developers.id = developers_projects.developer_id',
- :conditions => 'project_id=1')
- render :nothing => true
- end
-
- def paginate_with_join
- @developer_pages, @developers = paginate(:developers,
- :join => 'LEFT JOIN developers_projects ON developers.id = developers_projects.developer_id',
- :conditions => 'project_id=1')
- render :nothing => true
- end
-
- def paginate_with_join_and_count
- @developer_pages, @developers = paginate(:developers,
- :join => 'd LEFT JOIN developers_projects ON d.id = developers_projects.developer_id',
- :conditions => 'project_id=1',
- :count => "d.id")
- render :nothing => true
- end
-
- def paginate_with_join_and_group
- @developer_pages, @developers = paginate(:developers,
- :join => 'INNER JOIN developers_projects ON developers.id = developers_projects.developer_id',
- :group => 'developers.id')
- render :nothing => true
- end
-
- def rescue_errors(e) raise e end
-
- def rescue_action(e) raise end
-
- end
-
- def setup
- @controller = PaginationController.new
- @request = ActionController::TestRequest.new
- @response = ActionController::TestResponse.new
- super
- end
-
- # Single Action Pagination Tests
-
- def test_simple_paginate
- get :simple_paginate
- assert_equal 1, assigns(:topic_pages).page_count
- assert_equal 3, assigns(:topics).size
- end
-
- def test_paginate_with_per_page
- get :paginate_with_per_page
- assert_equal 1, assigns(:topics).size
- assert_equal 3, assigns(:topic_pages).page_count
- end
-
- def test_paginate_with_order
- get :paginate_with_order
- expected = [topics(:futurama),
- topics(:harvey_birdman),
- topics(:rails)]
- assert_equal expected, assigns(:topics)
- assert_equal 1, assigns(:topic_pages).page_count
- end
-
- def test_paginate_with_order_by
- get :paginate_with_order
- expected = assigns(:topics)
- get :paginate_with_order_by
- assert_equal expected, assigns(:topics)
- assert_equal 1, assigns(:topic_pages).page_count
- end
-
- def test_paginate_with_conditions
- get :paginate_with_conditions
- expected = [topics(:rails)]
- assert_equal expected, assigns(:topics)
- assert_equal 1, assigns(:topic_pages).page_count
- end
-
- def test_paginate_with_class_name
- get :paginate_with_class_name
-
- assert assigns(:developers).size > 0
- assert_equal DeVeLoPeR, assigns(:developers).first.class
- end
-
- def test_paginate_with_joins
- get :paginate_with_joins
- assert_equal 2, assigns(:developers).size
- developer_names = assigns(:developers).map { |d| d.name }
- assert developer_names.include?('David')
- assert developer_names.include?('Jamis')
- end
-
- def test_paginate_with_join_and_conditions
- get :paginate_with_joins
- expected = assigns(:developers)
- get :paginate_with_join
- assert_equal expected, assigns(:developers)
- end
-
- def test_paginate_with_join_and_count
- get :paginate_with_joins
- expected = assigns(:developers)
- get :paginate_with_join_and_count
- assert_equal expected, assigns(:developers)
- end
-
- def test_paginate_with_include_and_order
- get :paginate_with_include_and_order
- expected = Topic.find(:all, :include => 'replies', :order => 'replies.created_at asc, topics.created_at asc', :limit => 10)
- assert_equal expected, assigns(:topics)
- end
-
- def test_paginate_with_join_and_group
- get :paginate_with_join_and_group
- assert_equal 2, assigns(:developers).size
- assert_equal 2, assigns(:developer_pages).item_count
- developer_names = assigns(:developers).map { |d| d.name }
- assert developer_names.include?('David')
- assert developer_names.include?('Jamis')
- end
-end
+++ /dev/null
-Deadlock Retry
-==============
-
-Deadlock retry allows the database adapter (currently only tested with the
-MySQLAdapter) to retry transactions that fall into deadlock. It will retry
-such transactions three times before finally failing.
-
-This capability is automatically added to ActiveRecord. No code changes or otherwise are required.
-
-Copyright (c) 2005 Jamis Buck, released under the MIT license
\ No newline at end of file
+++ /dev/null
-require 'rake'
-require 'rake/testtask'
-
-desc "Default task"
-task :default => [ :test ]
-
-Rake::TestTask.new do |t|
- t.test_files = Dir["test/**/*_test.rb"]
- t.verbose = true
-end
+++ /dev/null
-require 'deadlock_retry'
-
-if defined?(ActiveRecord::Base)
- ActiveRecord::Base.send :include, DeadlockRetry
-end
+++ /dev/null
-# Copyright (c) 2005 Jamis Buck
-#
-# Permission is hereby granted, free of charge, to any person obtaining
-# a copy of this software and associated documentation files (the
-# "Software"), to deal in the Software without restriction, including
-# without limitation the rights to use, copy, modify, merge, publish,
-# distribute, sublicense, and/or sell copies of the Software, and to
-# permit persons to whom the Software is furnished to do so, subject to
-# the following conditions:
-#
-# The above copyright notice and this permission notice shall be
-# included in all copies or substantial portions of the Software.
-#
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-module DeadlockRetry
- def self.append_features(base)
- super
- base.extend(ClassMethods)
- base.class_eval do
- class <<self
- alias_method :transaction_without_deadlock_handling, :transaction
- alias_method :transaction, :transaction_with_deadlock_handling
- end
- end
- end
-
- module ClassMethods
- DEADLOCK_ERROR_MESSAGES = [
- "Deadlock found when trying to get lock",
- "Lock wait timeout exceeded",
- "deadlock detected"
- ]
-
- MAXIMUM_RETRIES_ON_DEADLOCK = 3
-
- def transaction_with_deadlock_handling(*objects, &block)
- retry_count = 0
-
- begin
- transaction_without_deadlock_handling(*objects, &block)
- rescue ActiveRecord::StatementInvalid => error
- raise unless connection.open_transactions.zero?
- if DEADLOCK_ERROR_MESSAGES.any? { |msg| error.message =~ /#{Regexp.escape(msg)}/ }
- raise if retry_count >= MAXIMUM_RETRIES_ON_DEADLOCK
- retry_count += 1
- logger.info "Deadlock detected on retry #{retry_count}, restarting transaction"
- retry
- else
- raise
- end
- end
- end
- end
-end
+++ /dev/null
-begin
- require 'active_record'
-rescue LoadError
- if ENV['ACTIVERECORD_PATH'].nil?
- abort <<MSG
-Please set the ACTIVERECORD_PATH environment variable to the directory
-containing the active_record.rb file.
-MSG
- else
- $LOAD_PATH.unshift << ENV['ACTIVERECORD_PATH']
- begin
- require 'active_record'
- rescue LoadError
- abort "ActiveRecord could not be found."
- end
- end
-end
-
-require 'test/unit'
-require "#{File.dirname(__FILE__)}/../lib/deadlock_retry"
-
-class MockModel
- @@open_transactions = 0
-
- def self.transaction(*objects)
- @@open_transactions += 1
- yield
- ensure
- @@open_transactions -= 1
- end
-
- def self.open_transactions
- @@open_transactions
- end
-
- def self.connection
- self
- end
-
- def self.logger
- @logger ||= Logger.new(nil)
- end
-
- include DeadlockRetry
-end
-
-class DeadlockRetryTest < Test::Unit::TestCase
- DEADLOCK_ERROR = "MySQL::Error: Deadlock found when trying to get lock"
- TIMEOUT_ERROR = "MySQL::Error: Lock wait timeout exceeded"
-
- def test_no_errors
- assert_equal :success, MockModel.transaction { :success }
- end
-
- def test_no_errors_with_deadlock
- errors = [ DEADLOCK_ERROR ] * 3
- assert_equal :success, MockModel.transaction { raise ActiveRecord::StatementInvalid, errors.shift unless errors.empty?; :success }
- assert errors.empty?
- end
-
- def test_no_errors_with_lock_timeout
- errors = [ TIMEOUT_ERROR ] * 3
- assert_equal :success, MockModel.transaction { raise ActiveRecord::StatementInvalid, errors.shift unless errors.empty?; :success }
- assert errors.empty?
- end
-
- def test_error_if_limit_exceeded
- assert_raise(ActiveRecord::StatementInvalid) do
- MockModel.transaction { raise ActiveRecord::StatementInvalid, DEADLOCK_ERROR }
- end
- end
-
- def test_error_if_unrecognized_error
- assert_raise(ActiveRecord::StatementInvalid) do
- MockModel.transaction { raise ActiveRecord::StatementInvalid, "Something else" }
- end
- end
-
- def test_error_in_nested_transaction_should_retry_outermost_transaction
- tries = 0
- errors = 0
-
- MockModel.transaction do
- tries += 1
- MockModel.transaction do
- MockModel.transaction do
- errors += 1
- raise ActiveRecord::StatementInvalid, "MySQL::Error: Lock wait timeout exceeded" unless errors > 3
- end
- end
- end
-
- assert_equal 4, tries
- end
-end
+++ /dev/null
-*svn*
- * allow for directories in file_column dirs as well
- * use subdirs for versions instead of fiddling with filename
- * url_for_image_column_helper for dynamic resizing of images from views
- * new "crop" feature [Sean Treadway]
- * url_for_file_column helper: do not require model objects to be stored in
- instance variables
- * allow more fined-grained control over :store_dir via callback
- methods [Gerret Apelt]
- * allow assignment of regular file objects
- * validation of file format and file size [Kyle Maxwell]
- * validation of image dimensions [Lee O'Mara]
- * file permissions can be set via :permissions option
- * fixed bug that prevents deleting of file via assigning nil if
- column is declared as NON NULL on some databases
- * don't expand absolute paths. This is necessary for file_column to work
- when your rails app is deployed into a sub-directory via a symbolic link
- * url_for_*_column will no longer return absolute URLs! Instead, although the
- generated URL starts with a slash, it will be relative to your application's
- root URL. This is so, because rails' image_tag helper will automatically
- convert it to an absolute URL. If you need an absolute URL (e.g., to pass
- it to link_to) use url_for_file_column's :absolute => true option.
- * added support for file_column enabled unit tests [Manuel Holtgrewe]
- * support for custom transformation of images [Frederik Fix]
- * allow setting of image attributes (e.g., quality) [Frederik Fix]
- * :magick columns can optionally ignore non-images (i.e., do not try to
- resize them)
-
-0.3.1
- * make object with file_columns serializable
- * use normal require for RMagick, so that it works with gem
- and custom install as well
-
-0.3
- * fixed bug where empty file uploads were not recognized with some browsers
- * fixed bug on windows when "file" utility is not present
- * added option to disable automatic file extension correction
- * Only allow one attribute per call to file_column, so that options only
- apply to one argument
- * try to detect when people forget to set the form encoding to
- 'multipart/form-data'
- * converted to rails plugin
- * easy integration with RMagick
-
-0.2
- * complete rewrite using state pattern
- * fixed sanitize filename [Michael Raidel]
- * fixed bug when no file was uploaded [Michael Raidel]
- * try to fix filename extensions [Michael Raidel]
- * Feed absolute paths through File.expand_path to make them as simple as possible
- * Make file_column_field helper work with auto-ids (e.g., "event[]")
-
-0.1.3
- * test cases with more than 1 file_column
- * fixed bug when file_column was called with several arguments
- * treat empty ("") file_columns as nil
- * support for binary files on windows
-
-0.1.2
- * better rails integration, so that you do not have to include the modules yourself. You
- just have to "require 'rails_file_column'" in your "config/environment.rb"
- * Rakefile for testing and packaging
-
-0.1.1 (2005-08-11)
- * fixed nasty bug in url_for_file_column that made it unusable on Apache
- * prepared for public release
-
-0.1 (2005-08-10)
- * initial release
+++ /dev/null
-FEATURES
-========
-
-Let's assume an model class named Entry, where we want to define the "image" column
-as a "file_upload" column.
-
-class Entry < ActiveRecord::Base
- file_column :image
-end
-
-* every entry can have one uploaded file, the filename will be stored in the "image" column
-
-* files will be stored in "public/entry/image/<entry.id>/filename.ext"
-
-* Newly uploaded files will be stored in "public/entry/tmp/<random>/filename.ext" so that
- they can be reused in form redisplays (due to validation etc.)
-
-* in a view, "<%= file_column_field 'entry', 'image' %> will create a file upload field as well
- as a hidden field to recover files uploaded before in a case of a form redisplay
-
-* in a view, "<%= url_for_file_column 'entry', 'image' %> will create an URL to access the
- uploaded file. Note that you need an Entry object in the instance variable @entry for this
- to work.
-
-* easy integration with RMagick to resize images and/or create thumb-nails.
-
-USAGE
-=====
-
-Just drop the whole directory into your application's "vendor/plugins" directory. Starting
-with version 1.0rc of rails, it will be automatically picked for you by rails plugin
-mechanism.
-
-DOCUMENTATION
-=============
-
-Please look at the rdoc-generated documentation in the "doc" directory.
-
-RUNNING UNITTESTS
-=================
-
-There are extensive unittests in the "test" directory. Currently, only MySQL is supported, but
-you should be able to easily fix this by looking at "connection.rb". You have to create a
-database for the tests and put the connection information into "connection.rb". The schema
-for MySQL can be found in "test/fixtures/mysql.sql".
-
-You can run the tests by starting the "*_test.rb" in the directory "test"
-
-BUGS & FEEDBACK
-===============
-
-Bug reports (as well as patches) and feedback are very welcome. Please send it to
-sebastian.kanthak@muehlheim.de
-
+++ /dev/null
-task :default => [:test]
-
-PKG_NAME = "file-column"
-PKG_VERSION = "0.3.1"
-
-PKG_DIR = "release/#{PKG_NAME}-#{PKG_VERSION}"
-
-task :clean do
- rm_rf "release"
-end
-
-task :setup_directories do
- mkpath "release"
-end
-
-
-task :checkout_release => :setup_directories do
- rm_rf PKG_DIR
- revision = ENV["REVISION"] || "HEAD"
- sh "svn export -r #{revision} . #{PKG_DIR}"
-end
-
-task :release_docs => :checkout_release do
- sh "cd #{PKG_DIR}; rdoc lib"
-end
-
-task :package => [:checkout_release, :release_docs] do
- sh "cd release; tar czf #{PKG_NAME}-#{PKG_VERSION}.tar.gz #{PKG_NAME}-#{PKG_VERSION}"
-end
-
-task :test do
- sh "cd test; ruby file_column_test.rb"
- sh "cd test; ruby file_column_helper_test.rb"
- sh "cd test; ruby magick_test.rb"
- sh "cd test; ruby magick_view_only_test.rb"
-end
+++ /dev/null
-* document configuration options better
-* support setting of permissions
-* validation methods for file format/size
-* delete stale files from tmp directories
-
-* ensure valid URLs are created even when deployed at sub-path (compute_public_url?)
+++ /dev/null
-# plugin init file for rails
-# this file will be picked up by rails automatically and
-# add the file_column extensions to rails
-
-require 'file_column'
-require 'file_compat'
-require 'file_column_helper'
-require 'validations'
-require 'test_case'
-
-if defined?(ActiveRecord::Base)
- ActiveRecord::Base.send(:include, FileColumn)
- ActiveRecord::Base.send(:include, FileColumn::Validations)
-end
-
-if defined?(ActionView::Base)
- ActionView::Base.send(:include, FileColumnHelper)
-end
+++ /dev/null
-require 'fileutils'
-require 'tempfile'
-require 'magick_file_column'
-
-module FileColumn # :nodoc:
- def self.append_features(base)
- super
- base.extend(ClassMethods)
- end
-
- def self.create_state(instance,attr)
- filename = instance[attr]
- if filename.nil? or filename.empty?
- NoUploadedFile.new(instance,attr)
- else
- PermanentUploadedFile.new(instance,attr)
- end
- end
-
- def self.init_options(defaults, model, attr)
- options = defaults.dup
- options[:store_dir] ||= File.join(options[:root_path], model, attr)
- unless options[:store_dir].is_a?(Symbol)
- options[:tmp_base_dir] ||= File.join(options[:store_dir], "tmp")
- end
- options[:base_url] ||= options[:web_root] + File.join(model, attr)
-
- [:store_dir, :tmp_base_dir].each do |dir_sym|
- if options[dir_sym].is_a?(String) and !File.exists?(options[dir_sym])
- FileUtils.mkpath(options[dir_sym])
- end
- end
-
- options
- end
-
- class BaseUploadedFile # :nodoc:
-
- def initialize(instance,attr)
- @instance, @attr = instance, attr
- @options_method = "#{attr}_options".to_sym
- end
-
-
- def assign(file)
- if file.is_a? File
- # this did not come in via a CGI request. However,
- # assigning files directly may be useful, so we
- # make just this file object similar enough to an uploaded
- # file that we can handle it.
- file.extend FileColumn::FileCompat
- end
-
- if file.nil?
- delete
- else
- if file.size == 0
- # user did not submit a file, so we
- # can simply ignore this
- self
- else
- if file.is_a?(String)
- # if file is a non-empty string it is most probably
- # the filename and the user forgot to set the encoding
- # to multipart/form-data. Since we would raise an exception
- # because of the missing "original_filename" method anyways,
- # we raise a more meaningful exception rightaway.
- raise TypeError.new("Do not know how to handle a string with value '#{file}' that was passed to a file_column. Check if the form's encoding has been set to 'multipart/form-data'.")
- end
- upload(file)
- end
- end
- end
-
- def just_uploaded?
- @just_uploaded
- end
-
- def on_save(&blk)
- @on_save ||= []
- @on_save << Proc.new
- end
-
- # the following methods are overriden by sub-classes if needed
-
- def temp_path
- nil
- end
-
- def absolute_dir
- if absolute_path then File.dirname(absolute_path) else nil end
- end
-
- def relative_dir
- if relative_path then File.dirname(relative_path) else nil end
- end
-
- def after_save
- @on_save.each { |blk| blk.call } if @on_save
- self
- end
-
- def after_destroy
- end
-
- def options
- @instance.send(@options_method)
- end
-
- private
-
- def store_dir
- if options[:store_dir].is_a? Symbol
- raise ArgumentError.new("'#{options[:store_dir]}' is not an instance method of class #{@instance.class.name}") unless @instance.respond_to?(options[:store_dir])
-
- dir = File.join(options[:root_path], @instance.send(options[:store_dir]))
- FileUtils.mkpath(dir) unless File.exists?(dir)
- dir
- else
- options[:store_dir]
- end
- end
-
- def tmp_base_dir
- if options[:tmp_base_dir]
- options[:tmp_base_dir]
- else
- dir = File.join(store_dir, "tmp")
- FileUtils.mkpath(dir) unless File.exists?(dir)
- dir
- end
- end
-
- def clone_as(klass)
- klass.new(@instance, @attr)
- end
-
- end
-
-
- class NoUploadedFile < BaseUploadedFile # :nodoc:
- def delete
- # we do not have a file so deleting is easy
- self
- end
-
- def upload(file)
- # replace ourselves with a TempUploadedFile
- temp = clone_as TempUploadedFile
- temp.store_upload(file)
- temp
- end
-
- def absolute_path(subdir=nil)
- nil
- end
-
-
- def relative_path(subdir=nil)
- nil
- end
-
- def assign_temp(temp_path)
- return self if temp_path.nil? or temp_path.empty?
- temp = clone_as TempUploadedFile
- temp.parse_temp_path temp_path
- temp
- end
- end
-
- class RealUploadedFile < BaseUploadedFile # :nodoc:
- def absolute_path(subdir=nil)
- if subdir
- File.join(@dir, subdir, @filename)
- else
- File.join(@dir, @filename)
- end
- end
-
- def relative_path(subdir=nil)
- if subdir
- File.join(relative_path_prefix, subdir, @filename)
- else
- File.join(relative_path_prefix, @filename)
- end
- end
-
- private
-
- # regular expressions to try for identifying extensions
- EXT_REGEXPS = [
- /^(.+)\.([^.]+\.[^.]+)$/, # matches "something.tar.gz"
- /^(.+)\.([^.]+)$/ # matches "something.jpg"
- ]
-
- def split_extension(filename,fallback=nil)
- EXT_REGEXPS.each do |regexp|
- if filename =~ regexp
- base,ext = $1, $2
- return [base, ext] if options[:extensions].include?(ext.downcase)
- end
- end
- if fallback and filename =~ EXT_REGEXPS.last
- return [$1, $2]
- end
- [filename, ""]
- end
-
- end
-
- class TempUploadedFile < RealUploadedFile # :nodoc:
-
- def store_upload(file)
- @tmp_dir = FileColumn.generate_temp_name
- @dir = File.join(tmp_base_dir, @tmp_dir)
- FileUtils.mkdir(@dir)
-
- @filename = FileColumn::sanitize_filename(file.original_filename)
- local_file_path = File.join(tmp_base_dir,@tmp_dir,@filename)
-
- # stored uploaded file into local_file_path
- # If it was a Tempfile object, the temporary file will be
- # cleaned up automatically, so we do not have to care for this
- if file.respond_to?(:local_path) and file.local_path and File.exists?(file.local_path)
- FileUtils.copy_file(file.local_path, local_file_path)
- elsif file.respond_to?(:read)
- File.open(local_file_path, "wb") { |f| f.write(file.read) }
- else
- raise ArgumentError.new("Do not know how to handle #{file.inspect}")
- end
- File.chmod(options[:permissions], local_file_path)
-
- if options[:fix_file_extensions]
- # try to determine correct file extension and fix
- # if necessary
- content_type = get_content_type((file.content_type.chomp if file.content_type))
- if content_type and options[:mime_extensions][content_type]
- @filename = correct_extension(@filename,options[:mime_extensions][content_type])
- end
-
- new_local_file_path = File.join(tmp_base_dir,@tmp_dir,@filename)
- File.rename(local_file_path, new_local_file_path) unless new_local_file_path == local_file_path
- local_file_path = new_local_file_path
- end
-
- @instance[@attr] = @filename
- @just_uploaded = true
- end
-
-
- # tries to identify and strip the extension of filename
- # if an regular expresion from EXT_REGEXPS matches and the
- # downcased extension is a known extension (in options[:extensions])
- # we'll strip this extension
- def strip_extension(filename)
- split_extension(filename).first
- end
-
- def correct_extension(filename, ext)
- strip_extension(filename) << ".#{ext}"
- end
-
- def parse_temp_path(temp_path, instance_options=nil)
- raise ArgumentError.new("invalid format of '#{temp_path}'") unless temp_path =~ %r{^((\d+\.)+\d+)/([^/].+)$}
- @tmp_dir, @filename = $1, FileColumn.sanitize_filename($3)
- @dir = File.join(tmp_base_dir, @tmp_dir)
-
- @instance[@attr] = @filename unless instance_options == :ignore_instance
- end
-
- def upload(file)
- # store new file
- temp = clone_as TempUploadedFile
- temp.store_upload(file)
-
- # delete old copy
- delete_files
-
- # and return new TempUploadedFile object
- temp
- end
-
- def delete
- delete_files
- @instance[@attr] = ""
- clone_as NoUploadedFile
- end
-
- def assign_temp(temp_path)
- return self if temp_path.nil? or temp_path.empty?
- # we can ignore this since we've already received a newly uploaded file
-
- # however, we delete the old temporary files
- temp = clone_as TempUploadedFile
- temp.parse_temp_path(temp_path, :ignore_instance)
- temp.delete_files
-
- self
- end
-
- def temp_path
- File.join(@tmp_dir, @filename)
- end
-
- def after_save
- super
-
- # we have a newly uploaded image, move it to the correct location
- file = clone_as PermanentUploadedFile
- file.move_from(File.join(tmp_base_dir, @tmp_dir), @just_uploaded)
-
- # delete temporary files
- delete_files
-
- # replace with the new PermanentUploadedFile object
- file
- end
-
- def delete_files
- FileUtils.rm_rf(File.join(tmp_base_dir, @tmp_dir))
- end
-
- def get_content_type(fallback=nil)
- if options[:file_exec]
- begin
- content_type = `#{options[:file_exec]} -bi "#{File.join(@dir,@filename)}"`.chomp
- content_type = fallback unless $?.success?
- content_type.gsub!(/;.+$/,"") if content_type
- content_type
- rescue
- fallback
- end
- else
- fallback
- end
- end
-
- private
-
- def relative_path_prefix
- File.join("tmp", @tmp_dir)
- end
- end
-
-
- class PermanentUploadedFile < RealUploadedFile # :nodoc:
- def initialize(*args)
- super *args
- @dir = File.join(store_dir, relative_path_prefix)
- @filename = @instance[@attr]
- @filename = nil if @filename.empty?
- end
-
- def move_from(local_dir, just_uploaded)
- # remove old permament dir first
- # this creates a short moment, where neither the old nor
- # the new files exist but we can't do much about this as
- # filesystems aren't transactional.
- FileUtils.rm_rf @dir
-
- FileUtils.mv local_dir, @dir
-
- @just_uploaded = just_uploaded
- end
-
- def upload(file)
- temp = clone_as TempUploadedFile
- temp.store_upload(file)
- temp
- end
-
- def delete
- file = clone_as NoUploadedFile
- @instance[@attr] = ""
- file.on_save { delete_files }
- file
- end
-
- def assign_temp(temp_path)
- return nil if temp_path.nil? or temp_path.empty?
-
- temp = clone_as TempUploadedFile
- temp.parse_temp_path(temp_path)
- temp
- end
-
- def after_destroy
- delete_files
- end
-
- def delete_files
- FileUtils.rm_rf @dir
- end
-
- private
-
- def relative_path_prefix
- raise RuntimeError.new("Trying to access file_column, but primary key got lost.") if @instance.id.to_s.empty?
- @instance.id.to_s
- end
- end
-
- # The FileColumn module allows you to easily handle file uploads. You can designate
- # one or more columns of your model's table as "file columns" like this:
- #
- # class Entry < ActiveRecord::Base
- #
- # file_column :image
- # end
- #
- # Now, by default, an uploaded file "test.png" for an entry object with primary key 42 will
- # be stored in in "public/entry/image/42/test.png". The filename "test.png" will be stored
- # in the record's "image" column. The "entries" table should have a +VARCHAR+ column
- # named "image".
- #
- # The methods of this module are automatically included into <tt>ActiveRecord::Base</tt>
- # as class methods, so that you can use them in your models.
- #
- # == Generated Methods
- #
- # After calling "<tt>file_column :image</tt>" as in the example above, a number of instance methods
- # will automatically be generated, all prefixed by "image":
- #
- # * <tt>Entry#image=(uploaded_file)</tt>: this will handle a newly uploaded file
- # (see below). Note that
- # you can simply call your upload field "entry[image]" in your view (or use the
- # helper).
- # * <tt>Entry#image(subdir=nil)</tt>: This will return an absolute path (as a
- # string) to the currently uploaded file
- # or nil if no file has been uploaded
- # * <tt>Entry#image_relative_path(subdir=nil)</tt>: This will return a path relative to
- # this file column's base directory
- # as a string or nil if no file has been uploaded. This would be "42/test.png" in the example.
- # * <tt>Entry#image_just_uploaded?</tt>: Returns true if a new file has been uploaded to this instance.
- # You can use this in your code to perform certain actions (e. g., validation,
- # custom post-processing) only on newly uploaded files.
- #
- # You can access the raw value of the "image" column (which will contain the filename) via the
- # <tt>ActiveRecord::Base#attributes</tt> or <tt>ActiveRecord::Base#[]</tt> methods like this:
- #
- # entry['image'] # e.g."test.png"
- #
- # == Storage of uploaded files
- #
- # For a model class +Entry+ and a column +image+, all files will be stored under
- # "public/entry/image". A sub-directory named after the primary key of the object will
- # be created, so that files can be stored using their real filename. For example, a file
- # "test.png" stored in an Entry object with id 42 will be stored in
- #
- # public/entry/image/42/test.png
- #
- # Files will be moved to this location in an +after_save+ callback. They will be stored in
- # a temporary location previously as explained in the next section.
- #
- # By default, files will be created with unix permissions of <tt>0644</tt> (i. e., owner has
- # read/write access, group and others only have read access). You can customize
- # this by passing the desired mode as a <tt>:permissions</tt> options. The value
- # you give here is passed directly to <tt>File::chmod</tt>, so on Unix you should
- # give some octal value like 0644, for example.
- #
- # == Handling of form redisplay
- #
- # Suppose you have a form for creating a new object where the user can upload an image. The form may
- # have to be re-displayed because of validation errors. The uploaded file has to be stored somewhere so
- # that the user does not have to upload it again. FileColumn will store these in a temporary directory
- # (called "tmp" and located under the column's base directory by default) so that it can be moved to
- # the final location if the object is successfully created. If the form is never completed, though, you
- # can easily remove all the images in this "tmp" directory once per day or so.
- #
- # So in the example above, the image "test.png" would first be stored in
- # "public/entry/image/tmp/<some_random_key>/test.png" and be moved to
- # "public/entry/image/<primary_key>/test.png".
- #
- # This temporary location of newly uploaded files has another advantage when updating objects. If the
- # update fails for some reasons (e.g. due to validations), the existing image will not be overwritten, so
- # it has a kind of "transactional behaviour".
- #
- # == Additional Files and Directories
- #
- # FileColumn allows you to keep more than one file in a directory and will move/delete
- # all the files and directories it finds in a model object's directory when necessary.
- #
- # As a convenience you can access files stored in sub-directories via the +subdir+
- # parameter if they have the same filename.
- #
- # Suppose your uploaded file is named "vancouver.jpg" and you want to create a
- # thumb-nail and store it in the "thumb" directory. If you call
- # <tt>image("thumb")</tt>, you
- # will receive an absolute path for the file "thumb/vancouver.jpg" in the same
- # directory "vancouver.jpg" is stored. Look at the documentation of FileColumn::Magick
- # for more examples and how to create these thumb-nails automatically.
- #
- # == File Extensions
- #
- # FileColumn will try to fix the file extension of uploaded files, so that
- # the files are served with the correct mime-type by your web-server. Most
- # web-servers are setting the mime-type based on the file's extension. You
- # can disable this behaviour by passing the <tt>:fix_file_extensions</tt> option
- # with a value of +nil+ to +file_column+.
- #
- # In order to set the correct extension, FileColumn tries to determine
- # the files mime-type first. It then uses the +MIME_EXTENSIONS+ hash to
- # choose the corresponding file extension. You can override this hash
- # by passing in a <tt>:mime_extensions</tt> option to +file_column+.
- #
- # The mime-type of the uploaded file is determined with the following steps:
- #
- # 1. Run the external "file" utility. You can specify the full path to
- # the executable in the <tt>:file_exec</tt> option or set this option
- # to +nil+ to disable this step
- #
- # 2. If the file utility couldn't determine the mime-type or the utility was not
- # present, the content-type provided by the user's browser is used
- # as a fallback.
- #
- # == Custom Storage Directories
- #
- # FileColumn's storage location is determined in the following way. All
- # files are saved below the so-called "root_path" directory, which defaults to
- # "Rails.root/public". For every file_column, you can set a separte "store_dir"
- # option. It defaults to "model_name/attribute_name".
- #
- # Files will always be stored in sub-directories of the store_dir path. The
- # subdirectory is named after the instance's +id+ attribute for a saved model,
- # or "tmp/<randomkey>" for unsaved models.
- #
- # You can specify a custom root_path by setting the <tt>:root_path</tt> option.
- #
- # You can specify a custom storage_dir by setting the <tt>:storage_dir</tt> option.
- #
- # For setting a static storage_dir that doesn't change with respect to a particular
- # instance, you assign <tt>:storage_dir</tt> a String representing a directory
- # as an absolute path.
- #
- # If you need more fine-grained control over the storage directory, you
- # can use the name of a callback-method as a symbol for the
- # <tt>:store_dir</tt> option. This method has to be defined as an
- # instance method in your model. It will be called without any arguments
- # whenever the storage directory for an uploaded file is needed. It should return
- # a String representing a directory relativeo to root_path.
- #
- # Uploaded files for unsaved models objects will be stored in a temporary
- # directory. By default this directory will be a "tmp" directory in
- # your <tt>:store_dir</tt>. You can override this via the
- # <tt>:tmp_base_dir</tt> option.
- module ClassMethods
-
- # default mapping of mime-types to file extensions. FileColumn will try to
- # rename a file to the correct extension if it detects a known mime-type
- MIME_EXTENSIONS = {
- "image/gif" => "gif",
- "image/jpeg" => "jpg",
- "image/pjpeg" => "jpg",
- "image/x-png" => "png",
- "image/jpg" => "jpg",
- "image/png" => "png",
- "application/x-shockwave-flash" => "swf",
- "application/pdf" => "pdf",
- "application/pgp-signature" => "sig",
- "application/futuresplash" => "spl",
- "application/msword" => "doc",
- "application/postscript" => "ps",
- "application/x-bittorrent" => "torrent",
- "application/x-dvi" => "dvi",
- "application/x-gzip" => "gz",
- "application/x-ns-proxy-autoconfig" => "pac",
- "application/x-shockwave-flash" => "swf",
- "application/x-tgz" => "tar.gz",
- "application/x-tar" => "tar",
- "application/zip" => "zip",
- "audio/mpeg" => "mp3",
- "audio/x-mpegurl" => "m3u",
- "audio/x-ms-wma" => "wma",
- "audio/x-ms-wax" => "wax",
- "audio/x-wav" => "wav",
- "image/x-xbitmap" => "xbm",
- "image/x-xpixmap" => "xpm",
- "image/x-xwindowdump" => "xwd",
- "text/css" => "css",
- "text/html" => "html",
- "text/javascript" => "js",
- "text/plain" => "txt",
- "text/xml" => "xml",
- "video/mpeg" => "mpeg",
- "video/quicktime" => "mov",
- "video/x-msvideo" => "avi",
- "video/x-ms-asf" => "asf",
- "video/x-ms-wmv" => "wmv"
- }
-
- EXTENSIONS = Set.new MIME_EXTENSIONS.values
- EXTENSIONS.merge %w(jpeg)
-
- # default options. You can override these with +file_column+'s +options+ parameter
- DEFAULT_OPTIONS = {
- :root_path => File.join(Rails.root, "public"),
- :web_root => "",
- :mime_extensions => MIME_EXTENSIONS,
- :extensions => EXTENSIONS,
- :fix_file_extensions => true,
- :permissions => 0644,
-
- # path to the unix "file" executbale for
- # guessing the content-type of files
- :file_exec => "file"
- }
-
- # handle the +attr+ attribute as a "file-upload" column, generating additional methods as explained
- # above. You should pass the attribute's name as a symbol, like this:
- #
- # file_column :image
- #
- # You can pass in an options hash that overrides the options
- # in +DEFAULT_OPTIONS+.
- def file_column(attr, options={})
- options = DEFAULT_OPTIONS.merge(options) if options
-
- my_options = FileColumn::init_options(options,
- ActiveSupport::Inflector.underscore(self.name).to_s,
- attr.to_s)
-
- state_attr = "@#{attr}_state".to_sym
- state_method = "#{attr}_state".to_sym
-
- define_method state_method do
- result = instance_variable_get state_attr
- if result.nil?
- result = FileColumn::create_state(self, attr.to_s)
- instance_variable_set state_attr, result
- end
- result
- end
-
- private state_method
-
- define_method attr do |*args|
- send(state_method).absolute_path *args
- end
-
- define_method "#{attr}_relative_path" do |*args|
- send(state_method).relative_path *args
- end
-
- define_method "#{attr}_dir" do
- send(state_method).absolute_dir
- end
-
- define_method "#{attr}_relative_dir" do
- send(state_method).relative_dir
- end
-
- define_method "#{attr}=" do |file|
- state = send(state_method).assign(file)
- instance_variable_set state_attr, state
- if state.options[:after_upload] and state.just_uploaded?
- state.options[:after_upload].each do |sym|
- self.send sym
- end
- end
- end
-
- define_method "#{attr}_temp" do
- send(state_method).temp_path
- end
-
- define_method "#{attr}_temp=" do |temp_path|
- instance_variable_set state_attr, send(state_method).assign_temp(temp_path)
- end
-
- after_save_method = "#{attr}_after_save".to_sym
-
- define_method after_save_method do
- instance_variable_set state_attr, send(state_method).after_save
- end
-
- after_save after_save_method
-
- after_destroy_method = "#{attr}_after_destroy".to_sym
-
- define_method after_destroy_method do
- send(state_method).after_destroy
- end
- after_destroy after_destroy_method
-
- define_method "#{attr}_just_uploaded?" do
- send(state_method).just_uploaded?
- end
-
- # this creates a closure keeping a reference to my_options
- # right now that's the only way we store the options. We
- # might use a class attribute as well
- define_method "#{attr}_options" do
- my_options
- end
-
- private after_save_method, after_destroy_method
-
- FileColumn::MagickExtension::file_column(self, attr, my_options) if options[:magick]
- end
-
- end
-
- private
-
- def self.generate_temp_name
- now = Time.now
- "#{now.to_i}.#{now.usec}.#{Process.pid}"
- end
-
- def self.sanitize_filename(filename)
- filename = File.basename(filename.gsub("\\", "/")) # work-around for IE
- filename.gsub!(/[^a-zA-Z0-9\.\-\+_]/,"_")
- filename = "_#{filename}" if filename =~ /^\.+$/
- filename = "unnamed" if filename.size == 0
- filename
- end
-
-end
-
-
+++ /dev/null
-# This module contains helper methods for displaying and uploading files
-# for attributes created by +FileColumn+'s +file_column+ method. It will be
-# automatically included into ActionView::Base, thereby making this module's
-# methods available in all your views.
-module FileColumnHelper
-
- # Use this helper to create an upload field for a file_column attribute. This will generate
- # an additional hidden field to keep uploaded files during form-redisplays. For example,
- # when called with
- #
- # <%= file_column_field("entry", "image") %>
- #
- # the following HTML will be generated (assuming the form is redisplayed and something has
- # already been uploaded):
- #
- # <input type="hidden" name="entry[image_temp]" value="..." />
- # <input type="file" name="entry[image]" />
- #
- # You can use the +option+ argument to pass additional options to the file-field tag.
- #
- # Be sure to set the enclosing form's encoding to 'multipart/form-data', by
- # using something like this:
- #
- # <%= form_tag {:action => "create", ...}, :multipart => true %>
- def file_column_field(object, method, options={})
- result = ActionView::Helpers::InstanceTag.new(object.dup, method.to_s+"_temp", self).to_input_field_tag("hidden", {})
- result << ActionView::Helpers::InstanceTag.new(object.dup, method, self).to_input_field_tag("file", options)
- end
-
- # Creates an URL where an uploaded file can be accessed. When called for an Entry object with
- # id 42 (stored in <tt>@entry</tt>) like this
- #
- # <%= url_for_file_column(@entry, "image")
- #
- # the following URL will be produced, assuming the file "test.png" has been stored in
- # the "image"-column of an Entry object stored in <tt>@entry</tt>:
- #
- # /entry/image/42/test.png
- #
- # This will produce a valid URL even for temporary uploaded files, e.g. files where the object
- # they are belonging to has not been saved in the database yet.
- #
- # The URL produces, although starting with a slash, will be relative
- # to your app's root. If you pass it to one rails' +image_tag+
- # helper, rails will properly convert it to an absolute
- # URL. However, this will not be the case, if you create a link with
- # the +link_to+ helper. In this case, you can pass <tt>:absolute =>
- # true</tt> to +options+, which will make sure, the generated URL is
- # absolute on your server. Examples:
- #
- # <%= image_tag url_for_file_column(@entry, "image") %>
- # <%= link_to "Download", url_for_file_column(@entry, "image", :absolute => true) %>
- #
- # If there is currently no uploaded file stored in the object's column this method will
- # return +nil+.
- def url_for_file_column(object, method, options=nil)
- case object
- when String, Symbol
- object = instance_variable_get("@#{object.to_s}")
- end
-
- # parse options
- subdir = nil
- absolute = false
- if options
- case options
- when Hash
- subdir = options[:subdir]
- absolute = options[:absolute]
- when String, Symbol
- subdir = options
- end
- end
-
- relative_path = object.send("#{method}_relative_path", subdir)
- return nil unless relative_path
-
- url = ""
- url << request.protocol << request.host_with_port if absolute
- url << "/"
- url << object.send("#{method}_options")[:base_url] << "/"
- url << relative_path
- end
-
- # Same as +url_for_file_colum+ but allows you to access different versions
- # of the image that have been processed by RMagick.
- #
- # If your +options+ parameter is non-nil this will
- # access a different version of an image that will be produced by
- # RMagick. You can use the following types for +options+:
- #
- # * a <tt>:symbol</tt> will select a version defined in the model
- # via FileColumn::Magick's <tt>:versions</tt> feature.
- # * a <tt>geometry_string</tt> will dynamically create an
- # image resized as specified by <tt>geometry_string</tt>. The image will
- # be stored so that it does not have to be recomputed the next time the
- # same version string is used.
- # * <tt>some_hash</tt> will dynamically create an image
- # that is created according to the options in <tt>some_hash</tt>. This
- # accepts exactly the same options as Magick's version feature.
- #
- # The version produced by RMagick will be stored in a special sub-directory.
- # The directory's name will be derived from the options you specified
- # (via a hash function) but if you want
- # to set it yourself, you can use the <tt>:name => name</tt> option.
- #
- # Examples:
- #
- # <%= url_for_image_column @entry, "image", "640x480" %>
- #
- # will produce an URL like this
- #
- # /entry/image/42/bdn19n/filename.jpg
- # # "640x480".hash.abs.to_s(36) == "bdn19n"
- #
- # and
- #
- # <%= url_for_image_column @entry, "image",
- # :size => "50x50", :crop => "1:1", :name => "thumb" %>
- #
- # will produce something like this:
- #
- # /entry/image/42/thumb/filename.jpg
- #
- # Hint: If you are using the same geometry string / options hash multiple times, you should
- # define it in a helper to stay with DRY. Another option is to define it in the model via
- # FileColumn::Magick's <tt>:versions</tt> feature and then refer to it via a symbol.
- #
- # The URL produced by this method is relative to your application's root URL,
- # although it will start with a slash.
- # If you pass this URL to rails' +image_tag+ helper, it will be converted to an
- # absolute URL automatically.
- # If there is currently no image uploaded, or there is a problem while loading
- # the image this method will return +nil+.
- def url_for_image_column(object, method, options=nil)
- case object
- when String, Symbol
- object = instance_variable_get("@#{object.to_s}")
- end
- subdir = nil
- if options
- subdir = object.send("#{method}_state").create_magick_version_if_needed(options)
- end
- if subdir.nil?
- nil
- else
- url_for_file_column(object, method, subdir)
- end
- end
-end
+++ /dev/null
-module FileColumn
-
- # This bit of code allows you to pass regular old files to
- # file_column. file_column depends on a few extra methods that the
- # CGI uploaded file class adds. We will add the equivalent methods
- # to file objects if necessary by extending them with this module. This
- # avoids opening up the standard File class which might result in
- # naming conflicts.
-
- module FileCompat # :nodoc:
- def original_filename
- File.basename(path)
- end
-
- def size
- File.size(path)
- end
-
- def local_path
- path
- end
-
- def content_type
- nil
- end
- end
-end
-
+++ /dev/null
-module FileColumn # :nodoc:
-
- class BaseUploadedFile # :nodoc:
- def transform_with_magick
- if needs_transform?
- begin
- img = ::Magick::Image::read(absolute_path).first
- rescue ::Magick::ImageMagickError
- if options[:magick][:image_required]
- @magick_errors ||= []
- @magick_errors << "invalid image"
- end
- return
- end
-
- if options[:magick][:versions]
- options[:magick][:versions].each_pair do |version, version_options|
- next if version_options[:lazy]
- dirname = version_options[:name]
- FileUtils.mkdir File.join(@dir, dirname)
- transform_image(img, version_options, absolute_path(dirname))
- end
- end
- if options[:magick][:size] or options[:magick][:crop] or options[:magick][:transformation] or options[:magick][:attributes]
- transform_image(img, options[:magick], absolute_path)
- end
-
- GC.start
- end
- end
-
- def create_magick_version_if_needed(version)
- # RMagick might not have been loaded so far.
- # We do not want to require it on every call of this method
- # as this might be fairly expensive, so we just try if ::Magick
- # exists and require it if not.
- begin
- ::Magick
- rescue NameError
- require 'RMagick'
- end
-
- if version.is_a?(Symbol)
- version_options = options[:magick][:versions][version]
- else
- version_options = MagickExtension::process_options(version)
- end
-
- unless File.exists?(absolute_path(version_options[:name]))
- begin
- img = ::Magick::Image::read(absolute_path).first
- rescue ::Magick::ImageMagickError
- # we might be called directly from the view here
- # so we just return nil if we cannot load the image
- return nil
- end
- dirname = version_options[:name]
- FileUtils.mkdir File.join(@dir, dirname)
- transform_image(img, version_options, absolute_path(dirname))
- end
-
- version_options[:name]
- end
-
- attr_reader :magick_errors
-
- def has_magick_errors?
- @magick_errors and !@magick_errors.empty?
- end
-
- private
-
- def needs_transform?
- options[:magick] and just_uploaded? and
- (options[:magick][:size] or options[:magick][:versions] or options[:magick][:transformation] or options[:magick][:attributes])
- end
-
- def transform_image(img, img_options, dest_path)
- begin
- if img_options[:transformation]
- if img_options[:transformation].is_a?(Symbol)
- img = @instance.send(img_options[:transformation], img)
- else
- img = img_options[:transformation].call(img)
- end
- end
- if img_options[:crop]
- dx, dy = img_options[:crop].split(':').map { |x| x.to_f }
- w, h = (img.rows * dx / dy), (img.columns * dy / dx)
- img = img.crop(::Magick::CenterGravity, [img.columns, w].min,
- [img.rows, h].min, true)
- end
-
- if img_options[:size]
- img = img.change_geometry(img_options[:size]) do |c, r, i|
- i.resize(c, r)
- end
- end
- ensure
- img.write(dest_path) do
- if img_options[:attributes]
- img_options[:attributes].each_pair do |property, value|
- self.send "#{property}=", value
- end
- end
- end
- File.chmod options[:permissions], dest_path
- end
- end
- end
-
- # If you are using file_column to upload images, you can
- # directly process the images with RMagick,
- # a ruby extension
- # for accessing the popular imagemagick libraries. You can find
- # more information about RMagick at http://rmagick.rubyforge.org.
- #
- # You can control what to do by adding a <tt>:magick</tt> option
- # to your options hash. All operations are performed immediately
- # after a new file is assigned to the file_column attribute (i.e.,
- # when a new file has been uploaded).
- #
- # == Resizing images
- #
- # To resize the uploaded image according to an imagemagick geometry
- # string, just use the <tt>:size</tt> option:
- #
- # file_column :image, :magick => {:size => "800x600>"}
- #
- # If the uploaded file cannot be loaded by RMagick, file_column will
- # signal a validation error for the corresponding attribute. If you
- # want to allow non-image files to be uploaded in a column that uses
- # the <tt>:magick</tt> option, you can set the <tt>:image_required</tt>
- # attribute to +false+:
- #
- # file_column :image, :magick => {:size => "800x600>",
- # :image_required => false }
- #
- # == Multiple versions
- #
- # You can also create additional versions of your image, for example
- # thumb-nails, like this:
- # file_column :image, :magick => {:versions => {
- # :thumb => {:size => "50x50"},
- # :medium => {:size => "640x480>"}
- # }
- #
- # These versions will be stored in separate sub-directories, named like the
- # symbol you used to identify the version. So in the previous example, the
- # image versions will be stored in "thumb", "screen" and "widescreen"
- # directories, resp.
- # A name different from the symbol can be set via the <tt>:name</tt> option.
- #
- # These versions can be accessed via FileColumnHelper's +url_for_image_column+
- # method like this:
- #
- # <%= url_for_image_column "entry", "image", :thumb %>
- #
- # == Cropping images
- #
- # If you wish to crop your images with a size ratio before scaling
- # them according to your version geometry, you can use the :crop directive.
- # file_column :image, :magick => {:versions => {
- # :square => {:crop => "1:1", :size => "50x50", :name => "thumb"},
- # :screen => {:crop => "4:3", :size => "640x480>"},
- # :widescreen => {:crop => "16:9", :size => "640x360!"},
- # }
- # }
- #
- # == Custom attributes
- #
- # To change some of the image properties like compression level before they
- # are saved you can set the <tt>:attributes</tt> option.
- # For a list of available attributes go to http://www.simplesystems.org/RMagick/doc/info.html
- #
- # file_column :image, :magick => { :attributes => { :quality => 30 } }
- #
- # == Custom transformations
- #
- # To perform custom transformations on uploaded images, you can pass a
- # callback to file_column:
- # file_column :image, :magick =>
- # Proc.new { |image| image.quantize(256, Magick::GRAYColorspace) }
- #
- # The callback you give, receives one argument, which is an instance
- # of Magick::Image, the RMagick image class. It should return a transformed
- # image. Instead of passing a <tt>Proc</tt> object, you can also give a
- # <tt>Symbol</tt>, the name of an instance method of your model.
- #
- # Custom transformations can be combined via the standard :size and :crop
- # features, by using the :transformation option:
- # file_column :image, :magick => {
- # :transformation => Proc.new { |image| ... },
- # :size => "640x480"
- # }
- #
- # In this case, the standard resizing operations will be performed after the
- # custom transformation.
- #
- # Of course, custom transformations can be used in versions, as well.
- #
- # <b>Note:</b> You'll need the
- # RMagick extension being installed in order to use file_column's
- # imagemagick integration.
- module MagickExtension
-
- def self.file_column(klass, attr, options) # :nodoc:
- require 'RMagick'
- options[:magick] = process_options(options[:magick],false) if options[:magick]
- if options[:magick][:versions]
- options[:magick][:versions].each_pair do |name, value|
- options[:magick][:versions][name] = process_options(value, name.to_s)
- end
- end
- state_method = "#{attr}_state".to_sym
- after_assign_method = "#{attr}_magick_after_assign".to_sym
-
- klass.send(:define_method, after_assign_method) do
- self.send(state_method).transform_with_magick
- end
-
- options[:after_upload] ||= []
- options[:after_upload] << after_assign_method
-
- klass.validate do |record|
- state = record.send(state_method)
- if state.has_magick_errors?
- state.magick_errors.each do |error|
- record.errors.add attr, error
- end
- end
- end
- end
-
-
- def self.process_options(options,create_name=true)
- case options
- when String then options = {:size => options}
- when Proc, Symbol then options = {:transformation => options }
- end
- if options[:geometry]
- options[:size] = options.delete(:geometry)
- end
- options[:image_required] = true unless options.key?(:image_required)
- if options[:name].nil? and create_name
- if create_name == true
- hash = 0
- for key in [:size, :crop]
- hash = hash ^ options[key].hash if options[key]
- end
- options[:name] = hash.abs.to_s(36)
- else
- options[:name] = create_name
- end
- end
- options
- end
-
- end
-end
+++ /dev/null
-# require this file from your "config/environment.rb" (after rails has been loaded)
-# to integrate the file_column extension into rails.
-
-require 'file_column'
-require 'file_column_helper'
-
-
-module ActiveRecord # :nodoc:
- class Base # :nodoc:
- # make file_column method available in all active record decendants
- include FileColumn
- end
-end
-
-module ActionView # :nodoc:
- class Base # :nodoc:
- include FileColumnHelper
- end
-end
+++ /dev/null
-require 'test/unit'
-
-# Add the methods +upload+, the <tt>setup_file_fixtures</tt> and
-# <tt>teardown_file_fixtures</tt> to the class Test::Unit::TestCase.
-class Test::Unit::TestCase
- # Returns a +Tempfile+ object as it would have been generated on file upload.
- # Use this method to create the parameters when emulating form posts with
- # file fields.
- #
- # === Example:
- #
- # def test_file_column_post
- # entry = { :title => 'foo', :file => upload('/tmp/foo.txt')}
- # post :upload, :entry => entry
- #
- # # ...
- # end
- #
- # === Parameters
- #
- # * <tt>path</tt> The path to the file to upload.
- # * <tt>content_type</tt> The MIME type of the file. If it is <tt>:guess</tt>,
- # the method will try to guess it.
- def upload(path, content_type=:guess, type=:tempfile)
- if content_type == :guess
- case path
- when /\.jpg$/ then content_type = "image/jpeg"
- when /\.png$/ then content_type = "image/png"
- else content_type = nil
- end
- end
- uploaded_file(path, content_type, File.basename(path), type)
- end
-
- # Copies the fixture files from "Rails.root/test/fixtures/file_column" into
- # the temporary storage directory used for testing
- # ("Rails.root/test/tmp/file_column"). Call this method in your
- # <tt>setup</tt> methods to get the file fixtures (images, for example) into
- # the directory used by file_column in testing.
- #
- # Note that the files and directories in the "fixtures/file_column" directory
- # must have the same structure as you would expect in your "/public" directory
- # after uploading with FileColumn.
- #
- # For example, the directory structure could look like this:
- #
- # test/fixtures/file_column/
- # `-- container
- # |-- first_image
- # | |-- 1
- # | | `-- image1.jpg
- # | `-- tmp
- # `-- second_image
- # |-- 1
- # | `-- image2.jpg
- # `-- tmp
- #
- # Your fixture file for this one "container" class fixture could look like this:
- #
- # first:
- # id: 1
- # first_image: image1.jpg
- # second_image: image1.jpg
- #
- # A usage example:
- #
- # def setup
- # setup_fixture_files
- #
- # # ...
- # end
- def setup_fixture_files
- tmp_path = File.join(Rails.root, "test", "tmp", "file_column")
- file_fixtures = Dir.glob File.join(Rails.root, "test", "fixtures", "file_column", "*")
-
- FileUtils.mkdir_p tmp_path unless File.exists?(tmp_path)
- FileUtils.cp_r file_fixtures, tmp_path
- end
-
- # Removes the directory "Rails.root/test/tmp/file_column/" so the files
- # copied on test startup are removed. Call this in your unit test's +teardown+
- # method.
- #
- # A usage example:
- #
- # def teardown
- # teardown_fixture_files
- #
- # # ...
- # end
- def teardown_fixture_files
- FileUtils.rm_rf File.join(Rails.root, "test", "tmp", "file_column")
- end
-
- private
-
- def uploaded_file(path, content_type, filename, type=:tempfile) # :nodoc:
- if type == :tempfile
- t = Tempfile.new(File.basename(filename))
- FileUtils.copy_file(path, t.path)
- else
- if path
- t = StringIO.new(IO.read(path))
- else
- t = StringIO.new
- end
- end
- (class << t; self; end).class_eval do
- alias local_path path if type == :tempfile
- define_method(:local_path) { "" } if type == :stringio
- define_method(:original_filename) {filename}
- define_method(:content_type) {content_type}
- end
- return t
- end
-end
-
-# If we are running in the "test" environment, we overwrite the default
-# settings for FileColumn so that files are not uploaded into "/public/"
-# in tests but rather into the directory "/test/tmp/file_column".
-if Rails.env == "test"
- FileColumn::ClassMethods::DEFAULT_OPTIONS[:root_path] =
- File.join(Rails.root, "test", "tmp", "file_column")
-end
+++ /dev/null
-module FileColumn
- module Validations #:nodoc:
-
- def self.append_features(base)
- super
- base.extend(ClassMethods)
- end
-
- # This module contains methods to create validations of uploaded files. All methods
- # in this module will be included as class methods into <tt>ActiveRecord::Base</tt>
- # so that you can use them in your models like this:
- #
- # class Entry < ActiveRecord::Base
- # file_column :image
- # validates_filesize_of :image, :in => 0..1.megabyte
- # end
- module ClassMethods
- EXT_REGEXP = /\.([A-z0-9]+)$/
-
- # This validates the file type of one or more file_columns. A list of file columns
- # should be given followed by an options hash.
- #
- # Required options:
- # * <tt>:in</tt> => list of extensions or mime types. If mime types are used they
- # will be mapped into an extension via FileColumn::ClassMethods::MIME_EXTENSIONS.
- #
- # Examples:
- # validates_file_format_of :field, :in => ["gif", "png", "jpg"]
- # validates_file_format_of :field, :in => ["image/jpeg"]
- def validates_file_format_of(*attrs)
-
- options = attrs.pop if attrs.last.is_a?Hash
- raise ArgumentError, "Please include the :in option." if !options || !options[:in]
- options[:in] = [options[:in]] if options[:in].is_a?String
- raise ArgumentError, "Invalid value for option :in" unless options[:in].is_a?Array
-
- validates_each(attrs, options) do |record, attr, value|
- unless value.blank?
- mime_extensions = record.send("#{attr}_options")[:mime_extensions]
- extensions = options[:in].map{|o| mime_extensions[o] || o }
- record.errors.add attr, "is not a valid format." unless extensions.include?(value.scan(EXT_REGEXP).flatten.first)
- end
- end
-
- end
-
- # This validates the file size of one or more file_columns. A list of file columns
- # should be given followed by an options hash.
- #
- # Required options:
- # * <tt>:in</tt> => A size range. Note that you can use ActiveSupport's
- # numeric extensions for kilobytes, etc.
- #
- # Examples:
- # validates_filesize_of :field, :in => 0..100.megabytes
- # validates_filesize_of :field, :in => 15.kilobytes..1.megabyte
- def validates_filesize_of(*attrs)
-
- options = attrs.pop if attrs.last.is_a?Hash
- raise ArgumentError, "Please include the :in option." if !options || !options[:in]
- raise ArgumentError, "Invalid value for option :in" unless options[:in].is_a?Range
-
- validates_each(attrs, options) do |record, attr, value|
- unless value.blank?
- size = File.size(value)
- record.errors.add attr, "is smaller than the allowed size range." if size < options[:in].first
- record.errors.add attr, "is larger than the allowed size range." if size > options[:in].last
- end
- end
-
- end
-
- IMAGE_SIZE_REGEXP = /^(\d+)x(\d+)$/
-
- # Validates the image size of one or more file_columns. A list of file columns
- # should be given followed by an options hash. The validation will pass
- # if both image dimensions (rows and columns) are at least as big as
- # given in the <tt>:min</tt> option.
- #
- # Required options:
- # * <tt>:min</tt> => minimum image dimension string, in the format NNxNN
- # (columns x rows).
- #
- # Example:
- # validates_image_size :field, :min => "1200x1800"
- #
- # This validation requires RMagick to be installed on your system
- # to check the image's size.
- def validates_image_size(*attrs)
- options = attrs.pop if attrs.last.is_a?Hash
- raise ArgumentError, "Please include a :min option." if !options || !options[:min]
- minimums = options[:min].scan(IMAGE_SIZE_REGEXP).first.collect{|n| n.to_i} rescue []
- raise ArgumentError, "Invalid value for option :min (should be 'XXxYY')" unless minimums.size == 2
-
- require 'RMagick'
-
- validates_each(attrs, options) do |record, attr, value|
- unless value.blank?
- begin
- img = ::Magick::Image::read(value).first
- record.errors.add('image', "is too small, must be at least #{minimums[0]}x#{minimums[1]}") if ( img.rows < minimums[1] || img.columns < minimums[0] )
- rescue ::Magick::ImageMagickError
- record.errors.add('image', "invalid image")
- end
- img = nil
- GC.start
- end
- end
- end
- end
- end
-end
+++ /dev/null
-require 'test/unit'
-require 'rubygems'
-require 'active_support'
-require 'active_record'
-require 'action_view'
-require File.dirname(__FILE__) + '/connection'
-require 'stringio'
-
-RAILS_ROOT = File.dirname(__FILE__)
-RAILS_ENV = ""
-
-$: << "../lib"
-
-require 'file_column'
-require 'file_compat'
-require 'validations'
-require 'test_case'
-
-# do not use the file executable normally in our tests as
-# it may not be present on the machine we are running on
-FileColumn::ClassMethods::DEFAULT_OPTIONS =
- FileColumn::ClassMethods::DEFAULT_OPTIONS.merge({:file_exec => nil})
-
-class ActiveRecord::Base
- include FileColumn
- include FileColumn::Validations
-end
-
-
-class RequestMock
- attr_accessor :relative_url_root
-
- def initialize
- @relative_url_root = ""
- end
-end
-
-class Test::Unit::TestCase
-
- def assert_equal_paths(expected_path, path)
- assert_equal normalize_path(expected_path), normalize_path(path)
- end
-
-
- private
-
- def normalize_path(path)
- Pathname.new(path).realpath
- end
-
- def clear_validations
- [:validate, :validate_on_create, :validate_on_update].each do |attr|
- Entry.write_inheritable_attribute attr, []
- Movie.write_inheritable_attribute attr, []
- end
- end
-
- def file_path(filename)
- File.expand_path("#{File.dirname(__FILE__)}/fixtures/#{filename}")
- end
-
- alias_method :f, :file_path
-end
+++ /dev/null
-print "Using native MySQL\n"
-require 'logger'
-
-ActiveRecord::Base.logger = Logger.new("debug.log")
-
-db = 'file_column_test'
-
-ActiveRecord::Base.establish_connection(
- :adapter => "mysql",
- :host => "localhost",
- :username => "rails",
- :password => "",
- :database => db,
- :socket => "/var/run/mysqld/mysqld.sock"
-)
-
-load File.dirname(__FILE__) + "/fixtures/schema.rb"
+++ /dev/null
-require File.dirname(__FILE__) + '/abstract_unit'
-require File.dirname(__FILE__) + '/fixtures/entry'
-
-class UrlForFileColumnTest < Test::Unit::TestCase
- include FileColumnHelper
-
- def setup
- Entry.file_column :image
- @request = RequestMock.new
- end
-
- def test_url_for_file_column_with_temp_entry
- @e = Entry.new(:image => upload(f("skanthak.png")))
- url = url_for_file_column("e", "image")
- assert_match %r{^/entry/image/tmp/\d+(\.\d+)+/skanthak.png$}, url
- end
-
- def test_url_for_file_column_with_saved_entry
- @e = Entry.new(:image => upload(f("skanthak.png")))
- assert @e.save
-
- url = url_for_file_column("e", "image")
- assert_equal "/entry/image/#{@e.id}/skanthak.png", url
- end
-
- def test_url_for_file_column_works_with_symbol
- @e = Entry.new(:image => upload(f("skanthak.png")))
- assert @e.save
-
- url = url_for_file_column(:e, :image)
- assert_equal "/entry/image/#{@e.id}/skanthak.png", url
- end
-
- def test_url_for_file_column_works_with_object
- e = Entry.new(:image => upload(f("skanthak.png")))
- assert e.save
-
- url = url_for_file_column(e, "image")
- assert_equal "/entry/image/#{e.id}/skanthak.png", url
- end
-
- def test_url_for_file_column_should_return_nil_on_no_uploaded_file
- e = Entry.new
- assert_nil url_for_file_column(e, "image")
- end
-
- def test_url_for_file_column_without_extension
- e = Entry.new
- e.image = uploaded_file(file_path("kerb.jpg"), "something/unknown", "local_filename")
- assert e.save
- assert_equal "/entry/image/#{e.id}/local_filename", url_for_file_column(e, "image")
- end
-end
-
-class UrlForFileColumnTest < Test::Unit::TestCase
- include FileColumnHelper
- include ActionView::Helpers::AssetTagHelper
- include ActionView::Helpers::TagHelper
- include ActionView::Helpers::UrlHelper
-
- def setup
- Entry.file_column :image
-
- # mock up some request data structures for AssetTagHelper
- @request = RequestMock.new
- @request.relative_url_root = "/foo/bar"
- @controller = self
- end
-
- def request
- @request
- end
-
- IMAGE_URL = %r{^/foo/bar/entry/image/.+/skanthak.png$}
- def test_with_image_tag
- e = Entry.new(:image => upload(f("skanthak.png")))
- html = image_tag url_for_file_column(e, "image")
- url = html.scan(/src=\"(.+)\"/).first.first
-
- assert_match IMAGE_URL, url
- end
-
- def test_with_link_to_tag
- e = Entry.new(:image => upload(f("skanthak.png")))
- html = link_to "Download", url_for_file_column(e, "image", :absolute => true)
- url = html.scan(/href=\"(.+)\"/).first.first
-
- assert_match IMAGE_URL, url
- end
-
- def test_relative_url_root_not_modified
- e = Entry.new(:image => upload(f("skanthak.png")))
- url_for_file_column(e, "image", :absolute => true)
-
- assert_equal "/foo/bar", @request.relative_url_root
- end
-end
+++ /dev/null
-require File.dirname(__FILE__) + '/abstract_unit'
-
-require File.dirname(__FILE__) + '/fixtures/entry'
-
-class Movie < ActiveRecord::Base
-end
-
-
-class FileColumnTest < Test::Unit::TestCase
-
- def setup
- # we define the file_columns here so that we can change
- # settings easily in a single test
-
- Entry.file_column :image
- Entry.file_column :file
- Movie.file_column :movie
-
- clear_validations
- end
-
- def teardown
- FileUtils.rm_rf File.dirname(__FILE__)+"/public/entry/"
- FileUtils.rm_rf File.dirname(__FILE__)+"/public/movie/"
- FileUtils.rm_rf File.dirname(__FILE__)+"/public/my_store_dir/"
- end
-
- def test_column_write_method
- assert Entry.new.respond_to?("image=")
- end
-
- def test_column_read_method
- assert Entry.new.respond_to?("image")
- end
-
- def test_sanitize_filename
- assert_equal "test.jpg", FileColumn::sanitize_filename("test.jpg")
- assert FileColumn::sanitize_filename("../../very_tricky/foo.bar") !~ /[\\\/]/, "slashes not removed"
- assert_equal "__foo", FileColumn::sanitize_filename('`*foo')
- assert_equal "foo.txt", FileColumn::sanitize_filename('c:\temp\foo.txt')
- assert_equal "_.", FileColumn::sanitize_filename(".")
- end
-
- def test_default_options
- e = Entry.new
- assert_match %r{/public/entry/image}, e.image_options[:store_dir]
- assert_match %r{/public/entry/image/tmp}, e.image_options[:tmp_base_dir]
- end
-
- def test_assign_without_save_with_tempfile
- do_test_assign_without_save(:tempfile)
- end
-
- def test_assign_without_save_with_stringio
- do_test_assign_without_save(:stringio)
- end
-
- def do_test_assign_without_save(upload_type)
- e = Entry.new
- e.image = uploaded_file(file_path("skanthak.png"), "image/png", "skanthak.png", upload_type)
- assert e.image.is_a?(String), "#{e.image.inspect} is not a String"
- assert File.exists?(e.image)
- assert FileUtils.identical?(e.image, file_path("skanthak.png"))
- end
-
- def test_filename_preserved
- e = Entry.new
- e.image = uploaded_file(file_path("kerb.jpg"), "image/jpeg", "local_filename.jpg")
- assert_equal "local_filename.jpg", File.basename(e.image)
- end
-
- def test_filename_stored_in_attribute
- e = Entry.new("image" => uploaded_file(file_path("kerb.jpg"), "image/jpeg", "kerb.jpg"))
- assert_equal "kerb.jpg", e["image"]
- end
-
- def test_extension_added
- e = Entry.new
- e.image = uploaded_file(file_path("kerb.jpg"), "image/jpeg", "local_filename")
- assert_equal "local_filename.jpg", File.basename(e.image)
- assert_equal "local_filename.jpg", e["image"]
- end
-
- def test_no_extension_without_content_type
- e = Entry.new
- e.image = uploaded_file(file_path("kerb.jpg"), "something/unknown", "local_filename")
- assert_equal "local_filename", File.basename(e.image)
- assert_equal "local_filename", e["image"]
- end
-
- def test_extension_unknown_type
- e = Entry.new
- e.image = uploaded_file(file_path("kerb.jpg"), "not/known", "local_filename")
- assert_equal "local_filename", File.basename(e.image)
- assert_equal "local_filename", e["image"]
- end
-
- def test_extension_unknown_type_with_extension
- e = Entry.new
- e.image = uploaded_file(file_path("kerb.jpg"), "not/known", "local_filename.abc")
- assert_equal "local_filename.abc", File.basename(e.image)
- assert_equal "local_filename.abc", e["image"]
- end
-
- def test_extension_corrected
- e = Entry.new
- e.image = uploaded_file(file_path("kerb.jpg"), "image/jpeg", "local_filename.jpeg")
- assert_equal "local_filename.jpg", File.basename(e.image)
- assert_equal "local_filename.jpg", e["image"]
- end
-
- def test_double_extension
- e = Entry.new
- e.image = uploaded_file(file_path("kerb.jpg"), "application/x-tgz", "local_filename.tar.gz")
- assert_equal "local_filename.tar.gz", File.basename(e.image)
- assert_equal "local_filename.tar.gz", e["image"]
- end
-
- FILE_UTILITY = "/usr/bin/file"
-
- def test_get_content_type_with_file
- Entry.file_column :image, :file_exec => FILE_UTILITY
-
- # run this test only if the machine we are running on
- # has the file utility installed
- if File.executable?(FILE_UTILITY)
- e = Entry.new
- file = FileColumn::TempUploadedFile.new(e, "image")
- file.instance_variable_set :@dir, File.dirname(file_path("kerb.jpg"))
- file.instance_variable_set :@filename, File.basename(file_path("kerb.jpg"))
-
- assert_equal "image/jpeg", file.get_content_type
- else
- puts "Warning: Skipping test_get_content_type_with_file test as '#{options[:file_exec]}' does not exist"
- end
- end
-
- def test_fix_extension_with_file
- Entry.file_column :image, :file_exec => FILE_UTILITY
-
- # run this test only if the machine we are running on
- # has the file utility installed
- if File.executable?(FILE_UTILITY)
- e = Entry.new(:image => uploaded_file(file_path("skanthak.png"), "", "skanthak.jpg"))
-
- assert_equal "skanthak.png", File.basename(e.image)
- else
- puts "Warning: Skipping test_fix_extension_with_file test as '#{options[:file_exec]}' does not exist"
- end
- end
-
- def test_do_not_fix_file_extensions
- Entry.file_column :image, :fix_file_extensions => false
-
- e = Entry.new(:image => uploaded_file(file_path("kerb.jpg"), "image/jpeg", "kerb"))
-
- assert_equal "kerb", File.basename(e.image)
- end
-
- def test_correct_extension
- e = Entry.new
- file = FileColumn::TempUploadedFile.new(e, "image")
-
- assert_equal "filename.jpg", file.correct_extension("filename.jpeg","jpg")
- assert_equal "filename.tar.gz", file.correct_extension("filename.jpg","tar.gz")
- assert_equal "filename.jpg", file.correct_extension("filename.tar.gz","jpg")
- assert_equal "Protokoll_01.09.2005.doc", file.correct_extension("Protokoll_01.09.2005","doc")
- assert_equal "strange.filenames.exist.jpg", file.correct_extension("strange.filenames.exist","jpg")
- assert_equal "another.strange.one.jpg", file.correct_extension("another.strange.one.png","jpg")
- end
-
- def test_assign_with_save
- e = Entry.new
- e.image = uploaded_file(file_path("kerb.jpg"), "image/jpeg", "kerb.jpg")
- tmp_file_path = e.image
- assert e.save
- assert File.exists?(e.image)
- assert FileUtils.identical?(e.image, file_path("kerb.jpg"))
- assert_equal "#{e.id}/kerb.jpg", e.image_relative_path
- assert !File.exists?(tmp_file_path), "temporary file '#{tmp_file_path}' not removed"
- assert !File.exists?(File.dirname(tmp_file_path)), "temporary directory '#{File.dirname(tmp_file_path)}' not removed"
-
- local_path = e.image
- e = Entry.find(e.id)
- assert_equal local_path, e.image
- end
-
- def test_dir_methods
- e = Entry.new
- e.image = uploaded_file(file_path("kerb.jpg"), "image/jpeg", "kerb.jpg")
- e.save
-
- assert_equal_paths File.join(RAILS_ROOT, "public", "entry", "image", e.id.to_s), e.image_dir
- assert_equal File.join(e.id.to_s), e.image_relative_dir
- end
-
- def test_store_dir_callback
- Entry.file_column :image, {:store_dir => :my_store_dir}
- e = Entry.new
-
- e.image = uploaded_file(file_path("kerb.jpg"), "image/jpeg", "kerb.jpg")
- assert e.save
-
- assert_equal_paths File.join(RAILS_ROOT, "public", "my_store_dir", e.id), e.image_dir
- end
-
- def test_tmp_dir_with_store_dir_callback
- Entry.file_column :image, {:store_dir => :my_store_dir}
- e = Entry.new
- e.image = upload(f("kerb.jpg"))
-
- assert_equal File.expand_path(File.join(RAILS_ROOT, "public", "my_store_dir", "tmp")), File.expand_path(File.join(e.image_dir,".."))
- end
-
- def test_invalid_store_dir_callback
- Entry.file_column :image, {:store_dir => :my_store_dir_doesnt_exit}
- e = Entry.new
- assert_raise(ArgumentError) {
- e.image = uploaded_file(file_path("kerb.jpg"), "image/jpeg", "kerb.jpg")
- e.save
- }
- end
-
- def test_subdir_parameter
- e = Entry.new
- assert_nil e.image("thumb")
- assert_nil e.image_relative_path("thumb")
- assert_nil e.image(nil)
-
- e.image = uploaded_file(file_path("kerb.jpg"), "image/jpeg", "kerb.jpg")
-
- assert_equal "kerb.jpg", File.basename(e.image("thumb"))
- assert_equal "kerb.jpg", File.basename(e.image_relative_path("thumb"))
-
- assert_equal File.join(e.image_dir,"thumb","kerb.jpg"), e.image("thumb")
- assert_match %r{/thumb/kerb\.jpg$}, e.image_relative_path("thumb")
-
- assert_equal e.image, e.image(nil)
- assert_equal e.image_relative_path, e.image_relative_path(nil)
- end
-
- def test_cleanup_after_destroy
- e = Entry.new("image" => uploaded_file(file_path("kerb.jpg"), "image/jpeg", "kerb.jpg"))
- assert e.save
- local_path = e.image
- assert File.exists?(local_path)
- assert e.destroy
- assert !File.exists?(local_path), "'#{local_path}' still exists although entry was destroyed"
- assert !File.exists?(File.dirname(local_path))
- end
-
- def test_keep_tmp_image
- e = Entry.new("image" => uploaded_file(file_path("kerb.jpg"), "image/jpeg", "kerb.jpg"))
- e.validation_should_fail = true
- assert !e.save, "e should not save due to validation errors"
- assert File.exists?(local_path = e.image)
- image_temp = e.image_temp
- e = Entry.new("image_temp" => image_temp)
- assert_equal local_path, e.image
- assert e.save
- assert FileUtils.identical?(e.image, file_path("kerb.jpg"))
- end
-
- def test_keep_tmp_image_with_existing_image
- e = Entry.new("image" =>uploaded_file(file_path("kerb.jpg"), "image/jpeg", "kerb.jpg"))
- assert e.save
- assert File.exists?(local_path = e.image)
- e = Entry.find(e.id)
- e.image = uploaded_file(file_path("skanthak.png"), "image/png", "skanthak.png")
- e.validation_should_fail = true
- assert !e.save
- temp_path = e.image_temp
- e = Entry.find(e.id)
- e.image_temp = temp_path
- assert e.save
-
- assert FileUtils.identical?(e.image, file_path("skanthak.png"))
- assert !File.exists?(local_path), "old image has not been deleted"
- end
-
- def test_replace_tmp_image_temp_first
- do_test_replace_tmp_image([:image_temp, :image])
- end
-
- def test_replace_tmp_image_temp_last
- do_test_replace_tmp_image([:image, :image_temp])
- end
-
- def do_test_replace_tmp_image(order)
- e = Entry.new("image" => uploaded_file(file_path("kerb.jpg"), "image/jpeg", "kerb.jpg"))
- e.validation_should_fail = true
- assert !e.save
- image_temp = e.image_temp
- temp_path = e.image
- new_img = uploaded_file(file_path("skanthak.png"), "image/png", "skanthak.png")
- e = Entry.new
- for method in order
- case method
- when :image_temp then e.image_temp = image_temp
- when :image then e.image = new_img
- end
- end
- assert e.save
- assert FileUtils.identical?(e.image, file_path("skanthak.png")), "'#{e.image}' is not the expected 'skanthak.png'"
- assert !File.exists?(temp_path), "temporary file '#{temp_path}' is not cleaned up"
- assert !File.exists?(File.dirname(temp_path)), "temporary directory not cleaned up"
- assert e.image_just_uploaded?
- end
-
- def test_replace_image_on_saved_object
- e = Entry.new("image" => uploaded_file(file_path("kerb.jpg"), "image/jpeg", "kerb.jpg"))
- assert e.save
- old_file = e.image
- e = Entry.find(e.id)
- e.image = uploaded_file(file_path("skanthak.png"), "image/png", "skanthak.png")
- assert e.save
- assert FileUtils.identical?(file_path("skanthak.png"), e.image)
- assert old_file != e.image
- assert !File.exists?(old_file), "'#{old_file}' has not been cleaned up"
- end
-
- def test_edit_without_touching_image
- e = Entry.new("image" => uploaded_file(file_path("kerb.jpg"), "image/jpeg", "kerb.jpg"))
- assert e.save
- e = Entry.find(e.id)
- assert e.save
- assert FileUtils.identical?(file_path("kerb.jpg"), e.image)
- end
-
- def test_save_without_image
- e = Entry.new
- assert e.save
- e.reload
- assert_nil e.image
- end
-
- def test_delete_saved_image
- e = Entry.new("image" => uploaded_file(file_path("kerb.jpg"), "image/jpeg", "kerb.jpg"))
- assert e.save
- local_path = e.image
- e.image = nil
- assert_nil e.image
- assert File.exists?(local_path), "file '#{local_path}' should not be deleted until transaction is saved"
- assert e.save
- assert_nil e.image
- assert !File.exists?(local_path)
- e.reload
- assert e["image"].blank?
- e = Entry.find(e.id)
- assert_nil e.image
- end
-
- def test_delete_tmp_image
- e = Entry.new("image" => uploaded_file(file_path("kerb.jpg"), "image/jpeg", "kerb.jpg"))
- local_path = e.image
- e.image = nil
- assert_nil e.image
- assert e["image"].blank?
- assert !File.exists?(local_path)
- end
-
- def test_delete_nonexistant_image
- e = Entry.new
- e.image = nil
- assert e.save
- assert_nil e.image
- end
-
- def test_delete_image_on_non_null_column
- e = Entry.new("file" => upload(f("skanthak.png")))
- assert e.save
-
- local_path = e.file
- assert File.exists?(local_path)
- e.file = nil
- assert e.save
- assert !File.exists?(local_path)
- end
-
- def test_ie_filename
- e = Entry.new("image" => uploaded_file(file_path("kerb.jpg"), "image/jpeg", 'c:\images\kerb.jpg'))
- assert e.image_relative_path =~ /^tmp\/[\d\.]+\/kerb\.jpg$/, "relative path '#{e.image_relative_path}' was not as expected"
- assert File.exists?(e.image)
- end
-
- def test_just_uploaded?
- e = Entry.new("image" => uploaded_file(file_path("kerb.jpg"), "image/jpeg", 'c:\images\kerb.jpg'))
- assert e.image_just_uploaded?
- assert e.save
- assert e.image_just_uploaded?
-
- e = Entry.new("image" => uploaded_file(file_path("kerb.jpg"), "image/jpeg", 'kerb.jpg'))
- temp_path = e.image_temp
- e = Entry.new("image_temp" => temp_path)
- assert !e.image_just_uploaded?
- assert e.save
- assert !e.image_just_uploaded?
- end
-
- def test_empty_tmp
- e = Entry.new
- e.image_temp = ""
- assert_nil e.image
- end
-
- def test_empty_tmp_with_image
- e = Entry.new
- e.image_temp = ""
- e.image = uploaded_file(file_path("kerb.jpg"), "image/jpeg", 'c:\images\kerb.jpg')
- local_path = e.image
- assert File.exists?(local_path)
- e.image_temp = ""
- assert local_path, e.image
- end
-
- def test_empty_filename
- e = Entry.new
- assert_equal "", e["file"]
- assert_nil e.file
- assert_nil e["image"]
- assert_nil e.image
- end
-
- def test_with_two_file_columns
- e = Entry.new
- e.image = uploaded_file(file_path("kerb.jpg"), "image/jpeg", "kerb.jpg")
- e.file = uploaded_file(file_path("skanthak.png"), "image/png", "skanthak.png")
- assert e.save
- assert_match %{/entry/image/}, e.image
- assert_match %{/entry/file/}, e.file
- assert FileUtils.identical?(e.image, file_path("kerb.jpg"))
- assert FileUtils.identical?(e.file, file_path("skanthak.png"))
- end
-
- def test_with_two_models
- e = Entry.new(:image => uploaded_file(file_path("kerb.jpg"), "image/jpeg", "kerb.jpg"))
- m = Movie.new(:movie => uploaded_file(file_path("skanthak.png"), "image/png", "skanthak.png"))
- assert e.save
- assert m.save
- assert_match %{/entry/image/}, e.image
- assert_match %{/movie/movie/}, m.movie
- assert FileUtils.identical?(e.image, file_path("kerb.jpg"))
- assert FileUtils.identical?(m.movie, file_path("skanthak.png"))
- end
-
- def test_no_file_uploaded
- e = Entry.new
- assert_nothing_raised { e.image =
- uploaded_file(nil, "application/octet-stream", "", :stringio) }
- assert_equal nil, e.image
- end
-
- # when safari submits a form where no file has been
- # selected, it does not transmit a content-type and
- # the result is an empty string ""
- def test_no_file_uploaded_with_safari
- e = Entry.new
- assert_nothing_raised { e.image = "" }
- assert_equal nil, e.image
- end
-
- def test_detect_wrong_encoding
- e = Entry.new
- assert_raise(TypeError) { e.image ="img42.jpg" }
- end
-
- def test_serializable_before_save
- e = Entry.new
- e.image = uploaded_file(file_path("skanthak.png"), "image/png", "skanthak.png")
- assert_nothing_raised {
- flash = Marshal.dump(e)
- e = Marshal.load(flash)
- }
- assert File.exists?(e.image)
- end
-
- def test_should_call_after_upload_on_new_upload
- Entry.file_column :image, :after_upload => [:after_assign]
- e = Entry.new
- e.image = upload(f("skanthak.png"))
- assert e.after_assign_called?
- end
-
- def test_should_call_user_after_save_on_save
- e = Entry.new(:image => upload(f("skanthak.png")))
- assert e.save
-
- assert_kind_of FileColumn::PermanentUploadedFile, e.send(:image_state)
- assert e.after_save_called?
- end
-
-
- def test_assign_standard_files
- e = Entry.new
- e.image = File.new(file_path('skanthak.png'))
-
- assert_equal 'skanthak.png', File.basename(e.image)
- assert FileUtils.identical?(file_path('skanthak.png'), e.image)
-
- assert e.save
- end
-
-
- def test_validates_filesize
- Entry.validates_filesize_of :image, :in => 50.kilobytes..100.kilobytes
-
- e = Entry.new(:image => upload(f("kerb.jpg")))
- assert e.save
-
- e.image = upload(f("skanthak.png"))
- assert !e.save
- assert e.errors.invalid?("image")
- end
-
- def test_validates_file_format_simple
- e = Entry.new(:image => upload(f("skanthak.png")))
- assert e.save
-
- Entry.validates_file_format_of :image, :in => ["jpg"]
-
- e.image = upload(f("kerb.jpg"))
- assert e.save
-
- e.image = upload(f("mysql.sql"))
- assert !e.save
- assert e.errors.invalid?("image")
-
- end
-
- def test_validates_image_size
- Entry.validates_image_size :image, :min => "640x480"
-
- e = Entry.new(:image => upload(f("kerb.jpg")))
- assert e.save
-
- e = Entry.new(:image => upload(f("skanthak.png")))
- assert !e.save
- assert e.errors.invalid?("image")
- end
-
- def do_permission_test(uploaded_file, permissions=0641)
- Entry.file_column :image, :permissions => permissions
-
- e = Entry.new(:image => uploaded_file)
- assert e.save
-
- assert_equal permissions, (File.stat(e.image).mode & 0777)
- end
-
- def test_permissions_with_small_file
- do_permission_test upload(f("skanthak.png"), :guess, :stringio)
- end
-
- def test_permission_with_big_file
- do_permission_test upload(f("kerb.jpg"))
- end
-
- def test_permission_that_overrides_umask
- do_permission_test upload(f("skanthak.png"), :guess, :stringio), 0666
- do_permission_test upload(f("kerb.jpg")), 0666
- end
-
- def test_access_with_empty_id
- # an empty id might happen after a clone or through some other
- # strange event. Since we would create a path that contains nothing
- # where the id would have been, we should fail fast with an exception
- # in this case
-
- e = Entry.new(:image => upload(f("skanthak.png")))
- assert e.save
- id = e.id
-
- e = Entry.find(id)
-
- e["id"] = ""
- assert_raise(RuntimeError) { e.image }
-
- e = Entry.find(id)
- e["id"] = nil
- assert_raise(RuntimeError) { e.image }
- end
-end
-
-# Tests for moving temp dir to permanent dir
-class FileColumnMoveTest < Test::Unit::TestCase
-
- def setup
- # we define the file_columns here so that we can change
- # settings easily in a single test
-
- Entry.file_column :image
-
- end
-
- def teardown
- FileUtils.rm_rf File.dirname(__FILE__)+"/public/entry/"
- end
-
- def test_should_move_additional_files_from_tmp
- e = Entry.new
- e.image = uploaded_file(file_path("skanthak.png"), "image/png", "skanthak.png")
- FileUtils.cp file_path("kerb.jpg"), File.dirname(e.image)
- assert e.save
- dir = File.dirname(e.image)
- assert File.exists?(File.join(dir, "skanthak.png"))
- assert File.exists?(File.join(dir, "kerb.jpg"))
- end
-
- def test_should_move_direcotries_on_save
- e = Entry.new(:image => upload(f("skanthak.png")))
-
- FileUtils.mkdir( e.image_dir+"/foo" )
- FileUtils.cp file_path("kerb.jpg"), e.image_dir+"/foo/kerb.jpg"
-
- assert e.save
-
- assert File.exists?(e.image)
- assert File.exists?(File.dirname(e.image)+"/foo/kerb.jpg")
- end
-
- def test_should_overwrite_dirs_with_files_on_reupload
- e = Entry.new(:image => upload(f("skanthak.png")))
-
- FileUtils.mkdir( e.image_dir+"/kerb.jpg")
- FileUtils.cp file_path("kerb.jpg"), e.image_dir+"/kerb.jpg/"
- assert e.save
-
- e.image = upload(f("kerb.jpg"))
- assert e.save
-
- assert File.file?(e.image_dir+"/kerb.jpg")
- end
-
- def test_should_overwrite_files_with_dirs_on_reupload
- e = Entry.new(:image => upload(f("skanthak.png")))
-
- assert e.save
- assert File.file?(e.image_dir+"/skanthak.png")
-
- e.image = upload(f("kerb.jpg"))
- FileUtils.mkdir(e.image_dir+"/skanthak.png")
-
- assert e.save
- assert File.file?(e.image_dir+"/kerb.jpg")
- assert !File.file?(e.image_dir+"/skanthak.png")
- assert File.directory?(e.image_dir+"/skanthak.png")
- end
-
-end
-
+++ /dev/null
-class Entry < ActiveRecord::Base
- attr_accessor :validation_should_fail
-
- def validate
- errors.add("image","some stupid error") if @validation_should_fail
- end
-
- def after_assign
- @after_assign_called = true
- end
-
- def after_assign_called?
- @after_assign_called
- end
-
- def after_save
- @after_save_called = true
- end
-
- def after_save_called?
- @after_save_called
- end
-
- def my_store_dir
- # not really dynamic but at least it could be...
- "my_store_dir"
- end
-
- def load_image_with_rmagick(path)
- Magick::Image::read(path).first
- end
-end
+++ /dev/null
-this is certainly not a JPEG image
+++ /dev/null
--- MySQL dump 9.11
---
--- Host: localhost Database: file_column_test
--- ------------------------------------------------------
--- Server version 4.0.24
-
---
--- Table structure for table `entries`
---
-
-DROP TABLE IF EXISTS entries;
-CREATE TABLE entries (
- id int(11) NOT NULL auto_increment,
- image varchar(200) default NULL,
- file varchar(200) NOT NULL,
- PRIMARY KEY (id)
-) TYPE=MyISAM;
-
-DROP TABLE IF EXISTS movies;
-CREATE TABLE movies (
- id int(11) NOT NULL auto_increment,
- movie varchar(200) default NULL,
- PRIMARY KEY (id)
-) TYPE=MyISAM;
-
+++ /dev/null
-ActiveRecord::Schema.define do
- create_table :entries, :force => true do |t|
- t.column :image, :string, :null => true
- t.column :file, :string, :null => false
- end
-
- create_table :movies, :force => true do |t|
- t.column :movie, :string
- end
-end
+++ /dev/null
-require File.dirname(__FILE__) + '/abstract_unit'
-require 'RMagick'
-require File.dirname(__FILE__) + '/fixtures/entry'
-
-
-class AbstractRMagickTest < Test::Unit::TestCase
- def teardown
- FileUtils.rm_rf File.dirname(__FILE__)+"/public/entry/"
- end
-
- def test_truth
- assert true
- end
-
- private
-
- def read_image(path)
- Magick::Image::read(path).first
- end
-
- def assert_max_image_size(img, s)
- assert img.columns <= s, "img has #{img.columns} columns, expected: #{s}"
- assert img.rows <= s, "img has #{img.rows} rows, expected: #{s}"
- assert_equal s, [img.columns, img.rows].max
- end
-end
-
-class RMagickSimpleTest < AbstractRMagickTest
- def setup
- Entry.file_column :image, :magick => { :geometry => "100x100" }
- end
-
- def test_simple_resize_without_save
- e = Entry.new
- e.image = upload(f("kerb.jpg"))
-
- img = read_image(e.image)
- assert_max_image_size img, 100
- end
-
- def test_simple_resize_with_save
- e = Entry.new
- e.image = upload(f("kerb.jpg"))
- assert e.save
- e.reload
-
- img = read_image(e.image)
- assert_max_image_size img, 100
- end
-
- def test_resize_on_saved_image
- Entry.file_column :image, :magick => { :geometry => "100x100" }
-
- e = Entry.new
- e.image = upload(f("skanthak.png"))
- assert e.save
- e.reload
- old_path = e.image
-
- e.image = upload(f("kerb.jpg"))
- assert e.save
- assert "kerb.jpg", File.basename(e.image)
- assert !File.exists?(old_path), "old image '#{old_path}' still exists"
-
- img = read_image(e.image)
- assert_max_image_size img, 100
- end
-
- def test_invalid_image
- e = Entry.new
- assert_nothing_raised { e.image = upload(f("invalid-image.jpg")) }
- assert !e.valid?
- end
-
- def test_serializable
- e = Entry.new
- e.image = upload(f("skanthak.png"))
- assert_nothing_raised {
- flash = Marshal.dump(e)
- e = Marshal.load(flash)
- }
- assert File.exists?(e.image)
- end
-
- def test_imagemagick_still_usable
- e = Entry.new
- assert_nothing_raised {
- img = e.load_image_with_rmagick(file_path("skanthak.png"))
- assert img.kind_of?(Magick::Image)
- }
- end
-end
-
-class RMagickRequiresImageTest < AbstractRMagickTest
- def setup
- Entry.file_column :image, :magick => {
- :size => "100x100>",
- :image_required => false,
- :versions => {
- :thumb => "80x80>",
- :large => {:size => "200x200>", :lazy => true}
- }
- }
- end
-
- def test_image_required_with_image
- e = Entry.new(:image => upload(f("skanthak.png")))
- assert_max_image_size read_image(e.image), 100
- assert e.valid?
- end
-
- def test_image_required_with_invalid_image
- e = Entry.new(:image => upload(f("invalid-image.jpg")))
- assert e.valid?, "did not ignore invalid image"
- assert FileUtils.identical?(e.image, f("invalid-image.jpg")), "uploaded file has not been left alone"
- end
-
- def test_versions_with_invalid_image
- e = Entry.new(:image => upload(f("invalid-image.jpg")))
- assert e.valid?
-
- image_state = e.send(:image_state)
- assert_nil image_state.create_magick_version_if_needed(:thumb)
- assert_nil image_state.create_magick_version_if_needed(:large)
- assert_nil image_state.create_magick_version_if_needed("300x300>")
- end
-end
-
-class RMagickCustomAttributesTest < AbstractRMagickTest
- def assert_image_property(img, property, value, text = nil)
- assert File.exists?(img), "the image does not exist"
- assert_equal value, read_image(img).send(property), text
- end
-
- def test_simple_attributes
- Entry.file_column :image, :magick => { :attributes => { :quality => 20 } }
- e = Entry.new("image" => upload(f("kerb.jpg")))
- assert_image_property e.image, :quality, 20, "the quality was not set"
- end
-
- def test_version_attributes
- Entry.file_column :image, :magick => {
- :versions => {
- :thumb => { :attributes => { :quality => 20 } }
- }
- }
- e = Entry.new("image" => upload(f("kerb.jpg")))
- assert_image_property e.image("thumb"), :quality, 20, "the quality was not set"
- end
-
- def test_lazy_attributes
- Entry.file_column :image, :magick => {
- :versions => {
- :thumb => { :attributes => { :quality => 20 }, :lazy => true }
- }
- }
- e = Entry.new("image" => upload(f("kerb.jpg")))
- e.send(:image_state).create_magick_version_if_needed(:thumb)
- assert_image_property e.image("thumb"), :quality, 20, "the quality was not set"
- end
-end
-
-class RMagickVersionsTest < AbstractRMagickTest
- def setup
- Entry.file_column :image, :magick => {:geometry => "200x200",
- :versions => {
- :thumb => "50x50",
- :medium => {:geometry => "100x100", :name => "100_100"},
- :large => {:geometry => "150x150", :lazy => true}
- }
- }
- end
-
-
- def test_should_create_thumb
- e = Entry.new("image" => upload(f("skanthak.png")))
-
- assert File.exists?(e.image("thumb")), "thumb-nail not created"
-
- assert_max_image_size read_image(e.image("thumb")), 50
- end
-
- def test_version_name_can_be_different_from_key
- e = Entry.new("image" => upload(f("skanthak.png")))
-
- assert File.exists?(e.image("100_100"))
- assert !File.exists?(e.image("medium"))
- end
-
- def test_should_not_create_lazy_versions
- e = Entry.new("image" => upload(f("skanthak.png")))
- assert !File.exists?(e.image("large")), "lazy versions should not be created unless needed"
- end
-
- def test_should_create_lazy_version_on_demand
- e = Entry.new("image" => upload(f("skanthak.png")))
-
- e.send(:image_state).create_magick_version_if_needed(:large)
-
- assert File.exists?(e.image("large")), "lazy version should be created on demand"
-
- assert_max_image_size read_image(e.image("large")), 150
- end
-
- def test_generated_name_should_not_change
- e = Entry.new("image" => upload(f("skanthak.png")))
-
- name1 = e.send(:image_state).create_magick_version_if_needed("50x50")
- name2 = e.send(:image_state).create_magick_version_if_needed("50x50")
- name3 = e.send(:image_state).create_magick_version_if_needed(:geometry => "50x50")
- assert_equal name1, name2, "hash value has changed"
- assert_equal name1, name3, "hash value has changed"
- end
-
- def test_should_create_version_with_string
- e = Entry.new("image" => upload(f("skanthak.png")))
-
- name = e.send(:image_state).create_magick_version_if_needed("32x32")
-
- assert File.exists?(e.image(name))
-
- assert_max_image_size read_image(e.image(name)), 32
- end
-
- def test_should_create_safe_auto_id
- e = Entry.new("image" => upload(f("skanthak.png")))
-
- name = e.send(:image_state).create_magick_version_if_needed("32x32")
-
- assert_match /^[a-zA-Z0-9]+$/, name
- end
-end
-
-class RMagickCroppingTest < AbstractRMagickTest
- def setup
- Entry.file_column :image, :magick => {:geometry => "200x200",
- :versions => {
- :thumb => {:crop => "1:1", :geometry => "50x50"}
- }
- }
- end
-
- def test_should_crop_image_on_upload
- e = Entry.new("image" => upload(f("skanthak.png")))
-
- img = read_image(e.image("thumb"))
-
- assert_equal 50, img.rows
- assert_equal 50, img.columns
- end
-
-end
-
-class UrlForImageColumnTest < AbstractRMagickTest
- include FileColumnHelper
-
- def setup
- Entry.file_column :image, :magick => {
- :versions => {:thumb => "50x50"}
- }
- @request = RequestMock.new
- end
-
- def test_should_use_version_on_symbol_option
- e = Entry.new(:image => upload(f("skanthak.png")))
-
- url = url_for_image_column(e, "image", :thumb)
- assert_match %r{^/entry/image/tmp/.+/thumb/skanthak.png$}, url
- end
-
- def test_should_use_string_as_size
- e = Entry.new(:image => upload(f("skanthak.png")))
-
- url = url_for_image_column(e, "image", "50x50")
-
- assert_match %r{^/entry/image/tmp/.+/.+/skanthak.png$}, url
-
- url =~ /\/([^\/]+)\/skanthak.png$/
- dirname = $1
-
- assert_max_image_size read_image(e.image(dirname)), 50
- end
-
- def test_should_accept_version_hash
- e = Entry.new(:image => upload(f("skanthak.png")))
-
- url = url_for_image_column(e, "image", :size => "50x50", :crop => "1:1", :name => "small")
-
- assert_match %r{^/entry/image/tmp/.+/small/skanthak.png$}, url
-
- img = read_image(e.image("small"))
- assert_equal 50, img.rows
- assert_equal 50, img.columns
- end
-end
-
-class RMagickPermissionsTest < AbstractRMagickTest
- def setup
- Entry.file_column :image, :magick => {:geometry => "200x200",
- :versions => {
- :thumb => {:crop => "1:1", :geometry => "50x50"}
- }
- }, :permissions => 0616
- end
-
- def check_permissions(e)
- assert_equal 0616, (File.stat(e.image).mode & 0777)
- assert_equal 0616, (File.stat(e.image("thumb")).mode & 0777)
- end
-
- def test_permissions_with_rmagick
- e = Entry.new(:image => upload(f("skanthak.png")))
-
- check_permissions e
-
- assert e.save
-
- check_permissions e
- end
-end
-
-class Entry
- def transform_grey(img)
- img.quantize(256, Magick::GRAYColorspace)
- end
-end
-
-class RMagickTransformationTest < AbstractRMagickTest
- def assert_transformed(image)
- assert File.exists?(image), "the image does not exist"
- assert 256 > read_image(image).number_colors, "the number of colors was not changed"
- end
-
- def test_simple_transformation
- Entry.file_column :image, :magick => { :transformation => Proc.new { |image| image.quantize(256, Magick::GRAYColorspace) } }
- e = Entry.new("image" => upload(f("skanthak.png")))
- assert_transformed(e.image)
- end
-
- def test_simple_version_transformation
- Entry.file_column :image, :magick => {
- :versions => { :thumb => Proc.new { |image| image.quantize(256, Magick::GRAYColorspace) } }
- }
- e = Entry.new("image" => upload(f("skanthak.png")))
- assert_transformed(e.image("thumb"))
- end
-
- def test_complex_version_transformation
- Entry.file_column :image, :magick => {
- :versions => {
- :thumb => { :transformation => Proc.new { |image| image.quantize(256, Magick::GRAYColorspace) } }
- }
- }
- e = Entry.new("image" => upload(f("skanthak.png")))
- assert_transformed(e.image("thumb"))
- end
-
- def test_lazy_transformation
- Entry.file_column :image, :magick => {
- :versions => {
- :thumb => { :transformation => Proc.new { |image| image.quantize(256, Magick::GRAYColorspace) }, :lazy => true }
- }
- }
- e = Entry.new("image" => upload(f("skanthak.png")))
- e.send(:image_state).create_magick_version_if_needed(:thumb)
- assert_transformed(e.image("thumb"))
- end
-
- def test_simple_callback_transformation
- Entry.file_column :image, :magick => :transform_grey
- e = Entry.new(:image => upload(f("skanthak.png")))
- assert_transformed(e.image)
- end
-
- def test_complex_callback_transformation
- Entry.file_column :image, :magick => { :transformation => :transform_grey }
- e = Entry.new(:image => upload(f("skanthak.png")))
- assert_transformed(e.image)
- end
-end
+++ /dev/null
-require File.dirname(__FILE__) + '/abstract_unit'
-require File.dirname(__FILE__) + '/fixtures/entry'
-
-class RMagickViewOnlyTest < Test::Unit::TestCase
- include FileColumnHelper
-
- def setup
- Entry.file_column :image
- @request = RequestMock.new
- end
-
- def teardown
- FileUtils.rm_rf File.dirname(__FILE__)+"/public/entry/"
- end
-
- def test_url_for_image_column_without_model_versions
- e = Entry.new(:image => upload(f("skanthak.png")))
-
- assert_nothing_raised { url_for_image_column e, "image", "50x50" }
- end
-end
+++ /dev/null
-= HttpAcceptLanguage
-
-A small effort in making a plugin which helps you detect the users preferred language, as sent by the HTTP header.
-
-== Features
-
-* Splits the http-header into languages specified by the user
-* Returns empty array if header is illformed.
-* Corrects case to xx-XX
-* Sorted by priority given, as much as possible.
-* Gives you the most important language
-* Gives compatible languages
-See also: http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html
-
-== Example
-
- class SomeController < ApplicationController
- def some_action
-
- request.user_preferred_languages
- # => [ 'nl-NL', 'nl-BE', 'nl', 'en-US', 'en' ]
-
- available = %w{en en-US nl-BE}
- request.preferred_language_from(available)
- # => 'nl-BE'
-
- request.user_preferred_languages
- # => [ 'en-GB']
- available = %w{en-US}
- request.compatible_language_from(available)
- # => 'en-US'
- end
- end
-
-== Installation
-
-Install the gem <tt>http_accept_language</tt>, require it in your Rails app.
-
-== Changelog
-
-* 2010-01-05: Gem release
-* 2009-03-12: Rails 2.3 compatible
-
-Copyright (c) 2008-2010 Iain Hecker, released under the MIT license
+++ /dev/null
-require 'rake'
-
-begin
- require 'jeweler'
- Jeweler::Tasks.new do |gem|
- gem.name = "http_accept_language"
- gem.summary = %Q{Parse the HTTP Accept Language Header}
- gem.description = %Q{Find out which locale the user preferes by reading the languages they specified in their browser}
- gem.email = "iain@iain.nl"
- gem.homepage = "http://github.com/iain/http_accept_language"
- gem.authors = ["Iain Hecker"]
- end
- Jeweler::GemcutterTasks.new
-rescue LoadError
- puts "Jeweler (or a dependency) not available. Install it with: sudo gem install jeweler"
-end
-
-require 'rake/testtask'
-desc 'Test the http_accept_language plugin.'
-Rake::TestTask.new(:test) do |t|
- t.libs << 'lib'
- t.pattern = 'test/**/*_test.rb'
- t.verbose = true
-end
-
-desc 'Default: run unit tests.'
-task :default => :test
-
-require 'rake/rdoctask'
-desc 'Generate documentation for the http_accept_language plugin.'
-Rake::RDocTask.new(:rdoc) do |rdoc|
- rdoc.rdoc_dir = 'rdoc'
- rdoc.title = 'HttpAcceptLanguage'
- rdoc.options << '--line-numbers' << '--inline-source'
- rdoc.rdoc_files.include('README')
- rdoc.rdoc_files.include('lib/**/*.rb')
-end
+++ /dev/null
-if defined?(ActionDispatch::Request)
- ActionDispatch::Request.send :include, HttpAcceptLanguage
-elsif defined?(ActionController::Request)
- ActionController::Request.send :include, HttpAcceptLanguage
-elsif defined?(ActionController::AbstractRequest)
- ActionController::AbstractRequest.send :include, HttpAcceptLanguage
-else
- ActionController::CgiRequest.send :include, HttpAcceptLanguage
-end
+++ /dev/null
-module HttpAcceptLanguage
-
- # Returns a sorted array based on user preference in HTTP_ACCEPT_LANGUAGE.
- # Browsers send this HTTP header, so don't think this is holy.
- #
- # Example:
- #
- # request.user_preferred_languages
- # # => [ 'nl-NL', 'nl-BE', 'nl', 'en-US', 'en' ]
- #
- def user_preferred_languages
- @user_preferred_languages ||= env['HTTP_ACCEPT_LANGUAGE'].split(',').collect do |l|
- l += ';q=1.0' unless l =~ /;q=\d+\.\d+$/
- l.split(';q=')
- end.sort do |x,y|
- raise "Not correctly formatted" unless x.first =~ /^[a-z\-]+$/i
- y.last.to_f <=> x.last.to_f
- end.collect do |l|
- l.first.downcase.gsub(/-[a-z]+$/i) { |x| x.upcase }
- end
- rescue # Just rescue anything if the browser messed up badly.
- []
- end
-
- # Sets the user languages preference, overiding the browser
- #
- def user_preferred_languages=(languages)
- @user_preferred_languages = languages
- end
-
- # Finds the locale specifically requested by the browser.
- #
- # Example:
- #
- # request.preferred_language_from I18n.available_locales
- # # => 'nl'
- #
- def preferred_language_from(array)
- (user_preferred_languages & array.collect { |i| i.to_s }).first
- end
-
- # Returns the first of the user_preferred_languages that is compatible
- # with the available locales. Ignores region.
- #
- # Example:
- #
- # request.compatible_language_from I18n.available_locales
- #
- def compatible_language_from(array)
- user_preferred_languages.map do |x|
- array.find do |y|
- y.to_s =~ /^#{Regexp.escape(x.to_s)}(-|$)/
- end
- end.compact.first
- end
-
-end
+++ /dev/null
-$:.unshift(File.dirname(__FILE__) + '/../lib')
-require 'http_accept_language'
-require 'test/unit'
-
-class MockedCgiRequest
- include HttpAcceptLanguage
- def env
- @env ||= {'HTTP_ACCEPT_LANGUAGE' => 'en-us,en-gb;q=0.8,en;q=0.6'}
- end
-end
-
-class HttpAcceptLanguageTest < Test::Unit::TestCase
- def test_should_return_empty_array
- request.env['HTTP_ACCEPT_LANGUAGE'] = nil
- assert_equal [], request.user_preferred_languages
- end
-
- def test_should_properly_split
- assert_equal %w{en-US en-GB en}, request.user_preferred_languages
- end
-
- def test_should_ignore_jambled_header
- request.env['HTTP_ACCEPT_LANGUAGE'] = 'odkhjf89fioma098jq .,.,'
- assert_equal [], request.user_preferred_languages
- end
-
- def test_should_find_first_available_language
- assert_equal 'en-GB', request.preferred_language_from(%w{en en-GB})
- end
-
- def test_should_find_first_compatible_language
- assert_equal 'en-hk', request.compatible_language_from(%w{en-hk})
- assert_equal 'en', request.compatible_language_from(%w{en})
- end
-
- def test_should_find_first_compatible_from_user_preferred
- request.env['HTTP_ACCEPT_LANGUAGE'] = 'en-us,de-de'
- assert_equal 'en', request.compatible_language_from(%w{de en})
- end
-
- private
- def request
- @request ||= MockedCgiRequest.new
- end
-end
+++ /dev/null
-require 'rake'
-require 'rake/testtask'
-require 'rake/rdoctask'
-
-desc 'Default: run unit tests.'
-task :default => :test
-
-desc 'Test the output_compression plugin.'
-Rake::TestTask.new(:test) do |t|
- t.libs << 'lib'
- t.pattern = 'test/**/*_test.rb'
- t.verbose = true
-end
-
-desc 'Generate documentation for the output_compression plugin.'
-Rake::RDocTask.new(:rdoc) do |rdoc|
- rdoc.rdoc_dir = 'rdoc'
- rdoc.title = 'OutputCompression'
- rdoc.options << '--line-numbers --inline-source'
- rdoc.rdoc_files.include('README')
- rdoc.rdoc_files.include('lib/**/*.rb')
-end
+++ /dev/null
-# Include hook code here
-require 'output_compression'
+++ /dev/null
-# desc "Explaining what the task does"
-# task :output_compression do
-# # Task goes here
-# end
\ No newline at end of file
+++ /dev/null
-require 'test/unit'
-
-class OutputCompressionTest < Test::Unit::TestCase
- # Replace this with your real tests.
- def test_this_plugin
- flunk
- end
-end
+++ /dev/null
-Copyright (c) 2010 August Lilleaas
-
-Permission is hereby granted, free of charge, to any person obtaining
-a copy of this software and associated documentation files (the
-"Software"), to deal in the Software without restriction, including
-without limitation the rights to use, copy, modify, merge, publish,
-distribute, sublicense, and/or sell copies of the Software, and to
-permit persons to whom the Software is furnished to do so, subject to
-the following conditions:
-
-The above copyright notice and this permission notice shall be
-included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
\ No newline at end of file
+++ /dev/null
-= Session Persistence
-
-Rails 3 plugin that lets you set how long you want your session to be persisted/remembered.
-
- session_expires_after 2.weeks
- session_expires_automatically # also aliased to expire_session
-
-The timespan will reset on every request. If you set it to 2 weeks, and the user returns after 1 week, the session will be refreshed and last 2 weeks again. If the user returns after 3 weeks, the session will be reset.
-
-A call to session_expires_automatically will return to a normal automatical expiry cookie, that will expire when the browser is closed.
-
-Note: I haven't tested the plugin with memcache session storage, but it should work there as well.
-
-= Usage
-
-Here's an example sessions controller in a Rails 3 application.
-
- class SessionsController < ApplicationController
- def create
- session_expires_after 2.weeks if params[:remember_me]
-
- # ..normal auth goes here..
- # for example
- user = User.authenticate(params[:username], params[:password])
- if user
- session[:user] = user.id
- else
- # ..
- end
- end
-
- def destroy
- session_expires_automatically
-
- # ..unauthorize here..
- # for example
- session[:user] = nil
- redirect_to root_path
- end
- end
\ No newline at end of file
+++ /dev/null
-require "session_persistence"
-ActionController::Base.class_eval { include SessionPersistence }
-ActionController::Base.after_filter :_persist_session
\ No newline at end of file
+++ /dev/null
-module SessionPersistence
- private
-
- # Override this method if you don't want to use session[:_remember_for].
- def session_persistence_key
- :_remember_for
- end
-
- # Persist the session.
- #
- # session_expires_after 1.hour
- # session_expires_after 2.weeks
- def session_expires_after(seconds)
- session[session_persistence_key] = seconds
- end
-
- # Expire the session.
- def session_expires_automatically
- session.delete(session_persistence_key)
- end
- alias_method :expire_session, :session_expires_automatically
-
- def _persist_session
- if session[session_persistence_key]
- env["rack.session.options"][:expire_after] = session[session_persistence_key]
- end
- end
-end
+++ /dev/null
-require "test/unit"
-
-module ActionController
- class Base
- def self.after_filter(*args)
-
- end
- end
-end
-
-$LOAD_PATH.push(File.dirname(__FILE__) + "../lib")
-require "../init"
-
-class SessionPersistenceTest < Test::Unit::TestCase
- def setup
- @controller = ActionController::Base.new
- @controller.instance_eval {
- def session
- @session ||= {}
- end
-
- def session_persistence_key
- :mine
- end
- }
- end
-
- def test_session_expires_after
- @controller.instance_eval { session_expires_after 10 }
- assert_equal 10, @controller.session[:mine]
- end
-
- def test_session_expires_automatically
- @controller.instance_eval {
- session_expires_after 10
- session_expires_automatically
- }
-
- assert !@controller.session.has_key?(:mine)
- end
-end
\ No newline at end of file
+++ /dev/null
-# Arabic translations for Ruby on Rails
-# by Rida Al Barazi (me@rida.me)
-# updated by Ahmed Hazem (nardgo@gmail.com)
-# Rails 3 edit by rbjarnason
-
-"ar":
- date:
- formats:
- default: "%Y-%m-%d"
- short: "%e %b"
- long: "%B %e, %Y"
-
- day_names:
- - الأحد
- - الإثنين
- - الثلاثاء
- - الأربعاء
- - الخميس
- - الجمعة
- - السبت
- abbr_day_names:
- - الأحد
- - الإثنين
- - الثلاثاء
- - الأربعاء
- - الخميس
- - الجمعة
- - السبت
-
- month_names:
- - ~
- - يناير
- - فبراير
- - مارس
- - ابريل
- - مايو
- - يونيو
- - يوليو
- - اغسطس
- - سبتمبر
- - اكتوبر
- - نوفمبر
- - ديسمبر
- abbr_month_names:
- - ~
- - يناير
- - فبراير
- - مارس
- - ابريل
- - مايو
- - يونيو
- - يوليو
- - اغسطس
- - سبتمبر
- - اكتوبر
- - نوفمبر
- - ديسمبر
- order:
- - :day
- - :month
- - :year
-
- time:
- formats:
- default: "%a %b %d %H:%M:%S %Z %Y"
- short: "%d %b %H:%M"
- long: "%B %d, %Y %H:%M"
- am: 'صباحا'
- pm: 'مساءا'
-
- support:
- array:
- words_connector: ", "
- two_words_connector: " و "
- last_word_connector: ", و "
-
- select:
- prompt: "الرجاء اختيار"
-
- number:
- format:
- separator: "."
- delimiter: ","
- precision: 3
- significant: false
- strip_insignificant_zeros: false
-
- currency:
- format:
- format: "%u%n"
- unit: "$"
- separator: "."
- delimiter: ","
- precision: 2
- significant: false
- strip_insignificant_zeros: false
-
- percentage:
- format:
- delimiter: ""
-
- precision:
- format:
- delimiter: ""
-
- human:
- format:
- delimiter: ""
- precision: 3
- significant: true
- strip_insignificant_zeros: true
- storage_units:
- format: "%n %u"
- units:
- byte:
- one: "Byte"
- other: "Bytes"
- kb: "KB"
- mb: "MB"
- gb: "GB"
- tb: "TB"
- decimal_units:
- format: "%n %u"
- units:
- unit: ""
- thousand: ألف
- million: مليون
- billion: مليار
- trillion: تريليون
- quadrillion: الكدريليون رقم
-
- datetime:
- distance_in_words:
- half_a_minute: 'نصف دقيقة'
- less_than_x_seconds:
- one: 'أقل من ثانية'
- other: '%{count} ثوان'
- x_seconds:
- one: 'ثانية واحدة'
- other: '%{count} ثوان'
- less_than_x_minutes:
- one: 'أقل من دقيقة'
- other: '%{count} دقائق'
- x_minutes:
- one: 'دقيقة واحدة'
- other: '%{count} دقائق'
- about_x_hours:
- one: 'حوالي ساعة واحدة'
- other: '%{count} ساعات'
- x_days:
- one: 'يوم واحد'
- other: '%{count} أيام'
- about_x_months:
- one: 'حوالي شهر واحد'
- other: '%{count} أشهر'
- x_months:
- one: 'شهر واحد'
- other: '%{count} أشهر'
- about_x_years:
- one: 'حوالي سنة'
- other: '%{count} سنوات'
- over_x_years:
- one: 'أكثر من سنة'
- other: '%{count} سنوات'
- almost_x_years:
- one: "تقريبا سنة واحدة"
- other: "ما يقرب من %{count} سنة"
- prompts:
- year: "السنة"
- month: "الشهر"
- day: "اليوم"
- hour: "ساعة"
- minute: "دقيقة"
- second: "ثانية"
-
- helpers:
- select:
- prompt: "الرجاء اختيار"
-
- submit:
- create: "%{model} إنشاء"
- update: "%{model} نموذج"
- submit: "%{model} حفظ"
-
- errors:
- format: "%{attribute} %{message}"
-
- messages: &errors_messages
- inclusion: "ليس خيارا مقبولا"
- exclusion: "محجوز"
- invalid: "غير معرف أو محدد"
- confirmation: "لا تتوافق مع التأكيد"
- accepted: "يجب أن تقبل"
- empty: "فارغ، يرجى ملء الحقل"
- blank: "فارغ، يرجى ملء الحقل"
- too_long: "أطول من اللازم (الحد الأقصى هو %{count})"
- too_short: "أقصر من اللازم (الحد الأدنى هو %{count})"
- wrong_length: "بطول غير مناسب (يجب أن يكون %{count})"
- not_an_integer: "يجب أن يكون صحيحا"
- not_a_number: "ليس رقما"
- greater_than: "يجب أن يكون أكبر من %{count}"
- greater_than_or_equal_to: "يجب أن يكون أكبر من أو يساوي %{count}"
- equal_to: "يجب أن يساوي %{count}"
- less_than: "يجب أن يكون أصغر من %{count}"
- less_than_or_equal_to: "يجب أن يكون أصغر من أو يساوي %{count}"
- odd: "يجب أن يكون فردي"
- even: "يجب أن يكون زوجي"
- taken: "غير متوفر (مستخدم)"
- record_invalid: "%{errors} فشل التحقق من صحة"
- template: &errors_template
- header:
- one: "ليس بالامكان حفظ %{model}: خطأ واحد."
- other: "ليس بالامكان حفظ %{model}: %{count} أخطاء."
- body: "يرجى التحقق من الحقول التالية:"
-
- activerecord:
- errors:
- messages:
- <<: *errors_messages
- template:
- <<: *errors_template
-
- full_messages:
- format: "%{attribute} %{message}"
+++ /dev/null
-# Azerbaijani translations for Ruby on Rails
-# by Nihad Abbasov (mail@narkoz.me)
-
-az:
- date:
- formats:
- default: "%d.%m.%Y"
- short: "%d %b"
- long: "%d %B %Y"
-
- day_names:
- - Bazar
- - Bazar ertəsi
- - Çərşənbə axşamı
- - Çərşənbə
- - Cümə axşamı
- - Cümə
- - Şənbə
- abbr_day_names:
- - B.
- - B.E.
- - Ç.A.
- - Ç.
- - C.A.
- - C.
- - Ş.
-
- month_names:
- - ~
- - Yanvar
- - Fevral
- - Mart
- - Aprel
- - May
- - İyun
- - İyul
- - Avqust
- - Sentyabr
- - Oktyabr
- - Noyabr
- - Dekabr
- abbr_month_names:
- - ~
- - Yan
- - Fev
- - Mar
- - Apr
- - May
- - İyn
- - İyl
- - Avq
- - Sen
- - Okt
- - Noy
- - Dek
- order:
- - :day
- - :month
- - :year
-
- time:
- formats:
- default: "%a, %d %b %Y, %H:%M:%S %z"
- short: "%d %b, %H:%M"
- long: "%d %B %Y, %H:%M"
- am: "günortaya qədər"
- pm: "günortadan sonra"
-
- support:
- array:
- words_connector: ", "
- two_words_connector: " və "
- last_word_connector: " və "
-
- select:
- prompt: "Seçin"
-
- number:
- format:
- separator: "."
- delimiter: " "
- precision: 3
- significant: false
- strip_insignificant_zeros: false
-
- currency:
- format:
- format: "%n %u"
- unit: "AZN"
- separator: "."
- delimiter: " "
- precision: 2
- significant: false
- strip_insignificant_zeros: false
-
- percentage:
- format:
- delimiter: ""
-
- precision:
- format:
- delimiter: ""
-
- human:
- format:
- delimiter: ""
- precision: 1
- significant: false
- strip_insignificant_zeros: false
- storage_units:
- format: "%n %u"
- units:
- byte:
- one: "Bayt"
- other: "Bayt"
- kb: "KB"
- mb: "MB"
- gb: "GB"
- tb: "TB"
- decimal_units:
- format: "%n %u"
- units:
- unit: ""
- thousand: Min
- million: Milyon
- billion: Milyard
- trillion: Trilyon
- quadrillion: Katrilyon
-
- datetime:
- distance_in_words:
- half_a_minute: "yarım dəqiqə"
- less_than_x_seconds:
- one: "1 saniyədən az"
- other: "%{count} saniyədən az"
- x_seconds:
- one: "1 saniyə"
- other: "%{count} saniyə"
- less_than_x_minutes:
- one: "1 dəqiqədən az"
- other: "%{count} dəqiqədən az"
- x_minutes:
- one: "1 dəqiqə"
- other: "%{count} dəqiqə"
- about_x_hours:
- one: "təxminən 1 saat"
- other: "təxminən %{count} saat"
- x_days:
- one: "1 gün"
- other: "%{count} gün"
- about_x_months:
- one: "təxminən 1 ay"
- other: "təxminən %{count} ay"
- x_months:
- one: "1 ay"
- other: "%{count} ay"
- about_x_years:
- one: "təxminən 1 il"
- other: "təxminən %{count} il"
- over_x_years:
- one: "1 ildən çox"
- other: "%{count} ildən çox"
- almost_x_years:
- one: "təqribən 1 il"
- other: "təqribən %{count} il"
- prompts:
- year: "İl"
- month: "Ay"
- day: "Gün"
- hour: "Saat"
- minute: "Dəqiqə"
- second: "Saniyə"
-
- helpers:
- select:
- prompt: "Seçin"
-
- submit:
- create: '%{model} yarat'
- update: '%{model} yenilə'
- submit: '%{model} saxla'
-
- errors:
- format: "%{attribute} %{message}"
-
- messages: &errors_messages
- inclusion: "siyahiyə daxil deyil"
- exclusion: "qorunur"
- invalid: "yalnışdır"
- confirmation: "təsdiqə uygun deyil"
- accepted: "qəbul olunmalıdır"
- empty: "boş ola bilməz"
- blank: "boş ola bilməz"
- too_long: "çox uzundur (%{count} simvoldan çox olmalı deyil)"
- too_short: "çox qısadır (%{count} simvoldan az olmalı deyil)"
- wrong_length: "uzunluqu səhvdir (%{count} simvol olmalıdır)"
- not_a_number: "rəqəm deyil"
- not_an_integer: "tam rəqəm olmalıdır"
- greater_than: "%{count}-dən böyük olmalıdır"
- greater_than_or_equal_to: "böyük və ya %{count}-ə bərabər olmalıdır"
- equal_to: "%{count}-ə bərabər olmalıdır"
- less_than: "%{count}-dən kiçik olmalıdır"
- less_than_or_equal_to: "kiçik və ya %{count}-ə bərabər olmalıdır"
- odd: "tək olmalıdır"
- even: "cüt olmalıdır"
- taken: "artıq mövcuddur"
- record_invalid: "Yoxlama uğursuz oldu: %{errors}"
- template: &errors_template
- header:
- one: "%{model} saxlanmadı: 1 səhv"
- other: "%{model} saxlanmadı: %{count} səhv"
- body: "Aşağıdaki səhvlər üzə çıxdı:"
-
- activerecord:
- errors:
- messages:
- <<: *errors_messages
- template:
- <<: *errors_template
-
- full_messages:
- format: "%{attribute} %{message}"
+++ /dev/null
-# Full Bulgarian localization for Ruby on Rails 3+
-#
-# extracted from www.termo.bg
-# supported by Samson Behar <master.webmaster.master@gmail.com>
-# supported by Yavor Ivanov, http://github.com/YavorIvanov
-# supported by Andrew Radev, http://github.com/AndrewRadev
-# See http://github.com/svenfuchs/rails-i18n/tree/master/rails%2Flocale for starting points.
-
-bg:
-
- # ===== Rails Specific ===========================================================================
-
- date:
- formats:
- default: "%d.%m.%Y"
- short: "%d %b"
- long: "%d %B %Y"
-
- day_names:
- - неделя
- - понеделник
- - вторник
- - сряда
- - четвъртък
- - петък
- - събота
- abbr_day_names:
- - нед
- - пон
- - вт
- - ср
- - чет
- - пет
- - съб
-
- # should start with nil cause there is no 0-th month
- month_names:
- - ~
- - януари
- - февруари
- - март
- - април
- - май
- - юни
- - юли
- - август
- - септември
- - октомври
- - ноември
- - декември
- abbr_month_names:
- - ~
- - яну.
- - фев.
- - март
- - апр.
- - май
- - юни
- - юли
- - авг.
- - сеп.
- - окт.
- - ноем.
- - дек.
- order:
- - :day
- - :month
- - :year
-
- time:
- formats:
- default: "%a, %d %b %Y, %H:%M:%S %z"
- short: "%d %b, %H:%M"
- long: "%d %B %Y, %H:%M"
- am: "преди обяд"
- pm: "следобед"
-
- support:
- array:
- words_connector: ", "
- two_words_connector: " и "
- last_word_connector: " и "
-
- select:
- prompt: "Моля отбележете"
-
- number:
- format:
- separator: ","
- delimiter: " "
- precision: 3
- significant: false
- strip_insignificant_zeros: false
-
- currency:
- format:
- format: "%n %u"
- unit: "лв."
- separator: ","
- delimiter: " "
- precision: 2
- significant: false
- strip_insignificant_zeros: false
-
- percentage:
- format:
- delimiter: ""
-
- precision:
- format:
- delimiter: ""
-
- human:
- format:
- delimiter: ""
- precision: 1
- significant: true
- strip_insignificant_zeros: true
- storage_units:
- # Storage units output formatting.
- # %u is the storage unit, %n is the number (default: 2 MB)
- format: "%n %u"
- units:
- byte:
- one: "Байт"
- other: "Байта"
- kb: "КБ"
- mb: "МБ"
- gb: "ГБ"
- tb: "ТБ"
- decimal_units:
- format: "%n %u"
- units:
- unit: ""
- thousand: хиляди
- million: милиона
- billion: милиарда
- trillion: трилиона
- quadrillion: квадрилиона
-
- datetime:
- distance_in_words:
- half_a_minute: "половин минута"
- less_than_x_seconds:
- one: "по-малко от 1 секунда"
- other: "по-малко от %{count} секунди"
- x_seconds:
- one: "1 секунда"
- other: "%{count} секунди"
- less_than_x_minutes:
- one: "по-малко от 1 минута"
- other: "по-малко от %{count} минути"
- x_minutes:
- one: "1 минута"
- other: "%{count} минути"
- about_x_hours:
- one: "около 1 час"
- other: "около %{count} часа"
- x_days:
- one: "1 ден"
- other: "%{count} дни"
- about_x_months:
- one: "около 1 месец"
- other: "около %{count} месеца"
- x_months:
- one: "1 месец"
- other: "%{count} месеца"
- about_x_years:
- one: "около 1 година"
- other: "около %{count} години"
- over_x_years:
- one: "над 1 година"
- other: "над %{count} години"
- almost_x_years:
- one: "почти 1 година"
- other: "почти %{count} години"
- prompts:
- year: "Година"
- month: "Месец"
- day: "Ден"
- hour: "Час"
- minute: "Минута"
- second: "Секунда"
-
- helpers:
- select:
- prompt: "Моля отбележете"
-
- submit:
- create: 'Създай %{model}'
- update: 'Обнови %{model}'
- submit: 'Запази %{model}'
-
- errors:
- format: "%{attribute} %{message}"
-
- messages: &errors_messages
- inclusion: "съдържа непредвидена стойност"
- exclusion: "съдържа предварително зададена стойност"
- invalid: "съдържа невярна стойност"
- confirmation: "не съответства на потвърждението"
- accepted: "трябва да се потвърди"
- empty: "не може да е празно"
- blank: "не може да е без стойност"
- too_long: "е прекаленo дълго (не може да е повече от %{count} символа)"
- too_short: "е прекалено късо (не може да бъде по-малко от %{count} символа)"
- wrong_length: "е с грешна дължина (трябва да е с дължина, равна на %{count} символа)"
- not_a_number: "не е число"
- not_an_integer: "не е цяло число"
- greater_than: "трябва да има стойност, по-голяма от %{count}"
- greater_than_or_equal_to: "трябва да има стойност, по-голяма или равна на %{count}"
- equal_to: "трябва да има стойност, равна на %{count}"
- less_than: "трябва да има стойност, по-малка от %{count}"
- less_than_or_equal_to: "трябва да има стойност, по-голяма или равна на %{count}"
- odd: "трябва да е четно"
- even: "трябва да е нечетно"
- taken: "вече съществува"
- record_invalid: "имаше грешки: %{errors}"
- template: &errors_template
- header:
- one: "%{model}: записа е неуспешен заради 1 грешка"
- other: "%{model}: записа е неуспешен заради %{count} грешки"
- body: "Възникнаха проблеми със следните полета:"
-
- activerecord:
- errors:
- messages:
- <<: *errors_messages
- template:
- <<: *errors_template
- full_messages:
- format: "%{attribute} %{message}"
\ No newline at end of file
+++ /dev/null
-# Benagli (India) translations for Rails
-# by Arindam Ghosh (makghosh@gmail.com)
-
-bn-IN:
- number:
- # Used in number_with_delimiter()
- # These are also the defaults for 'currency', 'percentage', 'precision', and 'human'
- format:
- # Sets the separator between the units, for more precision (e.g. 1.0 / 2.0 == 0.5)
- separator: "."
- # Delimets thousands (e.g. 1,000,000 is a million) (always in groups of three)
- delimiter: ","
- # Number of decimals, behind the separator (1 with a precision of 2 gives: 1.00)
- precision: 2
- significant: false
- strip_insignificant_zeros: false
-
- # Used in number_to_currency()
- currency:
- format:
- # Where is the currency sign? %u is the currency unit, %n the number (default: $5.00)
- format: "%u %n"
- unit: "₹"
- # These three are to override number.format and are optional
- separator: "."
- delimiter: ","
- precision: 2
- significant: false
- strip_insignificant_zeros: false
-
- # Used in number_to_percentage()
- percentage:
- format:
- # These three are to override number.format and are optional
- # separator:
- delimiter: ""
- # precision:
-
- # Used in number_to_precision()
- precision:
- format:
- # These three are to override number.format and are optional
- # separator:
- delimiter: ""
- # precision:
-
- # Used in number_to_human_size()
- human:
- format:
- # These three are to override number.format and are optional
- # separator:
- delimiter: ""
- precision: 1
- significant: true
- strip_insignificant_zeros: true
- # Rails <= v2.2.2
- # storage_units: [Bytes, KB, MB, GB, TB]
- # Rails >= v2.3
- storage_units:
- format: "%n %u"
- units:
- byte:
- one: "Byte"
- other: "Bytes"
- kb: "KB"
- mb: "MB"
- gb: "GB"
- tb: "TB"
- decimal_units:
- format: "%n %u"
- units:
- unit: ""
-
- # Used in distance_of_time_in_words(), distance_of_time_in_words_to_now(), time_ago_in_words()
- datetime:
- distance_in_words:
- half_a_minute: "অার্ধেক মিনিট"
- less_than_x_seconds:
- one: "১ সেকেন্ডর কম "
- other: "%{count} সেকেন্ডের কম"
- x_seconds:
- one: "১ সেকেন্ড"
- other: "%{count} সেকেন্ড"
- less_than_x_minutes:
- one: "১ মিনিটের কম"
- other: "%{count} মিনিটের কম"
- x_minutes:
- one: "১ মিনিট"
- other: "%{count} মিনিট"
- about_x_hours:
- one: "প্রায় ১ ঘন্টা"
- other: "প্রায় %{count} ঘন্টা"
- x_days:
- one: "১ দিন"
- other: "%{count} দিন"
- about_x_months:
- one: "প্রায় ১ মাস"
- other: "প্রায় %{count} মাস"
- x_months:
- one: "১ মাস"
- other: "%{count} মাস"
- about_x_years:
- one: "প্রায় ১ বছর"
- other: "প্রায় %{count} বছর"
- over_x_years:
- one: "১ বছরের বেশি"
- other: "%{count} বছরের বেশি"
- prompts:
- year: "বছর"
- month: "মাস"
- day: "দিন"
- hour: "ঘন্টা"
- minute: "মিনিট"
- second: "সেকেন্ড"
-
- errors:
- format: "%{attribute} %{message}"
- messages: &errors_messages
- inclusion: "লিস্টে অন্তর্ভুক্ত নয়"
- exclusion: "রিসার্ভ করা অাছে"
- invalid: "সঠিক নয়"
- confirmation: "অনুমোদনের সঙ্গে মিলছে না"
- accepted: "গ্রাহ্য করতে হবে"
- empty: "খালি রাখা যাবে না"
- blank: "ফাঁকা রাখা যাবে না"
- too_long: "খুব বড়ো (সর্বোচ্চ %{count} অক্ষর)"
- too_short: "খুব ছোটো (সর্বনিম্ন %{count} অক্ষর)"
- wrong_length: "দৈর্ঘ্যটি সঠিক নয় (%{count} অক্ষর হতে হবে)"
- taken: "অাগেই নিয়ে নেওয়া হয়েছে"
- not_a_number: "নম্বর নয়"
- greater_than: "%{count} থেকে বড়ো হতে হবে"
- greater_than_or_equal_to: "%{count} থেকে বড়ো অথবা তার সমান হতে হবে"
- equal_to: "%{count} এর সঙ্গে সমান হতে হবে"
- less_than: "%{count} থেকে ছোটো হতে হবে"
- less_than_or_equal_to: "%{count} থেকে ছোটো অথবা তার সমান হতে হবে"
- odd: "বেজোড় হতে হবে"
- even: "জোড় হতে হবে"
- template: &errors_template
- header:
- one: "১ টি ত্রুটির কারনে %{model} সংরক্ষন করা সম্ভব হয়নি"
- other: "%{count} টি ত্রুটির কারনে %{model} সংরক্ষন করা সম্ভব হয়নি"
- body: "এই ফিল্ডগুলোতে কিছু সমস্যা দেখা দিয়েছে:"
-
- activerecord:
- errors:
- messages:
- <<: *errors_messages
- template:
- <<: *errors_template
- full_messages:
- format: "%{attribute} %{message}"
-
- # The values :model, :attribute and :value are always available for interpolation
- # The value :count is available when applicable. Can be used for pluralization.
-
-
- # Append your own errors here or at the model/attributes scope.
-
- # models:
- # Overrides default messages
-
- # attributes:
- # Overrides model and default messages.
-
- date:
- formats:
- # Use the strftime parameters for formats.
- # When no format has been given, it uses default.
- # You can provide other formats here if you like!
- default: "%e/%m/%Y"
- short: "%e de %b"
- long: "%e de %B de %Y"
-
- day_names:
- - রবিবার
- - সোমবার
- - মঙ্গলবার
- - বুধবার
- - বৃহস্পতিবার
- - শুক্রবার
- - শনিবার
- abbr_day_names:
- - রবিবার
- - সোমবার
- - মঙ্গলবার
- - বুধবার
- - বৃহস্পতিবার
- - শুক্রবার
- - শনিবার
-
- # Don't forget the nil at the beginning; there's no such thing as a 0th month
- month_names:
- - ~
- - জানুয়ারি
- - ফেব্রুয়ারি
- - মার্চ
- - এপ্রিল
- - মে
- - জুন
- - জুলাই
- - অগাস্ট
- - সেপ্টেমবার
- - অক্টোবার
- - নভেম্বার
- - ডিসেম্বার
- abbr_month_names:
- - ~
- - জানুয়ারি
- - ফেব্রুয়ারি
- - মার্চ
- - এপ্রিল
- - মে
- - জুন
- - জুলাই
- - অগাস্ট
- - সেপ্টেমবার
- - অক্টোবার
- - নভেম্বার
- - ডিসেম্বার
- # Used in date_select and datime_select.
- order:
- - :year
- - :month
- - :day
-
- time:
- formats:
- default: "%A, %e de %B de %Y %H:%M:%S %z"
- short: "%e de %b %H:%M"
- long: "%e de %B de %Y %H:%M"
- am: "am"
- pm: "pm"
-
-# Used in array.to_sentence.
- support:
- array:
- words_connector: ", "
- two_words_connector: " এবং "
- last_word_connector: ", এবং "
+++ /dev/null
-# Bosnia and Herzegovina (Bosnian) translations for rails
-# by Armin Pašalić (armin [at] pasalic [dot] com [dot] ba, http://pasalic.com.ba)
-
-# Please take a look at /rails/pluralization/bs.rb for pluralization instructions.
-
-bs:
- date:
- formats:
- default: "%d.%m.%Y."
- short: "%e. %b. %Y."
- long: "%e. %B %Y."
- day_names:
- - nedjelja
- - ponedjeljak
- - utorak
- - srijeda
- - četvrtak
- - petak
- abbr_day_names:
- - ned
- - pon
- - uto
- - sri
- - čet
- - pet
- - sub
- month_names:
- - januar
- - februar
- - mart
- - april
- - maj
- - juni
- - juli
- - august
- - septembar
- - oktobar
- - novembar
- - decembar
- abbr_month_names:
- - jan
- - feb
- - mar
- - apr
- - maj
- - jun
- - jul
- - aug
- - sep
- - okt
- - nov
- - dec
- order:
- - :day
- - :month
- - :year
- time:
- formats:
- default: "%H:%M:%S"
- short: "%d. %b %Y. %H:%M"
- long: "%d. %B %Y. - %H:%M:%S"
- am: ''
- pm: ''
- support:
- array:
- words_connector: ", "
- two_words_connector: " i "
- last_word_connector: " i "
- select:
- prompt: "Molimo odaberite"
- number:
- format:
- separator: ","
- delimiter: "."
- precision: 3
- significant: false
- strip_insignificant_zeros: true
- currency:
- format:
- format: "%n%u"
- unit: "KM"
- separator: ","
- delimiter: "."
- precision: 2
- significant: false
- strip_insignificant_zeros: true
- percentage:
- format:
- delimiter: ","
- precision:
- format:
- delimiter: ""
- human:
- format:
- delimiter: ","
- precision: 0
- significant: true
- strip_insignificant_zeros: true
- storage_units:
- format: "%n %u"
- units:
- byte:
- one: "bajt"
- few: "bajta"
- many: "bajtova"
- other: "bajtova"
- kb: "KB"
- mb: "MB"
- gb: "GB"
- tb: "TB"
- decimal_units:
- format: "%n %u"
- units:
- unit: ""
- thousand:
- one: "hiljada"
- few: "hiljade"
- many: "hiljada"
- other: 'hiljada'
- million:
- one: "milion"
- few: "miliona"
- many: "miliona"
- other: "miliona"
- billion:
- one: "milijarda"
- few: "milijarde"
- many: "milijardi"
- other: "milijardi"
- trillion:
- one: "bilion"
- few: "biliona"
- many: "biliona"
- other: "biliona"
- quadrillion:
- one: "bilijarda"
- few: "bilijarde"
- many: "bilijardi"
- other: "bilijardi"
- datetime:
- distance_in_words:
- half_a_minute: "pola minute"
- less_than_x_seconds:
- one: "manje od sekunde"
- few: "manje od %{count} sekunde"
- many: "manje od %{count} sekundi"
- x_seconds:
- one: "1 sekund"
- few: "%{count} sekunde"
- many: "%{count} sekundi"
- other: "%{count} sekundi"
- less_than_x_minutes:
- one: "manje od minute"
- few: "manje od %{count} minute"
- many: "manje od %{count} minuta"
- other: "manje od %{count} minuta"
- x_minutes:
- one: "1 minut"
- few: "%{count} minute"
- many: "%{count} minuta"
- other: "%{count} minuta"
- about_x_hours:
- one: "oko sat"
- few: "oko %{count} sata"
- many: "oko %{count} sati"
- other: "oko %{count} sati"
- x_days:
- one: "1 dan"
- few: "%{count} dana"
- many: "%{count} dana"
- other: "%{count} dana"
- x_months:
- one: "1 mjesec"
- few: "%{count} mjeseca"
- many: "%{count} mjeseci"
- other: "%{count} mjeseci"
- about_x_months:
- one: "oko mjesec"
- few: "oko %{count} mjeseca"
- many: "oko %{count} mjeseci"
- other: "oko %{count} mjeseci"
- about_x_years:
- one: "oko godine"
- few: "oko %{count} godine"
- many: "oko %{count} godina"
- other: "oko %{count} godina"
- over_x_years:
- one: "preko godine"
- few: "preko %{count} godine"
- many: "preko %{count} godina"
- other: "preko %{count} godina"
- almost_x_years:
- one: "skoro 1 godina"
- few: "skoro %{count} godine"
- many: "skoro %{count} godina"
- other: "skoro %{count} godina"
- prompts:
- year: "godina"
- month: "mjesec"
- day: "dan"
- hour: "sat"
- minute: "minut"
- second: "sekundi"
- helpers:
- select:
- prompt: "Molimo odaberite"
- submit:
- create: "Kreiraj %{model}"
- update: "Osviježi %{model}"
- submit: "Sačuvaj %{model}"
- errors:
- format: "%{attribute} %{message}"
- messages: &errors_messages
- inclusion: "nije uključeno u listu"
- exclusion: "je rezervisano"
- invalid: "nije validno"
- confirmation: "se ne poklapa sa potvrdom"
- accepted: "mora biti prihvaćeno"
- empty: "ne smije biti prazno"
- blank: "ne smije biti prazno"
- too_long: "je predugo (maksimalno je dozvoljeno %{count} karaktera)"
- too_short: "je prekratko (predviđeno je minimalno %{count} karaktera)"
- wrong_length: "je pogrešne dužine (trebalo bi biti tačno %{count} karaktera)"
- not_a_number: "nije broj"
- not_an_integer: "mora biti cijeli broj"
- greater_than: "mora biti veće od %{count}"
- greater_than_or_equal_to: "mora biti veće ili jednako %{count}"
- equal_to: "mora biti %{count}"
- less_than: "mora biti manje od %{count}"
- less_than_or_equal_to: "mora biti manje ili jednako %{count}"
- odd: "mora biti neparno"
- even: "mora biti parno"
- taken: "je već zauzet"
- record_invalid: "Validacija nije uspjela: %{errors}"
- template: &errors_template
- header:
- one: "1 greška je spriječila da se ovaj %{model} snimi"
- few: "%{count} greške su spriječile da se ovaj %{model} snimi"
- many: "%{count} grešaka je spriječilo da se ovaj %{model} snimi"
- other: "%{count} grešaka je spriječilo da se ovaj %{model} snimi"
- body: "Desili su se problemi sa slijedećim poljima:"
-
- activerecord:
- errors:
- messages:
- <<: *errors_messages
- template:
- <<: *errors_template
- full_messages:
- format: "%{attribute} %{message}"
+++ /dev/null
-# Catalan translations for Rails
-# by Emili Parreño (emili@eparreno.com - www.eparreno.com)
-
-ca:
- date:
- formats:
- # Use the strftime parameters for formats.
- # When no format has been given, it uses default.
- # You can provide other formats here if you like!
- default: "%d-%m-%Y"
- short: "%d de %b"
- long: "%d de %B de %Y"
-
- day_names:
- - Diumenge
- - Dilluns
- - Dimarts
- - Dimecres
- - Dijous
- - Divendres
- - Dissabte
- abbr_day_names:
- - Dg
- - Dl
- - Dm
- - Dc
- - Dj
- - Dv
- - Ds
-
- # Don't forget the nil at the beginning; there's no such thing as a 0th month
- month_names:
- - ~
- - Gener
- - Febrer
- - Març
- - Abril
- - Maig
- - Juny
- - Juliol
- - Agost
- - Setembre
- - Octubre
- - Novembre
- - Desembre
- abbr_month_names:
- - ~,
- - Gen
- - Feb
- - Mar
- - Abr
- - Mai
- - Jun
- - Jul
- - Ago
- - Set
- - Oct
- - Nov
- - Des
- # Used in date_select and datime_select.
- order:
- - :day
- - :month
- - :year
-
- time:
- formats:
- default: "%A, %d de %B de %Y %H:%M:%S %z"
- short: "%d de %b %H:%M"
- long: "%d de %B de %Y %H:%M"
- am: "am"
- pm: "pm"
-
-# Used in array.to_sentence.
- support:
- array:
- words_connector: ", "
- two_words_connector: " i "
- last_word_connector: ", i "
-
- select:
- prompt: "Si us plau tria"
-
- number:
- # Used in number_with_delimiter()
- # These are also the defaults for 'currency', 'percentage', 'precision', and 'human'
- format:
- # Sets the separator between the units, for more precision (e.g. 1.0 / 2.0 == 0.5)
- separator: ","
- # Delimets thousands (e.g. 1,000,000 is a million) (always in groups of three)
- delimiter: "."
- # Number of decimals, behind the separator (1 with a precision of 2 gives: 1.00)
- precision: 3
- significant: false
- strip_insignificant_zeros: false
-
- # Used in number_to_currency()
- currency:
- format:
- # Where is the currency sign? %u is the currency unit, %n the number (default: $5.00)
- format: "%n %u"
- unit: "€"
- # These three are to override number.format and are optional
- separator: ","
- delimiter: "."
- precision: 2
- significant: false
- strip_insignificant_zeros: false
-
- # Used in number_to_percentage()
- percentage:
- format:
- # These three are to override number.format and are optional
- # separator:
- delimiter: ""
- # precision:
-
- # Used in number_to_precision()
- precision:
- format:
- # These three are to override number.format and are optional
- # separator:
- delimiter: ""
- # precision:
-
- # Used in number_to_human_size()
- human:
- format:
- # These three are to override number.format and are optional
- # separator:
- delimiter: ""
- precision: 1
- significant: true
- strip_insignificant_zeros: true
- storage_units:
- # Storage units output formatting.
- # %u is the storage unit, %n is the number (default: 2 MB)
- format: "%n %u"
- units:
- byte:
- one: "Byte"
- other: "Bytes"
- kb: "KB"
- mb: "MB"
- gb: "GB"
- tb: "TB"
- decimal_units:
- format: "%n %u"
- units:
- unit: ""
- thousand: "Mil"
- million: "Milió"
- billion: "Bilió"
- trillion: "Trilió"
- quadrillion: "Quatrilió"
-
- # Used in distance_of_time_in_words(), distance_of_time_in_words_to_now(), time_ago_in_words()
- datetime:
- distance_in_words:
- half_a_minute: "mig minut"
- less_than_x_seconds:
- one: "menys d'1 segon"
- other: "menys de %{count} segons"
- x_seconds:
- one: "1 segon"
- other: "%{count} segons"
- less_than_x_minutes:
- one: "menys d'1 minut"
- other: "menys de %{count} minuts"
- x_minutes:
- one: "1 minut"
- other: "%{count} minuts"
- about_x_hours:
- one: "aproximadament 1 hora"
- other: "aproximadament %{count} hores"
- x_days:
- one: "1 dia"
- other: "%{count} dies"
- about_x_months:
- one: "aproximadament 1 mes"
- other: "aproximadament %{count} mesos"
- x_months:
- one: "1 mes"
- other: "%{count} mesos"
- about_x_years:
- one: "aproximadament 1 any"
- other: "aproximadament %{count} anys"
- over_x_years:
- one: "més d'1 any"
- other: "més de %{count} anys"
- almost_x_years:
- one: "casi 1 any"
- other: "casi %{count} anys"
- prompts:
- year: "Any"
- month: "Mes"
- day: "Dia"
- hour: "Hora"
- minute: "Minut"
- second: "Segun"
-
- helpers:
- select:
- prompt: "Si us plau tria"
-
- submit:
- create: 'Crear %{model}'
- update: 'Actualizar %{model}'
- submit: 'Guardar %{model}'
-
-
- errors:
- format: "%{attribute} %{message}"
-
- messages: &errors_messages
- inclusion: "no està inclós a la llista"
- exclusion: "està reservat"
- invalid: "no és vàlid"
- confirmation: "no coincideix"
- accepted: "ha de ser acceptat"
- empty: "no pot estar buit"
- blank: "no pot estar en blanc"
- too_long: "és massa llarg (%{count} caràcters màxim)"
- too_short: "és massa curt (%{count} caràcters mínim)"
- wrong_length: "no té la longitud correcte (%{count} caràcters exactament)"
- not_a_number: "no és un número"
- not_an_integer: "ha de ser un enter"
- taken: "no està disponible"
- not_a_number: "no és un número"
- greater_than: "ha de ser més gran que %{count}"
- greater_than_or_equal_to: "ha de ser més gran o igual a %{count}"
- equal_to: "ha de ser igual a %{count}"
- less_than: "ha de ser menor que %{count}"
- less_than_or_equal_to: "ha de ser menor o igual a %{count}"
- odd: "ha de ser imparell"
- even: "ha de ser parell"
- record_invalid: "La validació ha fallat: %{errors}"
- template: &errors_template
- header:
- one: "No s'ha pogut desar aquest/a %{model} perquè hi ha 1 error"
- other: "No s'ha pogut desar aquest/a %{model} perquè hi ha hagut %{count} errors"
- body: "Hi ha hagut problemes amb els següents camps:"
-
- activerecord:
- errors:
- messages:
- <<: *errors_messages
- template:
- <<: *errors_template
-
- full_messages:
- format: "%{attribute} %{message}"
+++ /dev/null
-# Czech translations for Ruby on Rails
-# by Karel Minařík (karmi@karmi.cz)
-# contributors:
-# - Vít Krchov - http://github.com/vita - Rails 3 update
-
-cs:
- support:
- array:
- two_words_connector: ' a '
- last_word_connector: ' a '
- words_connector: ', '
- select:
- prompt: 'Prosím vyberte si'
-
- date:
- formats:
- default: "%d. %m. %Y"
- short: "%d %b"
- long: "%d. %B %Y"
- day_names:
- - Neděle
- - Pondělí
- - Úterý
- - Středa
- - Čtvrtek
- - Pátek
- - Sobota
- abbr_day_names:
- - Ne
- - Po
- - Út
- - St
- - Čt
- - Pá
- - So
- month_names:
- - ~
- - Leden
- - Únor
- - Březen
- - Duben
- - Květen
- - Červen
- - Červenec
- - Srpen
- - Září
- - Říjen
- - Listopad
- - Prosinec
- abbr_month_names:
- - ~
- - Led
- - Úno
- - Bře
- - Dub
- - Kvě
- - Čvn
- - Čvc
- - Srp
- - Zář
- - Říj
- - Lis
- - Pro
- order:
- - :day
- - :month
- - :year
-
- time:
- formats:
- default: "%a %d. %B %Y %H:%M %z"
- short: "%d. %m. %H:%M"
- long: "%A %d. %B %Y %H:%M"
- am: 'am'
- pm: 'pm'
-
- number:
- format:
- precision: 3
- separator: '.'
- delimiter: ','
- significant: false
- strip_insignificant_zeros: false
- currency:
- format:
- unit: 'Kč'
- precision: 2
- format: '%n %u'
- separator: ","
- delimiter: " "
- significant: false
- strip_insignificant_zeros: false
- human:
- format:
- precision: 1
- delimiter: ''
- significant: false
- strip_insignificant_zeros: false
- storage_units:
- format: "%n %u"
- units:
- byte: "B"
- kb: "KB"
- mb: "MB"
- gb: "GB"
- tb: "TB"
- decimal_units:
- format: "%n %u"
- units:
- unit: ""
- thousand: "Tisíc"
- million: "Milion"
- billion: "Miliarda"
- trillion: "Bilion"
- quadrillion: "Kvadrilion"
- percentage:
- format:
- delimiter: ''
- precision:
- format:
- delimiter: ''
-
- datetime:
- prompts:
- second: "Sekunda"
- minute: "Minuta"
- hour: "Hodina"
- day: "Den"
- month: "Měsíc"
- year: "Rok"
- distance_in_words:
- half_a_minute: 'půl minutou'
- less_than_x_seconds:
- one: 'necelou sekundou'
- other: 'ani ne %{count} sekundami'
- x_seconds:
- one: 'sekundou'
- other: '%{count} sekundami'
- less_than_x_minutes:
- one: 'necelou minutou'
- other: 'ani ne %{count} minutami'
- x_minutes:
- one: 'minutou'
- other: '%{count} minutami'
- about_x_hours:
- one: 'asi hodinou'
- other: 'asi %{count} hodinami'
- x_days:
- one: '24 hodinami'
- other: '%{count} dny'
- about_x_months:
- one: 'asi měsícem'
- other: 'asi %{count} měsíci'
- x_months:
- one: 'měsícem'
- other: '%{count} měsíci'
- about_x_years:
- one: 'asi rokem'
- other: 'asi %{count} roky'
- over_x_years:
- one: 'více než rokem'
- other: 'více než %{count} roky'
- almost_x_years:
- one: 'téměř rokem'
- other: 'téměř %{count} roky'
-
- helpers:
- select:
- prompt: "Prosím vyberte si"
-
- submit:
- create: "Vytvořit %{model}"
- update: "Aktualizovat %{model}"
- submit: "Uložit %{model}"
-
- errors:
- format: "%{attribute} %{message}"
- messages: &errors_messages
- inclusion: "není v seznamu povolených hodnot"
- exclusion: "je vyhrazeno pro jiný účel"
- invalid: "není platná hodnota"
- confirmation: "nebylo potvrzeno"
- accepted: "musí být potvrzeno"
- empty: "nesmí být prázdný/á/é"
- blank: "je povinná položka"
- too_long: "je příliš dlouhý/á/é (max. %{count} znaků)"
- too_short: "je příliš krátký/á/é (min. %{count} znaků)"
- wrong_length: "nemá správnou délku (očekáváno %{count} znaků)"
- not_a_number: "není číslo"
- greater_than: "musí být větší než %{count}"
- greater_than_or_equal_to: "musí být větší nebo rovno %{count}"
- equal_to: "musí být rovno %{count}"
- less_than: "musí být méně než %{count}"
- less_than_or_equal_to: "musí být méně nebo rovno %{count}"
- odd: "musí být liché číslo"
- even: "musí být sudé číslo"
- not_an_integer: "musí být celé číslo"
- taken: "již databáze obsahuje"
- record_invalid: "Validace je neúspešná: %{errors}"
- template: &errors_template
- header:
- one: "Při ukládání objektu %{model} došlo k chybám a nebylo jej možné uložit"
- other: "Při ukládání objektu %{model} došlo ke %{count} chybám a nebylo možné jej uložit"
- body: "Následující pole obsahují chybně vyplněné údaje: "
-
- activerecord:
- errors:
- messages:
- <<: *errors_messages
- template:
- <<: *errors_template
- full_messages:
- format: "%{attribute} %{message}"
\ No newline at end of file
+++ /dev/null
-# Kashubian translations for Ruby on Rails
-# by Michôł Òstrowsczi (ostrowski.michal@gmail.com, http://github.com/espresse)
-
-csb:
- date:
- formats:
- default: "%d-%m-%Y"
- short: "%d %b"
- long: "%B %d, %Y"
-
- day_names:
- - niedzela
- - pòniedzôłk
- - wtórk
- - strzoda
- - czwiôrtk
- - piątk
- - sobòta
- abbr_day_names:
- - nie
- - pòn
- - wtó
- - str
- - czw
- - pią
- - sob
-
- month_names:
- - ~
- - stëcznik
- - gromicznik
- - strëmiannik
- - łżëkwiôt
- - môj
- - czerwińc
- - lëpińc
- - zélnik
- - séwnik
- - rujan
- - lëstopadnik
- - gòdnik
- abbr_month_names:
- - ~
- - stë
- - gro
- - str
- - łżë
- - môj
- - cze
- - lëp
- - zél
- - séw
- - ruj
- - lës
- - gòd
- order:
- - :day
- - :month
- - :year
-
- time:
- formats:
- default: "%a, %d %b %Y %H:%M:%S %z"
- short: "%d %b %H:%M"
- long: "%B %d, %Y %H:%M"
- am: "przed pôłnim"
- pm: "pò pôłnim"
-
- support:
- array:
- words_connector: ", "
- two_words_connector: " ë "
- last_word_connector: " a téż "
-
- select:
- prompt: "Proszã wëbrac"
-
- number:
- format:
- separator: ","
- delimiter: " "
- precision: 3
- significant: false
- strip_insignificant_zeros: false
-
- currency:
- format:
- format: "%u %n"
- unit: "PLN"
- separator: ","
- delimiter: " "
- precision: 2
- significant: false
- strip_insignificant_zeros: true
-
- percentage:
- format:
- delimiter: ""
-
- precision:
- format:
- delimiter: ""
-
- human:
- format:
- delimiter: ""
- precision: 3
- significant: true
- strip_insignificant_zeros: true
- storage_units:
- format: "%n %u"
- units:
- byte:
- one: "bajt"
- other: "bajtë"
- kb: "KB"
- mb: "MB"
- gb: "GB"
- tb: "TB"
- decimal_units:
- format: "%n %u"
- units:
- unit: ""
- thousand: Tësąc
- million: Milión
- billion: Miliard
- trillion: Bilión
- quadrillion: Biliard
-
- datetime:
- distance_in_words:
- half_a_minute: "pół minutë"
- less_than_x_seconds:
- one: "mni jak sekùnda"
- few: "mni jak %{count} sekùndë"
- other: "mni jak %{count} sekùndów"
- x_seconds:
- one: "1 sekùnda"
- few: "%{count} sekùndë"
- other: "%{count} sekùndów"
- less_than_x_minutes:
- one: "mni jak minuta"
- few: "mni jak %{count} minutë"
- other: "mni jak %{count} minutów"
- x_minutes:
- one: "1 minuta"
- few: "%{count} minutë"
- other: "%{count} minutów"
- about_x_hours:
- one: "kòle gòdzënë"
- few: "kòle %{count} gòdzën"
- other: "kòle %{count} gòdzën"
- x_days:
- one: "1 dzéń"
- few: "%{count} dni"
- other: "%{count} dniów"
- about_x_months:
- one: "kòle miesąca"
- few: "kòle %{count} miesąców"
- other: "kòle %{count} miesąców"
- x_months:
- one: "1 miesąc"
- few: "%{count} miesiące"
- other: "%{count} miesięców"
- about_x_years:
- one: "kòle rokù"
- few: "kòle %{count} lat"
- other: "kòle %{count} lat"
- over_x_years:
- one: "wicy jak rok"
- few: "wicy jak %{count} lata"
- other: "wicy jak %{count} lat"
- almost_x_years:
- one: "wnet rok"
- few: "wnet %{count} lata"
- other: "wnet %{count} lat"
- prompts:
- year: "Rok"
- month: "Miesiąc"
- day: "Dzéń"
- hour: "Gòdzëna"
- minute: "Minuta"
- second: "Sekunda"
-
- helpers:
- select:
- prompt: "Proszã wëbrac"
-
- submit:
- create: 'Ùsôdzë %{model}'
- update: 'Aktualizëjë %{model}'
- submit: 'Zapiszë %{model}'
-
- errors:
- format: "%{attribute} %{message}"
-
- messages: &errors_messages
- inclusion: "ni ma na lësce dopùszczalnëch wôrtnotów"
- exclusion: "je zarezerwowóné"
- invalid: "je zmiłkòwé"
- confirmation: "nie zgòdzô sã z pòcwierdzenim"
- accepted: "mùszi bëc zaakceptowóné"
- empty: "ni mòżé bëc pùsté"
- blank: "ni mòże bëc pùsté"
- too_long: "je za dłëdżé (maksymalno %{count} znaków)"
- too_short: "je za krótczé (przënômni %{count} znaków)"
- wrong_length: "mô lëchą długòtã (bë mùsza miec %{count} znaków)"
- not_a_number: "nie je lëczbą"
- not_an_integer: "muszi bëc całowną lëczbą"
- greater_than: "mùszi bëc wikszé òd %{count}"
- greater_than_or_equal_to: "mùszi bëc wikszé abò równé %{count}"
- equal_to: "mùszi bëc równe %{count}"
- less_than: "mùszi bëc mniszé òd %{count}"
- less_than_or_equal_to: "mùszi bëc mniszé abò równé %{count}"
- odd: "mùszi bëc nieparzësté"
- even: "mùszé bëc parzësté"
- taken: "je ju zajãté"
- record_invalid: "Negatiwné sprôwdzenié pòprawnoscë: %{errors}"
- template: &errors_template
- header:
- one: "%{model} nie òstôł zachòwóny przez jedną felã"
- other: "%{model} nie òstôł zachòwóny przez %{count} felów"
- body: "Fele tikają sã nëch pól:"
-
- activerecord:
- errors:
- messages:
- <<: *errors_messages
- template:
- <<: *errors_template
-
- full_messages:
- format: "%{attribute} %{message}"
+++ /dev/null
-# Welsh translations for Ruby on Rails
-# by Aran Jones (aranjones@gmail.com)
-
-cy:
- date:
- formats:
- default: "%d-%m-%Y"
- short: "%b %d"
- long: "%B %d, %Y"
-
- day_names:
- - Dydd Sul
- - Dydd Llun
- - Dydd Mawrth
- - Dydd Mercher
- - Dydd Iau
- - Dydd Gwener
- - Dydd Sadwrn
- abbr_day_names:
- - Sul
- - Llun
- - Maw
- - Mer
- - Iau
- - Gwe
- - Sad
-
- month_names:
- - ~
- - mis Ionawr
- - mis Chwefror
- - mis Mawrth
- - mis Ebrill
- - mis Mai
- - mis Mehefin
- - mis Gorffennaf
- - mis Awst
- - mis Medi
- - mis Hydref
- - mis Tachwedd
- - mis Rhagfyr
- abbr_month_names:
- - ~
- - Ion
- - Chw
- - Maw
- - Ebr
- - Mai
- - Meh
- - Gor
- - Awst
- - Med
- - Hyd
- - Tach
- - Rha
- order:
- - :year
- - :month
- - :day
-
- time:
- formats:
- default: "%a, %d %b %Y %H:%M:%S %z"
- short: "%d %b %H:%M"
- long: "%B %d, %Y %H:%M"
- am: "yb"
- pm: "yh"
-
- support:
- array:
- words_connector: ", "
- two_words_connector: " a "
- last_word_connector: ", a "
-
- select:
- prompt: "Dewiswch"
-
- number:
- format:
- separator: "."
- delimiter: ","
- precision: 3
- significant: false
- strip_insignificant_zeros: false
-
- currency:
- format:
- format: "%u%n"
- unit: "£"
- separator: "."
- delimiter: ","
- precision: 2
- significant: false
- strip_insignificant_zeros: false
-
- percentage:
- format:
- delimiter: ""
-
- precision:
- format:
- delimiter: ""
-
- human:
- format:
- delimiter: ""
- precision: 3
- significant: true
- strip_insignificant_zeros: true
- storage_units:
- format: "%n %u"
- units:
- byte:
- one: "Byte"
- other: "Bytes"
- kb: "KB"
- mb: "MB"
- gb: "GB"
- tb: "TB"
- decimal_units:
- format: "%n %u"
- units:
- unit: ""
- thousand: Mil
- million: Miliwn
- billion: Biliwn
- trillion: Triliwn
- quadrillion: Cwadriliwn
-
- datetime:
- distance_in_words:
- half_a_minute: "hanner munud"
- less_than_x_seconds:
- one: "llai nag eiliad"
- other: "llai na %{count} eiliad"
- x_seconds:
- one: "1 eiliad"
- other: "%{count} o eiliadau"
- less_than_x_minutes:
- one: "llai na munud"
- other: "llai na %{count} munud"
- x_minutes:
- one: "1 munud"
- other: "%{count} o funudau"
- about_x_hours:
- one: "tuag awr"
- other: "tua %{count} awr"
- x_days:
- one: "1 diwrnod"
- other: "%{count} diwrnod"
- about_x_months:
- one: "tua mis"
- other: "tua %{count} mis"
- x_months:
- one: "1 mis"
- other: "%{count} mis"
- about_x_years:
- one: "tua blwyddyn"
- other: "tua %{count} blynedd"
- over_x_years:
- one: "dros flwyddyn"
- other: "dros %{count} blynedd"
- almost_x_years:
- one: "bron yn flwyddyn"
- other: "bron yn %{count} blynedd"
- prompts:
- year: "Blwyddyn"
- month: "Mis"
- day: "Diwrnod"
- hour: "Awr"
- minute: "Munud"
- second: "Eiliad"
-
- helpers:
- select:
- prompt: "Dewiswch"
-
- submit:
- create: 'Creu %{model}'
- update: 'Diweddaru %{model}'
- submit: 'Cadw %{model}'
-
- errors:
- format: "%{attribute} %{message}"
-
- messages: &errors_messages
- inclusion: "heb fod yn y rhestr"
- exclusion: "wedi cadw"
- invalid: "heb fod yn nheilwng"
- confirmation: "heb fod yn gyfateb"
- accepted: "angen ei dderbyn"
- empty: "methu bod yn wag"
- blank: "methu bod yn wag"
- too_long: "yn rhy hir (cewch %{count} llythyren ar y fwyaf)"
- too_short: "yn rhy fyr (rhaid am o leiaf %{count} llythyren)"
- wrong_length: "gyda maint anghywir o lythrennau (dylai fod yn %{count} llythyren)"
- not_a_number: "heb fod yn rhif"
- not_an_integer: "heb fod yn rhif llawn"
- greater_than: "angen bod yn fwy na %{count}"
- greater_than_or_equal_to: "angen bod yr un maint neu fwy na %{count}"
- equal_to: "angen bod yn %{count}"
- less_than: "angen bod yn llai na %{count}"
- less_than_or_equal_to: "angen bod yr un maint neu lai na %{count}"
- odd: "rhaid bod yn odrif"
- even: "rhaid bod yn eilrif"
- taken: "wedi'i gymryd yn barod"
- record_invalid: "Gwirio wedi methu: %{errors}"
- template: &errors_template
- header:
- one: "Atalwyd y %{model} hwn rhag ei gadw gan 1 nam"
- other: "Atalwyd y %{model} hwn rhag ei gadw gan %{count} nam"
- body: "Cafwyd broblemau gyda'r meysydd canlynol:"
-
- activerecord:
- errors:
- messages:
- <<: *errors_messages
- template:
- <<: *errors_template
- full_messages:
- format: "%{attribute} %{message}"
+++ /dev/null
-# Danish translation file for standard Ruby on Rails internationalization
-# by Lars Hoeg (larshoeg@gmail.com, http://www.lenio.dk/)
-# redigeret af sprogekvilibrist og grammatisk facist Rasmus Malver (rasmus@malver.dk, http://malver.dk)
-
-# Danish translation file for standard Ruby on Rails internationalization
-# by Lars Hoeg (larshoeg@gmail.com, http://www.lenio.dk/)
-
-da:
- # active_support
- date:
- # See http://sproget.dk/svarbase/SV00000046/ and http://en.wikipedia.org/wiki/Date_formats
- # either use traditional (2.10.03, 2. oktober 2003): "%e.%m.%y", "%e. %B %Y"
- # or international ISO 8601 format (2003-10-20): "%Y-%m-%d"
- # Note: some Windows distributions do not support %e - you may have to use %d instead
- formats:
- default: "%d.%m.%Y"
- short: "%e. %b %Y"
- long: "%e. %B %Y"
-
- day_names:
- - søndag
- - mandag
- - tirsdag
- - onsdag
- - torsdag
- - fredag
- - lørdag
- abbr_day_names:
- - søn
- - man
- - tir
- - ons
- - tor
- - fre
- - lør
- month_names:
- - ~
- - januar
- - februar
- - marts
- - april
- - maj
- - juni
- - juli
- - august
- - september
- - oktober
- - november
- - december
- abbr_month_names:
- - ~
- - jan
- - feb
- - mar
- - apr
- - maj
- - jun
- - jul
- - aug
- - sep
- - okt
- - nov
- - dec
- order:
- - :day
- - :month
- - :year
-
- time:
- formats:
- default: "%e. %B %Y, %H.%M"
- short: "%e. %b %Y, %H.%M"
- long: "%A d. %e. %B %Y, %H.%M"
- am: ""
- pm: ""
-
- support:
- array:
- words_connector: ", "
- two_words_connector: " og "
- last_word_connector: " og "
- select:
- # default value for :prompt => true in FormOptionsHelper
- prompt: "Vælg..."
-
- # action_view
- number:
- format:
- separator: ","
- delimiter: "."
- precision: 3
- significant: false
- strip_insignificant_zeros: false
-
- currency:
- format:
- format: "%u %n"
- unit: "DKK"
- separator: ","
- delimiter: "."
- precision: 2
- significant: false
- strip_insignificant_zeros: false
-
- percentage:
- format:
- delimiter: ""
-
- precision:
- format:
- delimiter: ""
-
- human:
- format:
- delimiter: ""
- precision: 3
- significant: true
- strip_insignificant_zeros: true
- # Rails 2.2
- #storage_units: [Bytes, KB, MB, GB, TB]
- # Rails 2.3
- storage_units:
- # Storage units output formatting.
- # %u is the storage unit, %n is the number (default: 2 MB)
- format: "%n %u"
- units:
- byte:
- one: "Byte"
- other: "Bytes"
- kb: "KB"
- mb: "MB"
- gb: "GB"
- tb: "TB"
- decimal_units:
- format: "%n %u"
- units:
- unit: ""
- thousand: Tusind
- million: Million
- billion: Milliard
- trillion: Billion
- quadrillion: Billiard
-
- datetime:
- distance_in_words:
- half_a_minute: "et halvt minut"
- less_than_x_seconds:
- one: "mindre end et sekund"
- other: "mindre end %{count} sekunder"
- x_seconds:
- one: "et sekund"
- other: "%{count} sekunder"
- less_than_x_minutes:
- one: "mindre end et minut"
- other: "mindre end %{count} minutter"
- x_minutes:
- one: "et minut"
- other: "%{count} minutter"
- about_x_hours:
- one: "cirka en time"
- other: "cirka %{count} timer"
- x_days:
- one: "en dag"
- other: "%{count} dage"
- about_x_months:
- one: "cirka en måned"
- other: "cirka %{count} måneder"
- x_months:
- one: "en måned"
- other: "%{count} måneder"
- about_x_years:
- one: "cirka et år"
- other: "cirka %{count} år"
- over_x_years:
- one: "mere end et år"
- other: "mere end %{count} år"
- almost_x_years:
- one: "næsten et år"
- other: "næsten %{count} år"
- prompts:
- year: "År"
- month: "Måned"
- day: "Dag"
- hour: "Time"
- minute: "Minut"
- second: "Sekund"
-
- helpers:
- select:
- prompt: "Vælg..."
-
- submit:
- create: "Opret %{model}"
- update: "Opdater %{model}"
- submit: "Gem %{model}"
-
- errors:
- format: "%{attribute} %{message}"
-
- messages: &errors_messages
- inclusion: "er ikke på listen"
- exclusion: "er reserveret"
- invalid: "er ikke gyldig"
- confirmation: "stemmer ikke overens med bekræftelse"
- accepted: "skal accepteres"
- empty: "må ikke udelades"
- blank: "skal udfyldes"
- too_long: "er for lang (højest %{count} tegn)"
- too_short: "er for kort (mindst %{count} tegn)"
- wrong_length: "har forkert længde (skulle være %{count} tegn)"
- not_a_number: "er ikke et tal"
- not_an_integer: "er ikke et heltal"
- greater_than: "skal være større end %{count}"
- greater_than_or_equal_to: "skal være større end, eller lig med, %{count}"
- equal_to: "skal være %{count}"
- less_than: "skal være mindre end %{count}"
- less_than_or_equal_to: "skal være mindre end, eller lig med, %{count}"
- odd: "skal være et ulige tal"
- even: "skal være et lige tal"
- taken: "er allerede brugt"
- record_invalid: "Godkendelse gik galt: %{errors}"
- template: &errors_template
- header:
- one: "En fejl forhindrede %{model} i at blive gemt"
- other: "%{count} fejl forhindrede %{model} i at blive gemt"
- body: "Der var problemer med følgende felter:"
-
- activerecord:
- errors:
- messages:
- <<: *errors_messages
- template:
- <<: *errors_template
-
- full_messages:
- format: "%{attribute} %{message}"
\ No newline at end of file
+++ /dev/null
-# German translations for Ruby on Rails
-# by Clemens Kofler (clemens@railway.at)
-
-de-AT:
- date:
- formats:
- default: "%d.%m.%Y"
- short: "%e. %b"
- long: "%e. %B %Y"
- day_names:
- - Sonntag
- - Montag
- - Dienstag
- - Mittwoch
- - Donnerstag
- - Freitag
- - Samstag
- abbr_day_names:
- - So
- - Mo
- - Di
- - Mi
- - Do
- - Fr
- - Sa
- month_names:
- - ~
- - Jänner
- - Februar
- - März
- - April
- - Mai
- - Juni
- - Juli
- - August
- - September
- - Oktober
- - November
- - Dezember
- abbr_month_names:
- - ~
- - Jän
- - Feb
- - Mär
- - Apr
- - Mai
- - Jun
- - Jul
- - Aug
- - Sep
- - Okt
- - Nov
- - Dez
- order:
- - :day
- - :month
- - :year
-
- time:
- formats:
- default: "%A, %d. %B %Y, %H:%M Uhr"
- short: "%d. %B, %H:%M Uhr"
- long: "%A, %d. %B %Y, %H:%M Uhr"
- am: "vormittags"
- pm: "nachmittags"
-
- datetime:
- distance_in_words:
- half_a_minute: 'eine halbe Minute'
- less_than_x_seconds:
- one: 'weniger als eine Sekunde'
- other: 'weniger als %{count} Sekunden'
- x_seconds:
- one: 'eine Sekunde'
- other: '%{count} Sekunden'
- less_than_x_minutes:
- one: 'weniger als eine Minute'
- other: 'weniger als %{count} Minuten'
- x_minutes:
- one: 'eine Minute'
- other: '%{count} Minuten'
- about_x_hours:
- one: 'etwa eine Stunde'
- other: 'etwa %{count} Stunden'
- x_days:
- one: 'ein Tag'
- other: '%{count} Tage'
- about_x_months:
- one: 'etwa ein Monat'
- other: 'etwa %{count} Monate'
- x_months:
- one: 'ein Monat'
- other: '%{count} Monate'
- almost_x_years:
- one: 'fast ein Jahr'
- other: 'fast %{count} Jahre'
- about_x_years:
- one: 'etwa ein Jahr'
- other: 'etwa %{count} Jahre'
- over_x_years:
- one: 'mehr als ein Jahr'
- other: 'mehr als %{count} Jahre'
- prompts:
- second: "Sekunden"
- minute: "Minuten"
- hour: "Stunden"
- day: "Tag"
- month: "Monat"
- year: "Jahr"
-
- number:
- format:
- precision: 2
- separator: ','
- delimiter: '.'
- significant: false
- strip_insignificant_zeros: false
- currency:
- format:
- unit: '€'
- format: '%u %n'
- separator: ','
- delimiter: '.'
- precision: 2
- significant: false
- strip_insignificant_zeros: false
- percentage:
- format:
- delimiter: ""
- precision:
- format:
- delimiter: ""
- human:
- format:
- delimiter: ""
- precision: 1
- significant: true
- strip_insignificant_zeros: true
- storage_units:
- # Storage units output formatting.
- # %u is the storage unit, %n is the number (default: 2 MB)
- format: "%n %u"
- units:
- byte:
- one: "Byte"
- other: "Bytes"
- kb: "KB"
- mb: "MB"
- gb: "GB"
- tb: "TB"
- decimal_units:
- format: "%n %u"
- units:
- unit: ""
- thousand: Tausend
- million: Millionen
- billion:
- one: Milliarde
- others: Milliarden
- trillion: Billionen
- quadrillion:
- one: Billiarde
- others: Billiarden
-
- support:
- array:
- words_connector: ", "
- two_words_connector: " und "
- last_word_connector: " und "
- select:
- prompt: "Bitte wählen:"
-
- helpers:
- select:
- prompt: "Bitte wählen"
-
- submit:
- create: '%{model} erstellen'
- update: '%{model} aktualisieren'
- submit: '%{model} speichern'
-
- errors:
- format: "%{attribute} %{message}"
-
- messages: &errors_messages
- inclusion: "ist kein gültiger Wert"
- exclusion: "ist nicht verfügbar"
- invalid: "ist nicht gültig"
- confirmation: "stimmt nicht mit der Bestätigung überein"
- accepted: "muss akzeptiert werden"
- empty: "muss ausgefüllt werden"
- blank: "muss ausgefüllt werden"
- too_long: "ist zu lang (nicht mehr als %{count} Zeichen)"
- too_short: "ist zu kurz (nicht weniger als %{count} Zeichen)"
- wrong_length: "hat die falsche Länge (muss genau %{count} Zeichen haben)"
- not_a_number: "ist keine Zahl"
- greater_than: "muss größer als %{count} sein"
- greater_than_or_equal_to: "muss größer oder gleich %{count} sein"
- equal_to: "muss genau %{count} sein"
- less_than: "muss kleiner als %{count} sein"
- less_than_or_equal_to: "muss kleiner oder gleich %{count} sein"
- odd: "muss ungerade sein"
- even: "muss gerade sein"
- not_an_integer: "muss ganzzahlig sein"
- taken: "ist bereits vergeben"
- record_invalid: "Gültigkeitsprüfung ist fehlgeschlagen: %{errors}"
- template: &errors_template
- header:
- one: "Konnte %{model} nicht speichern: ein Fehler."
- other: "Konnte %{model} nicht speichern: %{count} Fehler."
- body: "Bitte überprüfen Sie die folgenden Felder:"
-
- activerecord:
- errors:
- messages:
- <<: *errors_messages
- template:
- <<: *errors_template
-
- full_messages:
- format: "%{attribute} %{message}"
+++ /dev/null
-# German (Switzerland) translations for Ruby on Rails
-# by Clemens Kofler (clemens@railway.at)
-
-de-CH:
- date:
- formats:
- default: "%d.%m.%Y"
- short: "%e. %b"
- long: "%e. %B %Y"
- day_names:
- - Sonntag
- - Montag
- - Dienstag
- - Mittwoch
- - Donnerstag
- - Freitag
- - Samstag
- abbr_day_names:
- - So
- - Mo
- - Di
- - Mi
- - Do
- - Fr
- - Sa
- month_names:
- - ~
- - Januar
- - Februar
- - März
- - April
- - Mai
- - Juni
- - Juli
- - August
- - September
- - Oktober
- - November
- - Dezember
- abbr_month_names:
- - ~
- - Jan
- - Feb
- - Mär
- - Apr
- - Mai
- - Jun
- - Jul
- - Aug
- - Sep
- - Okt
- - Nov
- - Dez
- order:
- - :day
- - :month
- - :year
-
- time:
- formats:
- default: "%A, %d. %B %Y, %H:%M Uhr"
- short: "%d. %B, %H:%M Uhr"
- long: "%A, %d. %B %Y, %H:%M Uhr"
- am: "vormittags"
- pm: "nachmittags"
-
- datetime:
- distance_in_words:
- half_a_minute: 'eine halbe Minute'
- less_than_x_seconds:
- one: 'weniger als eine Sekunde'
- other: 'weniger als %{count} Sekunden'
- x_seconds:
- one: 'eine Sekunde'
- other: '%{count} Sekunden'
- less_than_x_minutes:
- one: 'weniger als eine Minute'
- other: 'weniger als %{count} Minuten'
- x_minutes:
- one: 'eine Minute'
- other: '%{count} Minuten'
- about_x_hours:
- one: 'etwa eine Stunde'
- other: 'etwa %{count} Stunden'
- x_days:
- one: 'ein Tag'
- other: '%{count} Tage'
- about_x_months:
- one: 'etwa ein Monat'
- other: 'etwa %{count} Monate'
- x_months:
- one: 'ein Monat'
- other: '%{count} Monate'
- almost_x_years:
- one: 'fast ein Jahr'
- other: 'fast %{count} Jahre'
- about_x_years:
- one: 'etwa ein Jahr'
- other: 'etwa %{count} Jahre'
- over_x_years:
- one: 'mehr als ein Jahr'
- other: 'mehr als %{count} Jahre'
- prompts:
- second: "Sekunden"
- minute: "Minuten"
- hour: "Stunden"
- day: "Tag"
- month: "Monat"
- year: "Jahr"
-
- number:
- format:
- precision: 2
- separator: '.'
- delimiter: "'"
- significant: false
- strip_insignificant_zeros: false
- currency:
- format:
- unit: 'SFr.'
- format: '%u %n'
- separator: '.'
- delimiter: "'"
- precision: 2
- significant: false
- strip_insignificant_zeros: false
- percentage:
- format:
- delimiter: ""
- precision:
- format:
- delimiter: ""
- human:
- format:
- delimiter: ""
- precision: 1
- significant: true
- strip_insignificant_zeros: true
- storage_units:
- # Storage units output formatting.
- # %u is the storage unit, %n is the number (default: 2 MB)
- format: "%n %u"
- units:
- byte:
- one: "Byte"
- other: "Bytes"
- kb: "KB"
- mb: "MB"
- gb: "GB"
- tb: "TB"
- decimal_units:
- format: "%n %u"
- units:
- unit: ""
- thousand: Tausend
- million: Millionen
- billion:
- one: Milliarde
- others: Milliarden
- trillion: Billionen
- quadrillion:
- one: Billiarde
- others: Billiarden
-
- support:
- array:
- words_connector: ", "
- two_words_connector: " und "
- last_word_connector: " und "
- select:
- prompt: "Bitte wählen:"
-
- helpers:
- select:
- prompt: "Bitte wählen"
-
- submit:
- create: '%{model} erstellen'
- update: '%{model} aktualisieren'
- submit: '%{model} speichern'
-
- errors:
- format: "%{attribute} %{message}"
-
- messages: &errors_messages
- inclusion: "ist kein gültiger Wert"
- exclusion: "ist nicht verfügbar"
- invalid: "ist nicht gültig"
- confirmation: "stimmt nicht mit der Bestätigung überein"
- accepted: "muss akzeptiert werden"
- empty: "muss ausgefüllt werden"
- blank: "muss ausgefüllt werden"
- too_long: "ist zu lang (nicht mehr als %{count} Zeichen)"
- too_short: "ist zu kurz (nicht weniger als %{count} Zeichen)"
- wrong_length: "hat die falsche Länge (muss genau %{count} Zeichen haben)"
- not_a_number: "ist keine Zahl"
- greater_than: "muss grösser als %{count} sein"
- greater_than_or_equal_to: "muss grösser oder gleich %{count} sein"
- equal_to: "muss genau %{count} sein"
- less_than: "muss kleiner als %{count} sein"
- less_than_or_equal_to: "muss kleiner oder gleich %{count} sein"
- odd: "muss ungerade sein"
- even: "muss gerade sein"
- not_an_integer: "muss ganzzahlig sein"
- taken: "ist bereits vergeben"
- record_invalid: "Gültigkeitsprüfung ist fehlgeschlagen: %{errors}"
- template: &errors_template
- header:
- one: "Konnte %{model} nicht speichern: ein Fehler."
- other: "Konnte %{model} nicht speichern: %{count} Fehler."
- body: "Bitte überprüfen Sie die folgenden Felder:"
-
- activerecord:
- errors:
- messages:
- <<: *errors_messages
- template:
- <<: *errors_template
-
- full_messages:
- format: "%{attribute} %{message}"
+++ /dev/null
-# German translations for Ruby on Rails
-# by Clemens Kofler (clemens@railway.at)
-# contributors:
-# - Alexander Dreher - http://github.com/alexdreher - Rails 3 update
-
-de:
- date:
- formats:
- default: "%d.%m.%Y"
- short: "%e. %b"
- long: "%e. %B %Y"
- day_names:
- - Sonntag
- - Montag
- - Dienstag
- - Mittwoch
- - Donnerstag
- - Freitag
- - Samstag
- abbr_day_names:
- - So
- - Mo
- - Di
- - Mi
- - Do
- - Fr
- - Sa
- month_names:
- - ~
- - Januar
- - Februar
- - März
- - April
- - Mai
- - Juni
- - Juli
- - August
- - September
- - Oktober
- - November
- - Dezember
- abbr_month_names:
- - ~
- - Jan
- - Feb
- - Mär
- - Apr
- - Mai
- - Jun
- - Jul
- - Aug
- - Sep
- - Okt
- - Nov
- - Dez
- order:
- - :day
- - :month
- - :year
-
- time:
- formats:
- default: "%A, %d. %B %Y, %H:%M Uhr"
- short: "%d. %B, %H:%M Uhr"
- long: "%A, %d. %B %Y, %H:%M Uhr"
- am: "vormittags"
- pm: "nachmittags"
-
- datetime:
- distance_in_words:
- half_a_minute: 'eine halbe Minute'
- less_than_x_seconds:
- one: 'weniger als eine Sekunde'
- other: 'weniger als %{count} Sekunden'
- x_seconds:
- one: 'eine Sekunde'
- other: '%{count} Sekunden'
- less_than_x_minutes:
- one: 'weniger als eine Minute'
- other: 'weniger als %{count} Minuten'
- x_minutes:
- one: 'eine Minute'
- other: '%{count} Minuten'
- about_x_hours:
- one: 'etwa eine Stunde'
- other: 'etwa %{count} Stunden'
- x_days:
- one: 'ein Tag'
- other: '%{count} Tage'
- about_x_months:
- one: 'etwa ein Monat'
- other: 'etwa %{count} Monate'
- x_months:
- one: 'ein Monat'
- other: '%{count} Monate'
- almost_x_years:
- one: 'fast ein Jahr'
- other: 'fast %{count} Jahre'
- about_x_years:
- one: 'etwa ein Jahr'
- other: 'etwa %{count} Jahre'
- over_x_years:
- one: 'mehr als ein Jahr'
- other: 'mehr als %{count} Jahre'
- prompts:
- second: "Sekunden"
- minute: "Minuten"
- hour: "Stunden"
- day: "Tag"
- month: "Monat"
- year: "Jahr"
-
- number:
- format:
- precision: 2
- separator: ','
- delimiter: '.'
- significant: false
- strip_insignificant_zeros: false
- currency:
- format:
- unit: '€'
- format: '%n %u'
- separator: ","
- delimiter: "."
- precision: 2
- significant: false
- strip_insignificant_zeros: false
- percentage:
- format:
- delimiter: ""
- precision:
- format:
- delimiter: ""
- human:
- format:
- delimiter: ""
- precision: 1
- significant: true
- strip_insignificant_zeros: true
- storage_units:
- # Storage units output formatting.
- # %u is the storage unit, %n is the number (default: 2 MB)
- format: "%n %u"
- units:
- byte:
- one: "Byte"
- other: "Bytes"
- kb: "KB"
- mb: "MB"
- gb: "GB"
- tb: "TB"
- decimal_units:
- format: "%n %u"
- units:
- unit: ""
- thousand: Tausend
- million: Millionen
- billion:
- one: Milliarde
- other: Milliarden
- trillion: Billionen
- quadrillion:
- one: Billiarde
- other: Billiarden
-
- support:
- array:
- words_connector: ", "
- two_words_connector: " und "
- last_word_connector: " und "
- select:
- prompt: "Bitte wählen:"
-
- helpers:
- select:
- prompt: "Bitte wählen"
-
- submit:
- create: '%{model} erstellen'
- update: '%{model} aktualisieren'
- submit: '%{model} speichern'
-
- errors:
- format: "%{attribute} %{message}"
-
- messages: &errors_messages
- inclusion: "ist kein gültiger Wert"
- exclusion: "ist nicht verfügbar"
- invalid: "ist nicht gültig"
- confirmation: "stimmt nicht mit der Bestätigung überein"
- accepted: "muss akzeptiert werden"
- empty: "muss ausgefüllt werden"
- blank: "muss ausgefüllt werden"
- too_long: "ist zu lang (nicht mehr als %{count} Zeichen)"
- too_short: "ist zu kurz (nicht weniger als %{count} Zeichen)"
- wrong_length: "hat die falsche Länge (muss genau %{count} Zeichen haben)"
- not_a_number: "ist keine Zahl"
- greater_than: "muss größer als %{count} sein"
- greater_than_or_equal_to: "muss größer oder gleich %{count} sein"
- equal_to: "muss genau %{count} sein"
- less_than: "muss kleiner als %{count} sein"
- less_than_or_equal_to: "muss kleiner oder gleich %{count} sein"
- odd: "muss ungerade sein"
- even: "muss gerade sein"
- not_an_integer: "muss ganzzahlig sein"
- taken: "ist bereits vergeben"
- record_invalid: "Gültigkeitsprüfung ist fehlgeschlagen: %{errors}"
- template: &errors_template
- header:
- one: "Konnte %{model} nicht speichern: ein Fehler."
- other: "Konnte %{model} nicht speichern: %{count} Fehler."
- body: "Bitte überprüfen Sie die folgenden Felder:"
-
- activerecord:
- errors:
- messages:
- <<: *errors_messages
- template:
- <<: *errors_template
-
- full_messages:
- format: "%{attribute} %{message}"
+++ /dev/null
-# Lower Sorbian translations for Ruby on Rails
-# by Michael Wolf (preklady@wolfmicha.de)
-
-dsb:
- # ActiveSupport
- support:
- array:
- words_connector: ", "
- two_words_connector: " a "
- last_word_connector: " a "
-
- # Date
- date:
- formats:
- default: "%d. %m. %Y"
- short: "%d %b"
- long: "%d. %B %Y"
- day_names:
- - njeźela
- - pónjeźele
- - wałtora
- - srjoda
- - stwórtk
- - pětk
- - sobota
- abbr_day_names:
- - Nj
- - Pó
- - Wu
- - Sr
- - St
- - Pě
- - So
- month_names:
- - ~
- - Januar
- - Februar
- - Měrc
- - Apryl
- - Maj
- - Junij
- - Julij
- - Awgust
- - September
- - Oktober
- - Nowember
- - December
- abbr_month_names:
- - ~
- - jan
- - feb
- - měr
- - apr
- - maj
- - jun
- - jul
- - awg
- - sep
- - okt
- - now
- - dec
- order:
- - :day
- - :month
- - :year
-
- # Time
- time:
- formats:
- default: "%A, %d. %B %Y, %H:%M hodź"
- short: "%d. %B, %H:%M hodź."
- long: "%A, %d. %B %Y, %H:%M hodź."
- am: "dopołdnja"
- pm: "wótpołdnja"
-
-
- # Numbers
- number:
- format:
- precision: 3
- separator: ","
- delimiter: "."
- significant: false
- strip_insignificant_zeros: false
- currency:
- format:
- unit: "€"
- precision: 2
- format: "%n %u"
- separator: ","
- delimiter: " "
- significant: false
- strip_insignificant_zeros: false
- human:
- format:
- precision: 1
- delimiter: ""
- significant: true
- strip_insignificant_zeros: true
- storage_units:
- format: "%n %u"
- units:
- byte:
- one: "bajt"
- two: "bajta"
- few: "bajty"
- other: "bajtow"
- kb: "KB"
- mb: "MB"
- gb: "GB"
- tb: "TB"
- decimal_units:
- format: "%n %u"
- units:
- unit: ""
-
- percentage:
- format:
- delimiter: ""
-
- precision:
- format:
- delimiter: ""
-
-
- # Distance of time ... helper
- # Used in distance_of_time_in_words(), distance_of_time_in_words_to_now(), time_ago_in_words()
- datetime:
- distance_in_words:
- half_a_minute: "poł minuty"
- less_than_x_seconds:
- one: "mjenjej ako 1 sekundu"
- two: "mjenjej ako %{count} sekundoma"
- few: "mjenjej ako %{count} sekundami"
- other: "mjenjej ako %{count} sekundami"
- x_seconds:
- one: "1 sekundu"
- two: "%{count} sekundoma"
- few: "%{count} sekundami"
- other: "%{count} sekundami"
- less_than_x_minutes:
- one: "mjenjej ako 1 minutu"
- two: "mjenjej ako %{count} minutoma"
- few: "mjenjej ako %{count} minutami"
- other: "mjenjej ako %{count} minutami"
- x_minutes:
- one: "1 minutu"
- two: "%{count} minutoma"
- few: "%{count} minutami"
- other: "%{count} minutami"
- about_x_hours:
- one: "něźi 1 góźinu"
- two: "něźi %{count} góźinoma"
- few: "něźi %{count} góźinami"
- other: "něźi %{count} góźinami"
- x_days:
- one: "1 dnjom"
- two: "%{count} dnjoma"
- few: "%{count} dnjami"
- other: "%{count} dnjami"
- about_x_months:
- one: "něźi 1 mjasecom"
- two: "něźi %{count} mjasecoma"
- few: "něźi %{count} mjasecami"
- other: "něźi %{count} mjasecami"
- x_months:
- one: "1 mjasecom"
- two: "%{count} mjasecoma"
- few: "%{count} mjasecami"
- other: "%{count} mjasecami"
- about_x_years:
- one: "něźi 1 lětom"
- two: "něźi %{count} lětoma"
- few: "něźi %{count} lětami"
- other: "něźi %{count} lětami"
- over_x_years:
- one: "wěcej ako 1 lětom"
- two: "wěcej ako %{count} lětoma"
- few: "wěcej ako %{count} lětami"
- other: "wěcej ako %{count} lětami"
- errors:
- format: "%{attribute} %{message}"
- messages: &errors_messages
- inclusion: "njejo płaśiwa gódnota"
- exclusion: "njestoj k dispoziciji"
- invalid: "njejo płaśiwy"
- confirmation: "njejo se wobkšuśiło"
- accepted: "musy se wobkšuśiś"
- empty: "njesmějo prozny byś"
- blank: "jo trěbny"
- too_long:
- one: "jo pśedłujki (maks. 1 znamješko)"
- two: "jo pśedłujki (maks. %{count} znamješce)"
- few: "jo pśedłujki (maks. %{count} znamješka)"
- other: "jo pśedłujki (maks. %{count} znamješkow)"
- too_short:
- one: "jo překrotki (min. 1 znamješko)"
- two: "jo překrotki (min. %{count} znamješće)"
- few: "jo překrotki (min. %{count} znamješka)"
- other: "jo překrotki (min. %{count} znamješkow)"
- wrong_length:
- one: "njama pšawu dłujkosć (1 znamješko wócakane)"
- two: "njama pšawu dłujkosć (%{count} znamješce wócakanej)"
- few: "njama pšawu dłujkosć (%{count} znamješka wócakane)"
- other: "njama pšawu dłujkosć (%{count} znamješkow wócakanych)"
- taken: "jo južo w datowej bance"
- not_a_number: "njejo licba"
- greater_than: "musy wětšy ako %{count} byś"
- greater_than_or_equal_to: "musy wětšy abo jadnak %{count} być"
- equal_to: "musy jadnak %{count} byś"
- less_than: "musy mjeńšy ako %{count} byś"
- less_than_or_equal_to: "musy mjeńšy abo jadnak %{count} byś"
- odd: "musy njerowna licba byś"
- even: "musy rowna licba byś"
-
- template: &errors_template
- header:
- one: "Pśi składowanju objekta %{model} jo k zmólce dojšło a njejo było móžno składowaś"
- two: "Pśi składowanju objekta %{model} jo k %{count} zmólkam dojšło a njejo było móžno składowaś"
- few: "Pśi składowanju objekta %{model} jo k %{count} zmólkam dojšło a njejo było móžno składowaś"
- other: "Pśi składowanju objekta %{model} jo k %{count} zmólkam dojšło a njejo było móžno składowaś"
- body: "Pšosym pśeglědaj slědujuce póla:"
-
- activerecord:
- errors:
- messages:
- <<: *errors_messages
- template:
- <<: *errors_template
- full_messages:
- format: "%{attribute} %{message}"
\ No newline at end of file
+++ /dev/null
-# Greek translations for Ruby on Rails
-# contributors:
-# - Tsutomu Kuroda - t-kuroda@oiax.jp - Rails 3 update
-# - Diamantopoulos Nikos - nolamesa@yahoo.gr
-
-el:
- date:
- formats:
- default: "%d/%m/%Y"
- short: "%d %b"
- long: "%e %B %Y"
- day_names:
- - Κυριακή
- - Δευτέρα
- - Τρίτη
- - Τετάρτη
- - Πέμπτη
- - Παρασκευή
- - Σάββατο
- abbr_day_names:
- - Κυρ
- - Δευ
- - Τρι
- - Τετ
- - Πεμ
- - Παρ
- - Σαβ
- month_names:
- - ~
- - Ιανουάριος
- - Φεβρουάριος
- - Μάρτιος
- - Απρίλιος
- - Μάιος
- - Ιούνιος
- - Ιούλιος
- - Αύγουστος
- - Σεπτέμβριος
- - Οκτώβριος
- - Νοέμβριος
- - Δεκέμβριος
- abbr_month_names:
- - ~
- - Ιαν.
- - Φεβ.
- - Μάρ.
- - Απρ.
- - Μαι.
- - Ιουν.
- - Ιούλ.
- - Αυγ.
- - Σεπ.
- - Οκτ.
- - Νοε.
- - Δεκ.
- order:
- - :day
- - :month
- - :year
-
- time:
- formats:
- default: "%d %B %Y %H:%M"
- short: "%d %b %H:%M"
- long: "%A %d %B %Y %H:%M:%S %Z"
- am: 'πμ'
- pm: 'μμ'
-
- datetime:
- distance_in_words:
- half_a_minute: "μισό λεπτό"
- less_than_x_seconds:
- one: "λιγότερο από ένα δευτερόλεπτο"
- other: "λιγότερο από %{count} δευτερόλεπτα"
- x_seconds:
- one: "1 δευτερόλεπτο"
- other: "%{count} δευτερόλεπτα"
- less_than_x_minutes:
- one: "λιγότερο από ένα λεπτό"
- other: "λιγότερο από %{count} λεπτά"
- x_minutes:
- one: "1 λεπτό"
- other: "%{count} λεπτά"
- about_x_hours:
- one: "περίπου μία ώρα"
- other: "περίπου %{count} ώρες"
- x_days:
- one: "1 μέρα"
- other: "%{count} μέρες"
- about_x_months:
- one: "περίπου ένα μήνα"
- other: "περίπου %{count} μήνες"
- x_months:
- one: "1 μήνα"
- other: "%{count} μήνες"
- about_x_years:
- one: "περίπου ένα χρόνο"
- other: "περίπου %{count} χρόνια"
- over_x_years:
- one: "πάνω από ένα χρόνο"
- other: "πάνω από %{count} χρόνια"
- almost_x_years:
- one: "σχεδόν ένα χρόνο"
- other: "σχεδόν %{count} χρόνια"
- prompts:
- year: "Έτος"
- month: "Μήνας"
- day: "Ημέρα"
- hour: "Ώρα"
- minute: "Λεπτό"
- second: "Δευτερόλεπτο"
-
- number:
- format:
- precision: 3
- separator: ','
- delimiter: '.'
- significant: false
- strip_insignificant_zeros: false
-
- currency:
- format:
- format: '%n %u'
- unit: '€'
- separator: "."
- delimiter: ","
- precision: 2
- significant: false
- strip_insignificant_zeros: false
-
- percentage:
- format:
- delimiter: ""
-
- precision:
- format:
- delimiter: ""
-
- human:
- format:
- delimiter: ""
- precision: 1
- significant: true
- strip_insignificant_zeros: true
- storage_units:
- format: "%n %u"
- units:
- byte:
- one: "byte"
- other: "bytes"
- kb: "KB"
- mb: "MB"
- gb: "GB"
- tb: "TB"
- decimal_units:
- format: "%n %u"
- units:
- unit: ""
- thousand: "χίλια"
- million: "εκατομμύριο"
- billion: "δισεκατομμύριο"
- trillion: "τρισεκατομμύριο"
- quadrillion: "τετρακις εκατομμύριο"
-
- support:
- array:
- words_connector: ", "
- two_words_connector: " και "
- last_word_connector: " και "
-
- select:
- prompt: "Παρακαλώ επιλέξτε"
-
- helpers:
- select:
- prompt: "Παρακαλώ επιλέξτε"
-
- submit:
- create: 'Δημιουργήστε %{model}'
- update: 'Ενημερώστε %{model}'
- submit: 'Αποθηκεύστε %{model}'
-
- errors:
- format: "%{attribute} %{message}"
-
- messages: &errors_messages
- inclusion: "δεν συμπεριλαμβάνεται στη λίστα"
- exclusion: "είναι δεσμευμένο"
- invalid: "είναι άκυρο"
- confirmation: "δεν ταιριάζει με την επικύρωση"
- accepted: "πρέπει να είναι αποδεκτό"
- empty: "δεν πρέπει να είναι άδειο"
- blank: "δεν πρέπει να είναι κενό"
- too_long: "είναι πολύ μεγάλο (το μέγιστο μήκος είναι %{count} χαρακτήρες)"
- too_short: "είναι πολύ μικρό (το μικρότερο μήκος είναι %{count} χαρακτήρες)"
- wrong_length: "έχει λανθασμένο μήκος (πρέπει να είναι %{count} χαρακτήρες)"
- not_a_number: "δεν είναι ένας αριθμός"
- not_an_integer: "πρέπει να είναι ακέραιος αριθμός"
- greater_than: "πρέπει να είναι μεγαλύτερο από %{count}"
- greater_than_or_equal_to: "πρέπει να είναι μεγαλύτερο ή ίσο με %{count}"
- equal_to: "πρέπει να είναι ίσο με %{count}"
- less_than: "πρέπει να είναι λιγότερο από %{count}"
- less_than_or_equal_to: "πρέπει να είναι λιγότερο ή ίσο με %{count}"
- odd: "πρέπει να είναι περιττός"
- even: "πρέπει να είναι άρτιος"
- taken: "το έχουν ήδη χρησιμοποιήσει"
- record_invalid: "Επικύρωση απέτυχε: %{errors}"
- template: &errors_template
- header:
- one: "1 λάθος εμπόδισε αυτό το %{model} να αποθηκευθεί."
- other: "%{count} λάθη εμπόδισαν αυτό το %{model} να αποθηκευθεί."
- body: "Υπήρξαν προβλήματα με τα ακόλουθα πεδία:"
-
- activerecord:
- errors:
- messages:
- <<: *errors_messages
- template:
- <<: *errors_template
- full_messages:
- format: "%{attribute} %{message}"
+++ /dev/null
-# Australian English translations for Ruby on Rails
-
-"en-AU":
- date:
- formats:
- default: "%d-%m-%Y"
- short: "%b %d"
- long: "%B %d, %Y"
-
- day_names:
- - Sunday
- - Monday
- - Tuesday
- - Wednesday
- - Thursday
- - Friday
- - Saturday
- abbr_day_names:
- - Sun
- - Mon
- - Tue
- - Wed
- - Thu
- - Fri
- - Sat
-
- month_names:
- - ~
- - January
- - February
- - March
- - April
- - May
- - June
- - July
- - August
- - September
- - October
- - November
- - December
- abbr_month_names:
- - ~
- - Jan
- - Feb
- - Mar
- - Apr
- - May
- - Jun
- - Jul
- - Aug
- - Sep
- - Oct
- - Nov
- - Dec
- order:
- - :year
- - :month
- - :day
-
- time:
- formats:
- default: "%a, %d %b %Y %H:%M:%S %z"
- short: "%d %b %H:%M"
- long: "%B %d, %Y %H:%M"
- am: "am"
- pm: "pm"
-
- support:
- array:
- words_connector: ", "
- two_words_connector: " and "
- last_word_connector: ", and "
-
- select:
- prompt: "Please select"
-
- number:
- format:
- separator: "."
- delimiter: ","
- precision: 3
- significant: false
- strip_insignificant_zeros: false
-
- currency:
- format:
- format: "%u%n"
- unit: "$"
- separator: "."
- delimiter: ","
- precision: 2
- significant: false
- strip_insignificant_zeros: false
-
- percentage:
- format:
- delimiter: ""
-
- precision:
- format:
- delimiter: ""
-
- human:
- format:
- delimiter: ""
- precision: 3
- significant: true
- strip_insignificant_zeros: true
- storage_units:
- format: "%n %u"
- units:
- byte:
- one: "Byte"
- other: "Bytes"
- kb: "KB"
- mb: "MB"
- gb: "GB"
- tb: "TB"
- decimal_units:
- format: "%n %u"
- units:
- unit: ""
- thousand: Thousand
- million: Million
- billion: Billion
- trillion: Trillion
- quadrillion: Quadrillion
-
- datetime:
- distance_in_words:
- half_a_minute: "half a minute"
- less_than_x_seconds:
- one: "less than 1 second"
- other: "less than %{count} seconds"
- x_seconds:
- one: "1 second"
- other: "%{count} seconds"
- less_than_x_minutes:
- one: "less than a minute"
- other: "less than %{count} minutes"
- x_minutes:
- one: "1 minute"
- other: "%{count} minutes"
- about_x_hours:
- one: "about 1 hour"
- other: "about %{count} hours"
- x_days:
- one: "1 day"
- other: "%{count} days"
- about_x_months:
- one: "about 1 month"
- other: "about %{count} months"
- x_months:
- one: "1 month"
- other: "%{count} months"
- about_x_years:
- one: "about 1 year"
- other: "about %{count} years"
- over_x_years:
- one: "over 1 year"
- other: "over %{count} years"
- almost_x_years:
- one: "almost 1 year"
- other: "almost %{count} years"
- prompts:
- year: "Year"
- month: "Month"
- day: "Day"
- hour: "Hour"
- minute: "Minute"
- second: "Seconds"
-
- helpers:
- select:
- prompt: "Please select"
-
- submit:
- create: 'Create %{model}'
- update: 'Update %{model}'
- submit: 'Save %{model}'
-
- errors:
- format: "%{attribute} %{message}"
-
- messages: &errors_messages
- inclusion: "is not included in the list"
- exclusion: "is reserved"
- invalid: "is invalid"
- confirmation: "doesn't match confirmation"
- accepted: "must be accepted"
- empty: "can't be empty"
- blank: "can't be blank"
- too_long:
- one: "is too long (maximum is 1 character)"
- other: "is too long (maximum is %{count} characters)"
- too_short:
- one: "is too short (minimum is 1 character)"
- other: "is too short (minimum is %{count} characters)"
- wrong_length:
- one: "is the wrong length (should be 1 character)"
- other: "is the wrong length (should be %{count} characters)"
- not_a_number: "is not a number"
- not_an_integer: "must be an integer"
- greater_than: "must be greater than %{count}"
- greater_than_or_equal_to: "must be greater than or equal to %{count}"
- equal_to: "must be equal to %{count}"
- less_than: "must be less than %{count}"
- less_than_or_equal_to: "must be less than or equal to %{count}"
- odd: "must be odd"
- even: "must be even"
- taken: "has already been taken"
- record_invalid: "Validation failed: %{errors}"
- template: &errors_template
- header:
- one: "1 error prohibited this %{model} from being saved"
- other: "%{count} errors prohibited this %{model} from being saved"
- body: "There were problems with the following fields:"
-
- activerecord:
- errors:
- messages:
- <<: *errors_messages
- template:
- <<: *errors_template
-
- full_messages:
- format: "%{attribute} %{message}"
+++ /dev/null
-# GB English translations for Ruby on Rails
-
-"en-GB":
- date:
- formats:
- default: "%d-%m-%Y"
- short: "%d %b"
- long: "%d %B, %Y"
-
- day_names:
- - Sunday
- - Monday
- - Tuesday
- - Wednesday
- - Thursday
- - Friday
- - Saturday
- abbr_day_names:
- - Sun
- - Mon
- - Tue
- - Wed
- - Thu
- - Fri
- - Sat
-
- month_names:
- - ~
- - January
- - February
- - March
- - April
- - May
- - June
- - July
- - August
- - September
- - October
- - November
- - December
- abbr_month_names:
- - ~
- - Jan
- - Feb
- - Mar
- - Apr
- - May
- - Jun
- - Jul
- - Aug
- - Sep
- - Oct
- - Nov
- - Dec
- order:
- - :day
- - :month
- - :year
-
- time:
- formats:
- default: "%a, %d %b %Y %H:%M:%S %z"
- short: "%d %b %H:%M"
- long: "%d %B, %Y %H:%M"
- am: "am"
- pm: "pm"
-
- support:
- array:
- words_connector: ", "
- two_words_connector: " and "
- last_word_connector: ", and "
-
- select:
- prompt: "Please select"
-
- number:
- format:
- separator: "."
- delimiter: ","
- precision: 3
- significant: false
- strip_insignificant_zeros: false
-
- currency:
- format:
- format: "%u%n"
- unit: "£"
- separator: "."
- delimiter: ","
- precision: 2
- significant: false
- strip_insignificant_zeros: false
-
- percentage:
- format:
- delimiter: ""
-
- precision:
- format:
- delimiter: ""
-
- human:
- format:
- delimiter: ""
- precision: 3
- significant: true
- strip_insignificant_zeros: true
- storage_units:
- format: "%n %u"
- units:
- byte:
- one: "Byte"
- other: "Bytes"
- kb: "KB"
- mb: "MB"
- gb: "GB"
- tb: "TB"
- decimal_units:
- format: "%n %u"
- units:
- unit: ""
- thousand: Thousand
- million: Million
- billion: Billion
- trillion: Trillion
- quadrillion: Quadrillion
-
- datetime:
- distance_in_words:
- half_a_minute: "half a minute"
- less_than_x_seconds:
- one: "less than 1 second"
- other: "less than %{count} seconds"
- x_seconds:
- one: "1 second"
- other: "%{count} seconds"
- less_than_x_minutes:
- one: "less than a minute"
- other: "less than %{count} minutes"
- x_minutes:
- one: "1 minute"
- other: "%{count} minutes"
- about_x_hours:
- one: "about 1 hour"
- other: "about %{count} hours"
- x_days:
- one: "1 day"
- other: "%{count} days"
- about_x_months:
- one: "about 1 month"
- other: "about %{count} months"
- x_months:
- one: "1 month"
- other: "%{count} months"
- about_x_years:
- one: "about 1 year"
- other: "about %{count} years"
- over_x_years:
- one: "over 1 year"
- other: "over %{count} years"
- almost_x_years:
- one: "almost 1 year"
- other: "almost %{count} years"
- prompts:
- year: "Year"
- month: "Month"
- day: "Day"
- hour: "Hour"
- minute: "Minute"
- second: "Seconds"
-
- helpers:
- select:
- prompt: "Please select"
-
- submit:
- create: 'Create %{model}'
- update: 'Update %{model}'
- submit: 'Save %{model}'
-
- errors:
- format: "%{attribute} %{message}"
-
- messages: &errors_messages
- inclusion: "is not included in the list"
- exclusion: "is reserved"
- invalid: "is invalid"
- confirmation: "doesn't match confirmation"
- accepted: "must be accepted"
- empty: "can't be empty"
- blank: "can't be blank"
- too_long:
- one: "is too long (maximum is 1 character)"
- other: "is too long (maximum is %{count} characters)"
- too_short:
- one: "is too short (minimum is 1 character)"
- other: "is too short (minimum is %{count} characters)"
- wrong_length:
- one: "is the wrong length (should be 1 character)"
- other: "is the wrong length (should be %{count} characters)"
- not_a_number: "is not a number"
- not_an_integer: "must be an integer"
- greater_than: "must be greater than %{count}"
- greater_than_or_equal_to: "must be greater than or equal to %{count}"
- equal_to: "must be equal to %{count}"
- less_than: "must be less than %{count}"
- less_than_or_equal_to: "must be less than or equal to %{count}"
- odd: "must be odd"
- even: "must be even"
- taken: "has already been taken"
- record_invalid: "Validation failed: %{errors}"
- template: &errors_template
- header:
- one: "1 error prohibited this %{model} from being saved"
- other: "%{count} errors prohibited this %{model} from being saved"
- body: "There were problems with the following fields:"
-
- activerecord:
- errors:
- messages:
- <<: *errors_messages
- template:
- <<: *errors_template
-
- full_messages:
- format: "%{attribute} %{message}"
+++ /dev/null
-# Indian translations for Ruby on Rails
-# by Saurabh Bhatia
-
-"en-IN":
- date:
- formats:
- default: "%d %B %Y"
- long: "%A, %d %B %Y"
- short: "%d.%m.%Y"
-
- day_names:
- - Sunday
- - Monday
- - Tuesday
- - Wednesday
- - Thursday
- - Friday
- - Saturday
- abbr_day_names:
- - Sun
- - Mon
- - Tue
- - Wed
- - Thu
- - Fri
- - Sat
- month_names:
- - ~
- - January
- - February
- - March
- - April
- - May
- - June
- - July
- - August
- - September
- - October
- - November
- - December
- abbr_month_names:
- - ~
- - Jan
- - Feb
- - Mar
- - Apr
- - May
- - Jun
- - Jul
- - Aug
- - Sep
- - Okt
- - Nov
- - Dec
- order:
- - :day
- - :month
- - :year
-
- time:
- formats:
- default: "%a, %d %b %Y %H.%M.%S %z"
- short: "%d %b %H.%M"
- long: "%d %B %Y %H.%M"
- am: "am"
- pm: "pm"
-
- number:
- format:
- delimiter: "."
- separator: ","
- precision: 2
-
- currency:
- format:
- format: "%n. %u"
- unit: "₹"
- separator: ","
- delimiter: "."
- precision: 2
-
- percentage:
- format:
- delimiter: "."
- separator: ","
- precision: 2
-
- precision:
- format:
- delimiter: "."
- separator: ","
-
- human:
- format:
- delimiter: "."
- separator: ","
- precision: 1
- storage_units:
- - Byte
- - KB
- - MB
- - GB
- - TB
-
- datetime:
- distance_in_words:
- half_a_minute: "setengah menit"
- less_than_x_seconds:
- zero: "kurang dari 1 detik"
- one: "kurang dari 1 detik"
- other: "kurang dari %{count} detik"
- x_seconds:
- one: "satu detik"
- other: "%{count} detik"
- less_than_x_minutes:
- zero: "kurang dari 1 menit"
- one: "kurang dari 1 menit"
- other: "kurang dari %{count} menit"
- x_minutes:
- one: "satu menit"
- other: "%{count} menit"
- about_x_hours:
- one: "sekitar satu jam"
- other: "sekitar %{count} jam"
- x_days:
- one: "sehari"
- other: "%{count} hari"
- about_x_months:
- one: "sekitar sebulan"
- other: "sekitar %{count} bulan"
- x_months:
- one: "sebulan"
- other: "%{count} bulan"
- about_x_years:
- one: "setahun"
- other: "noin %{count} tahun"
- over_x_years:
- one: "lebih dari setahun"
- other: "lebih dari %{count} tahun"
- almost_x_years:
- one: "hampir setahun"
- other: "hampir %{count} tahun"
- prompts:
- year: "Tahun"
- month: "Bulan"
- day: "Hari"
- hour: "Jam"
- minute: "Menit"
- second: "Detik"
-
- helpers:
- select:
- prompt: "Silahkan pilih"
-
- submit:
- create: 'Buat %{model}'
- update: 'Update %{model}'
- submit: 'Simpan %{model}'
-
- errors:
- format: "%{attribute} %{message}"
-
- messages: &errors_messages
- inclusion: "tidak termasuk"
- exclusion: "sudah digunakan"
- invalid: "tidak valid"
- confirmation: "tidak sesuai dengan konfirmasi"
- accepted: "harus diterima"
- empty: "tidak bisa kosong"
- blank: "tidak bisa kosong"
- too_long: "terlalu panjang (maksimum %{count} karakter)"
- too_short: "terlalu pendek (minimum %{count} karakter)"
- wrong_length: "jumlah karakter salah (seharusnya %{count} karakter)"
- taken: "sudah digunakan"
- not_a_number: "bukan angka"
- greater_than: "harus lebih besar dari %{count}"
- greater_than_or_equal_to: "harus sama atau lebih besar dari %{count}"
- equal_to: "harus sama dengan %{count}"
- less_than: "harus lebih kecil dari %{count}"
- less_than_or_equal_to: "harus sama atau lebih kecil dari %{count}"
- odd: "harus ganjil"
- even: "harus genap"
- record_invalid: "Verifikasi gagal: %{errors}"
- template: &errors_template
- header:
- one: "1 kesalahan mengakibatkan %{model} ini tidak bisa disimpan"
- other: "%{count} kesalahan mengakibatkan %{model} ini tidak bisa disimpan"
- body: "Ada masalah dengan field berikut:"
-
- activerecord:
- errors:
- messages:
- <<: *errors_messages
- template:
- <<: *errors_template
- full_messages:
- format: "%{attribute} %{message}"
-
- number:
- format:
- separator: ","
- delimiter: "."
- precision: 3
- significant: false
- strip_insignificant_zeros: false
-
- currency:
- format:
- format: "%u%n"
- unit: "Rp"
- separator: ","
- delimiter: "."
- precision: 2
- significant: false
- strip_insignificant_zeros: false
-
- percentage:
- format:
- delimiter: ""
-
- precision:
- format:
- delimiter: ""
-
- human:
- format:
- delimiter: ""
- precision: 3
- significant: true
- strip_insignificant_zeros: true
- storage_units:
- format: "%n %u"
- units:
- byte:
- one: "Byte"
- other: "Byte"
- kb: "KB"
- mb: "MB"
- gb: "GB"
- tb: "TB"
- decimal_units:
- format: "%n %u"
- units:
- unit: ""
- thousand: Ribu
- million: Juta
- billion: Miliar
- trillion: Triliun
- quadrillion: Quadriliun
+++ /dev/null
-# US English translations for Ruby on Rails
-#
-# Use this as the base for the locale file of your language.
-
-"en-US":
- date:
- formats:
- default: "%Y-%m-%d"
- short: "%b %d"
- long: "%B %d, %Y"
-
- day_names:
- - Sunday
- - Monday
- - Tuesday
- - Wednesday
- - Thursday
- - Friday
- - Saturday
- abbr_day_names:
- - Sun
- - Mon
- - Tue
- - Wed
- - Thu
- - Fri
- - Sat
-
- month_names:
- - ~
- - January
- - February
- - March
- - April
- - May
- - June
- - July
- - August
- - September
- - October
- - November
- - December
- abbr_month_names:
- - ~
- - Jan
- - Feb
- - Mar
- - Apr
- - May
- - Jun
- - Jul
- - Aug
- - Sep
- - Oct
- - Nov
- - Dec
- order:
- - :year
- - :month
- - :day
-
- time:
- formats:
- default: "%a, %d %b %Y %H:%M:%S %z"
- short: "%d %b %H:%M"
- long: "%B %d, %Y %H:%M"
- am: "am"
- pm: "pm"
-
- support:
- array:
- words_connector: ", "
- two_words_connector: " and "
- last_word_connector: ", and "
-
- select:
- prompt: "Please select"
-
- number:
- format:
- separator: "."
- delimiter: ","
- precision: 3
- significant: false
- strip_insignificant_zeros: false
- currency:
- format:
- format: "%u%n"
- unit: "$"
- separator: "."
- delimiter: ","
- precision: 2
- significant: false
- strip_insignificant_zeros: false
- percentage:
- format:
- delimiter: ""
- precision:
- format:
- delimiter: ""
- human:
- format:
- delimiter: ""
- precision: 3
- significant: true
- strip_insignificant_zeros: true
- storage_units:
- format: "%n %u"
- units:
- byte:
- one: "Byte"
- other: "Bytes"
- kb: "KB"
- mb: "MB"
- gb: "GB"
- tb: "TB"
- decimal_units:
- format: "%n %u"
- units:
- unit: ""
- thousand: Thousand
- million: Million
- billion: Billion
- trillion: Trillion
- quadrillion: Quadrillion
-
- datetime:
- distance_in_words:
- half_a_minute: "half a minute"
- less_than_x_seconds:
- one: "less than 1 second"
- other: "less than %{count} seconds"
- x_seconds:
- one: "1 second"
- other: "%{count} seconds"
- less_than_x_minutes:
- one: "less than a minute"
- other: "less than %{count} minutes"
- x_minutes:
- one: "1 minute"
- other: "%{count} minutes"
- about_x_hours:
- one: "about 1 hour"
- other: "about %{count} hours"
- x_days:
- one: "1 day"
- other: "%{count} days"
- about_x_months:
- one: "about 1 month"
- other: "about %{count} months"
- x_months:
- one: "1 month"
- other: "%{count} months"
- about_x_years:
- one: "about 1 year"
- other: "about %{count} years"
- over_x_years:
- one: "over 1 year"
- other: "over %{count} years"
- almost_x_years:
- one: "almost 1 year"
- other: "almost %{count} years"
- prompts:
- year: "Year"
- month: "Month"
- day: "Day"
- hour: "Hour"
- minute: "Minute"
- second: "Seconds"
-
- helpers:
- select:
- prompt: "Please select"
-
- submit:
- create: 'Create %{model}'
- update: 'Update %{model}'
- submit: 'Save %{model}'
-
- errors:
- format: "%{attribute} %{message}"
- messages: &errors_messages
- inclusion: "is not included in the list"
- exclusion: "is reserved"
- invalid: "is invalid"
- confirmation: "doesn't match confirmation"
- accepted: "must be accepted"
- empty: "can't be empty"
- blank: "can't be blank"
- too_long:
- one: "is too long (maximum is 1 character)"
- other: "is too long (maximum is %{count} characters)"
- too_short:
- one: "is too short (minimum is 1 character)"
- other: "is too short (minimum is %{count} characters)"
- wrong_length:
- one: "is the wrong length (should be 1 character)"
- other: "is the wrong length (should be %{count} characters)"
- not_a_number: "is not a number"
- not_an_integer: "must be an integer"
- greater_than: "must be greater than %{count}"
- greater_than_or_equal_to: "must be greater than or equal to %{count}"
- equal_to: "must be equal to %{count}"
- less_than: "must be less than %{count}"
- less_than_or_equal_to: "must be less than or equal to %{count}"
- odd: "must be odd"
- even: "must be even"
- taken: "has already been taken"
- record_invalid: "Validation failed: %{errors}"
- template: &errors_template
- header:
- one: "1 error prohibited this %{model} from being saved"
- other: "%{count} errors prohibited this %{model} from being saved"
- body: "There were problems with the following fields:"
-
- activerecord:
- errors:
- messages:
- <<: *errors_messages
- template:
- <<: *errors_template
- full_messages:
- format: "%{attribute} %{message}"
\ No newline at end of file
+++ /dev/null
-# Esperanto translations for Ruby on Rails.
-# Contributors:
-# - Emmanuel Debanne (https://github.com/debanne)
-
-eo:
- date:
- formats:
- default: "%Y/%m/%d"
- short: "%e %b"
- long: "%e %B %Y"
-
- day_names:
- - dimanĉo
- - lundo
- - mardo
- - merkredo
- - ĵaŭdo
- - vendredo
- - sabato
- abbr_day_names:
- - dim
- - lun
- - mar
- - mer
- - ĵaŭ
- - ven
- - sam
- month_names:
- - ~
- - januaro
- - februaro
- - marto
- - aprilo
- - majo
- - junio
- - julio
- - aŭgusto
- - septembro
- - oktobro
- - novembro
- - decembro
- abbr_month_names:
- - ~
- - jan.
- - feb.
- - mar.
- - apr.
- - majo
- - jun.
- - jul.
- - aŭg.
- - sep.
- - okt.
- - nov.
- - dec.
- order:
- - :day
- - :month
- - :year
-
- time:
- formats:
- default: "%d %B %Y %H:%M:%S"
- short: "%d %b %H:%M"
- long: "%A %d %B %Y %H:%M"
- am: 'am'
- pm: 'pm'
-
- datetime:
- distance_in_words:
- half_a_minute: "duona minuto"
- less_than_x_seconds:
- zero: "malpli ol unu sekundo"
- one: "malpli ol unu sekundo"
- other: "malpli ol %{count} sekundoj"
- x_seconds:
- one: "1 sekundo"
- other: "%{count} sekundoj"
- less_than_x_minutes:
- zero: "malpli ol unu minuto"
- one: "malpli ol unu minuto"
- other: "malpli ol %{count} minutoj"
- x_minutes:
- one: "1 minuto"
- other: "%{count} minutoj"
- about_x_hours:
- one: "ĉirkaŭ unu horo"
- other: "ĉirkaŭ %{count} horoj"
- x_days:
- one: "1 tago"
- other: "%{count} tagoj"
- about_x_months:
- one: "ĉirkaŭ unu monato"
- other: "ĉirkaŭ %{count} monatoj"
- x_months:
- one: "1 monato"
- other: "%{count} monatoj"
- about_x_years:
- one: "ĉirkaŭ uno jaro"
- other: "ĉirkaŭ %{count} jaroj"
- over_x_years:
- one: "pli ol unu jaro"
- other: "pli ol %{count} jaroj"
- almost_x_years:
- one: "preskaŭ unu jaro"
- other: "preskaŭ %{count} jaroj"
- prompts:
- year: "Jaro"
- month: "Monato"
- day: "Tago"
- hour: "Horo"
- minute: "Minuto"
- second: "Sekundo"
-
- number:
- format:
- separator: ","
- delimiter: " "
- precision: 3
- significant: false
- strip_insignificant_zeros: false
- currency:
- format:
- format: "%n %u"
- unit: "€"
- separator: ","
- delimiter: " "
- precision: 2
- significant: false
- strip_insignificant_zeros: false
- percentage:
- format:
- delimiter: ""
- precision:
- format:
- delimiter: ""
- human:
- format:
- delimiter: ""
- precision: 2
- significant: true
- strip_insignificant_zeros: true
- storage_units:
- format: "%n %u"
- units:
- byte:
- one: "bitoko"
- other: "bitokoj"
- kb: "kb"
- mb: "Mb"
- gb: "Gb"
- tb: "Tb"
- decimal_units:
- format: "%n %u"
- units:
- unit: ""
- thousand: "mil"
- million: "miliono"
- billion: "miliardo"
- trillion: "mil miliardoj"
- quadrillion: "miliono da miliardoj"
-
- support:
- array:
- words_connector: ", "
- two_words_connector: " kaj "
- last_word_connector: " kaj "
- select:
- prompt: "Bonvolu elekti"
-
- helpers:
- select:
- prompt: "Bonvolu elekti"
- submit:
- create: "Krei %{model}"
- update: "Modifi tiun %{model}"
- submit: "Registri tiun %{model}"
-
- errors:
- format: "%{attribute} %{message}"
- messages: &errors_messages
- inclusion: "ne estas inkluzivita de la listo"
- exclusion: "ne estas disponebla"
- invalid: "estas nevalida"
- confirmation: "ne kongruas kun la konfirmo"
- accepted: "devas esti akceptita"
- empty: "devas esti kompletigita"
- blank: "devas esti kompletigita"
- too_long: "estas tro longa (maksimume %{count} karekteroj)"
- too_short: "estas tro mallonga (minimume %{count} karakteroj)"
- wrong_length: "ne estas je ĝusta longo (devas enhavi %{count} karakterojn)"
- not_a_number: "ne estas nombro"
- not_an_integer: "devas esti entjero"
- greater_than: "devas superi %{count}"
- greater_than_or_equal_to: "devas superi aŭ egali %{count}"
- equal_to: "devas egali %{count}"
- less_than: "devas malsuperi %{count}"
- less_than_or_equal_to: "devas malsuperi aŭ egali %{count}"
- odd: "devas esti nepara"
- even: "devas esti para"
- taken: "ne estas disponebla"
- record_invalid: "Validado malsukcesis: %{errors}"
- template: &errors_template
- header:
- one: "Ne eblas registri tiun %{model}: 1 eraro"
- other: "Ne eblas registri tiun %{model}: %{count} eraroj"
- body: "Kontrolu la jenajn kampojn: "
-
- activerecord:
- errors:
- messages:
- <<: *errors_messages
- template:
- <<: *errors_template
- full_messages:
- format: "%{attribute} %{message}"
+++ /dev/null
-# Corrected by Eloy Serra Labán: http://goo.gl/i9Kts, /nQ928, /XfKaX
-
-es-AR:
- number:
- percentage:
- format:
- delimiter: ","
- currency:
- format:
- format: "%u%n"
- unit: "$"
- separator: "."
- delimiter: ","
- precision: 2
- significant: false
- strip_insignificant_zeros: false
- format:
- delimiter: ","
- precision: 2
- significant: false
- strip_insignificant_zeros: false
- separator: "."
- human:
- format:
- delimiter: ","
- precision: 3
- significant: true
- strip_insignificant_zeros: true
- storage_units:
- format: "%n %u"
- units:
- byte:
- one: "Byte"
- other: "Bytes"
- kb: "KB"
- mb: "MB"
- gb: "GB"
- tb: "TB"
- decimal_units:
- format: "%n %u"
- units:
- unit: ""
- thousand: "mil"
- million: "millón"
- billion: "mil millones"
- trillion: "billón"
- quadrillion: "mil billones"
- precision:
- format:
- delimiter: ","
-
- date:
- order:
- - :day
- - :month
- - :year
- abbr_day_names:
- - dom
- - lun
- - mar
- - mié
- - jue
- - vie
- - sáb
- abbr_month_names:
- - ~
- - ene
- - feb
- - mar
- - abr
- - may
- - jun
- - jul
- - ago
- - sep
- - oct
- - nov
- - dic
- day_names:
- - domingo
- - lunes
- - martes
- - miércoles
- - jueves
- - viernes
- - sábado
- month_names:
- - ~
- - enero
- - febrero
- - marzo
- - abril
- - mayo
- - junio
- - julio
- - agosto
- - septiembre
- - octubre
- - noviembre
- - diciembre
- formats:
- short: "%d de %b"
- default: "%d/%m/%Y"
- long: "%A, %d de %B de %Y"
- time:
- formats:
- short: "%d de %b a las %H:%M hrs"
- default: "%a, %d de %b de %Y a las %H:%M:%S %Z"
- long: "%A, %d de %B de %Y a las %I:%M %p"
- am: "am"
- pm: "pm"
-
- support:
- array:
- words_connector: ", "
- two_words_connector: " y "
- last_word_connector: " y "
-
- select:
- prompt: "Por favor selecciona"
-
- datetime:
- distance_in_words:
- half_a_minute: "medio minuto"
- less_than_x_seconds:
- one: "menos de 1 segundo"
- other: "menos de %{count} segundos"
- x_seconds:
- one: "1 segundo"
- other: "%{count} segundos"
- less_than_x_minutes:
- one: "menos de 1 minuto"
- other: "menos de %{count} minutos"
- x_minutes:
- one: "1 minuto"
- other: "%{count} minutos"
- about_x_hours:
- one: "cerca de 1 hora"
- other: "cerca de %{count} horas"
- x_days:
- one: "1 día"
- other: "%{count} días"
- about_x_months:
- one: "cerca de 1 mes"
- other: "cerca de %{count} meses"
- x_months:
- one: "1 mes"
- other: "%{count} meses"
- about_x_years:
- other: "cerca de %{count} años"
- one: "cerca de 1 año"
- over_x_years:
- one: "más de 1 año"
- other: "más de %{count} años"
- almost_x_years:
- one: "casi 1 año"
- other: "casi %{count} años"
- prompts:
- year: 'Año'
- month: 'Mes'
- day: 'Día'
- hour: 'Hora'
- minute: 'Minuto'
- second: 'Segundos'
-
- helpers:
- select:
- prompt: "Por favor selecciona"
-
- submit:
- create: 'Crear %{model}'
- update: 'Actualizar %{model}'
- submit: 'Guardar %{model}'
-
- errors:
- format: "%{attribute} %{message}"
-
- messages: &errors_messages
- inclusion: "no está incluído en la lista"
- exclusion: "está reservado"
- invalid: "es inválido"
- confirmation: "no coincide con la confirmación"
- blank: "no puede estar en blanco"
- empty: "no puede estar vacío"
- not_a_number: "no es un número"
- not_an_integer: "debe ser un entero"
- less_than: "debe ser menor que %{count}"
- less_than_or_equal_to: "debe ser menor o igual que %{count}"
- greater_than: "debe ser mayor que %{count}"
- greater_than_or_equal_to: "debe ser mayor o igual que %{count}"
- too_short:
- one: "es demasiado corto (mínimo 1 caracter)"
- other: "es demasiado corto (mínimo %{count} caracteres)"
- too_long:
- one: "es demasiado largo (máximo 1 caracter)"
- other: "es demasiado largo (máximo %{count} caracteres)"
- equal_to: "debe ser igual a %{count}"
- wrong_length:
- one: "longitud errónea (debe ser de 1 caracter)"
- other: "longitud errónea (debe ser de %{count} caracteres)"
- accepted: "debe ser aceptado"
- even: "debe ser un número par"
- odd: "debe ser un número non"
- taken: "ya ha sido tomado"
- record_invalid: "La validación falló: %{errors}"
- template: &errors_template
- header:
- one: "%{model} no pudo guardarse debido a 1 error"
- other: "%{model} no pudo guardarse debido a %{count} errores"
- body: "Revise que los siguientes campos sean válidos:"
-
- activerecord:
- errors:
- messages:
- <<: *errors_messages
- template:
- <<: *errors_template
-
- full_messages:
- format: "%{attribute} %{message}"
+++ /dev/null
-# Spanish translations for Rails as spoken in Chile
-# Based in the original Spanish translation by Francisco Fernando García Nieto
-# and Tsutomu Kuroda
-# Corrected by Eloy Serra Labán: http://goo.gl/i9Kts, /nQ928, /XfKaX
-
-es-CL:
- date:
- formats:
- default: "%d/%m/%Y"
- short: "%d de %b"
- long: "%A %d de %B de %Y"
-
- day_names:
- - domingo
- - lunes
- - martes
- - miércoles
- - jueves
- - viernes
- - sábado
- abbr_day_names:
- - dom
- - lun
- - mar
- - mié
- - jue
- - vie
- - sáb
-
- month_names:
- - ~
- - enero
- - febrero
- - marzo
- - abril
- - mayo
- - junio
- - julio
- - agosto
- - septiembre
- - octubre
- - noviembre
- - diciembre
- abbr_month_names:
- - ~
- - ene
- - feb
- - mar
- - abr
- - may
- - jun
- - jul
- - ago
- - sep
- - oct
- - nov
- - dic
- order:
- - :day
- - :month
- - :year
-
- time:
- formats:
- default: "%A, %d de %B de %Y %H:%M:%S %z"
- short: "%d de %b %H:%M"
- long: "%A %d de %B de %Y %H:%M"
- am: "am"
- pm: "pm"
-
- support:
- array:
- words_connector: ", "
- two_words_connector: " y "
- last_word_connector: ", y "
-
- select:
- prompt: "Por favor seleccione"
-
- number:
- format:
- separator: ","
- delimiter: "."
- precision: 3
- significant: false
- strip_insignificant_zeros: false
-
- currency:
- format:
- format: "%u %n"
- unit: "$"
- separator: ","
- delimiter: "."
- precision: 0
- significant: false
- strip_insignificant_zeros: false
-
- percentage:
- format:
- delimiter: ""
-
- precision:
- format:
- delimiter: ""
-
- human:
- format:
- delimiter: ""
- precision: 1
- significant: true
- strip_insignificant_zeros: true
- storage_units:
- format: "%n %u"
- units:
- byte:
- one: "Byte"
- other: "Bytes"
- kb: "KB"
- mb: "MB"
- gb: "GB"
- tb: "TB"
- decimal_units:
- format: "%n %u"
- units:
- unit: ""
- thousand: "mil"
- million: "millón"
- billion: "mil millones"
- trillion: "billón"
- quadrillion: "mil billones"
-
- datetime:
- distance_in_words:
- half_a_minute: "medio minuto"
- less_than_x_seconds:
- one: "menos de 1 segundo"
- other: "menos de %{count} segundos"
- x_seconds:
- one: "1 segundo"
- other: "%{count} segundos"
- less_than_x_minutes:
- one: "menos de 1 minuto"
- other: "menos de %{count} minutos"
- x_minutes:
- one: "1 minuto"
- other: "%{count} minutos"
- about_x_hours:
- one: "alrededor de 1 hora"
- other: "alrededor de %{count} horas"
- x_days:
- one: "1 día"
- other: "%{count} días"
- about_x_months:
- one: "alrededor de 1 mes"
- other: "alrededor de %{count} meses"
- x_months:
- one: "1 mes"
- other: "%{count} meses"
- about_x_years:
- one: "alrededor de 1 año"
- other: "alrededor de %{count} años"
- over_x_years:
- one: "más de 1 año"
- other: "más de %{count} años"
- almost_x_years:
- one: "casi 1 año"
- other: "casi %{count} años"
- prompts:
- year: "Año"
- month: "Mes"
- day: "Día"
- hour: "Hora"
- minute: "Minutos"
- second: "Segundos"
-
- helpers:
- select:
- prompt: "Por favor seleccione"
-
- submit:
- create: 'Crear %{model}'
- update: 'Actualizar %{model}'
- submit: 'Guardar %{model}'
-
- errors:
- format: "%{attribute} %{message}"
-
- messages: &errors_messages
- inclusion: "no está incluido en la lista"
- exclusion: "está reservado"
- invalid: "no es válido"
- confirmation: "no coincide con la confirmación"
- accepted: "debe ser aceptado"
- empty: "no puede estar vacío"
- blank: "no puede estar en blanco"
- too_long: "es demasiado largo (%{count} caracteres máximo)"
- too_short: "es demasiado corto (%{count} caracteres mínimo)"
- wrong_length: "no tiene la longitud correcta (%{count} caracteres exactos)"
- not_a_number: "no es un número"
- not_an_integer: "debe ser un entero"
- greater_than: "debe ser mayor que %{count}"
- greater_than_or_equal_to: "debe ser mayor que o igual a %{count}"
- equal_to: "debe ser igual a %{count}"
- less_than: "debe ser menor que %{count}"
- less_than_or_equal_to: "debe ser menor que o igual a %{count}"
- odd: "debe ser impar"
- even: "debe ser par"
- taken: "ya está en uso"
- record_invalid: "La validación falló: %{errors}"
- template: &errors_template
- header:
- one: "No se pudo guardar este/a %{model} porque se encontró 1 error"
- other: "No se pudo guardar este/a %{model} porque se encontraron %{count} errores"
- body: "Se encontraron problemas con los siguientes campos:"
-
- activerecord:
- errors:
- messages:
- <<: *errors_messages
- template:
- <<: *errors_template
- full_messages:
- format: "%{attribute} %{message}"
+++ /dev/null
-# Spanish as spoken in Colombia (es-CO) translations for Rails
-# Corrected by Eloy Serra Labán: http://goo.gl/i9Kts, /nQ928, /XfKaX
-
-es-CO:
- number:
- percentage:
- format:
- delimiter: ","
- currency:
- format:
- format: "%u%n"
- unit: "$"
- separator: "."
- delimiter: ","
- precision: 0
- significant: false
- strip_insignificant_zeros: false
- format:
- delimiter: ","
- precision: 2
- significant: false
- strip_insignificant_zeros: false
- separator: "."
- human:
- format:
- delimiter: ","
- precision: 3
- significant: true
- strip_insignificant_zeros: true
- storage_units:
- format: "%n %u"
- units:
- byte:
- one: "Byte"
- other: "Bytes"
- kb: "KB"
- mb: "MB"
- gb: "GB"
- tb: "TB"
- decimal_units:
- format: "%n %u"
- units:
- unit: ""
- thousand: "mil"
- million: "millón"
- billion: "mil millones"
- trillion: "billón"
- quadrillion: "mil billones"
- precision:
- format:
- delimiter: ","
-
- date:
- order:
- - :day
- - :month
- - :year
- abbr_day_names:
- - dom
- - lun
- - mar
- - mié
- - jue
- - vie
- - sáb
- abbr_month_names:
- - ~
- - ene
- - feb
- - mar
- - abr
- - may
- - jun
- - jul
- - ago
- - sep
- - oct
- - nov
- - dic
- day_names:
- - domingo
- - lunes
- - martes
- - miércoles
- - jueves
- - viernes
- - sábado
- month_names:
- - ~
- - enero
- - febrero
- - marzo
- - abril
- - mayo
- - junio
- - julio
- - agosto
- - septiembre
- - octubre
- - noviembre
- - diciembre
- formats:
- short: "%d de %b"
- default: "%d/%m/%Y"
- long: "%A, %d de %B de %Y"
- time:
- formats:
- short: "%d de %b a las %H:%M hrs"
- default: "%a, %d de %b de %Y a las %H:%M:%S %Z"
- long: "%A, %d de %B de %Y a las %I:%M %p"
- am: "am"
- pm: "pm"
-
- support:
- array:
- words_connector: ", "
- two_words_connector: " y "
- last_word_connector: " y "
-
- select:
- prompt: "Por favor selecciona"
-
- datetime:
- distance_in_words:
- half_a_minute: "medio minuto"
- less_than_x_seconds:
- one: "menos de 1 segundo"
- other: "menos de %{count} segundos"
- x_seconds:
- one: "1 segundo"
- other: "%{count} segundos"
- less_than_x_minutes:
- one: "menos de 1 minuto"
- other: "menos de %{count} minutos"
- x_minutes:
- one: "1 minuto"
- other: "%{count} minutos"
- about_x_hours:
- one: "cerca de 1 hora"
- other: "cerca de %{count} horas"
- x_days:
- one: "1 día"
- other: "%{count} días"
- about_x_months:
- one: "cerca de 1 mes"
- other: "cerca de %{count} meses"
- x_months:
- one: "1 mes"
- other: "%{count} meses"
- about_x_years:
- other: "cerca de %{count} años"
- one: "cerca de 1 año"
- over_x_years:
- one: "más de 1 año"
- other: "más de %{count} años"
- almost_x_years:
- one: "casi 1 año"
- other: "casi %{count} años"
- prompts:
- year: 'Año'
- month: 'Mes'
- day: 'Día'
- hour: 'Hora'
- minute: 'Minuto'
- second: 'Segundos'
-
- helpers:
- select:
- prompt: "Por favor selecciona"
-
- submit:
- create: 'Crear %{model}'
- update: 'Actualizar %{model}'
- submit: 'Guardar %{model}'
-
- errors:
- format: "%{attribute} %{message}"
-
- messages: &errors_messages
- inclusion: "no está incluído en la lista"
- exclusion: "está reservado"
- invalid: "es inválido"
- confirmation: "no coincide con la confirmación"
- blank: "no puede estar en blanco"
- empty: "no puede estar vacío"
- not_a_number: "no es un número"
- not_an_integer: "debe ser un entero"
- less_than: "debe ser menor que %{count}"
- less_than_or_equal_to: "debe ser menor o igual que %{count}"
- greater_than: "debe ser mayor que %{count}"
- greater_than_or_equal_to: "debe ser mayor o igual que %{count}"
- too_short:
- one: "es demasiado corto (mínimo 1 caracter)"
- other: "es demasiado corto (mínimo %{count} caracteres)"
- too_long:
- one: "es demasiado largo (máximo 1 caracter)"
- other: "es demasiado largo (máximo %{count} caracteres)"
- equal_to: "debe ser igual a %{count}"
- wrong_length:
- one: "longitud errónea (debe ser de 1 caracter)"
- other: "longitud errónea (debe ser de %{count} caracteres)"
- accepted: "debe ser aceptado"
- even: "debe ser un número par"
- odd: "debe ser un número impar"
- taken: "ya ha sido tomado"
- record_invalid: "La validación falló: %{errors}"
-
- template: &errors_template
- header:
- one: "%{model} no pudo guardarse debido a 1 error"
- other: "%{model} no pudo guardarse debido a %{count} errores"
- body: "Revise que los siguientes campos sean válidos:"
-
- activerecord:
- errors:
- messages:
- <<: *errors_messages
- template:
- <<: *errors_template
- full_messages:
- format: "%{attribute} %{message}"
+++ /dev/null
-# Spanish as spoken in Mexico (es-MX) translations for Rails
-# by Edgar J. Suárez (edgar.js@gmail.com)
-# Fixed currency format (Can't convert string to symbol)
-# by Ivan Torres (mexpolk@gmail.com)
-# Added datetime / prompts for time_select helper
-# by Daniel Roux ( daniel.roux@gmail.com)
-# Added missing translations for Rails 2 and 3
-# by Carlos González ( carlosdavid.gonzalez@gmail.com)
-# Corrected by Eloy Serra Labán: http://goo.gl/i9Kts, /nQ928, /XfKaX
-
-es-MX:
- number:
- percentage:
- format:
- delimiter: ","
- currency:
- format:
- format: "%u%n"
- unit: "$"
- separator: "."
- delimiter: ","
- precision: 2
- significant: false
- strip_insignificant_zeros: false
- format:
- delimiter: ","
- precision: 2
- significant: false
- strip_insignificant_zeros: false
- separator: "."
- human:
- format:
- delimiter: ","
- precision: 3
- significant: true
- strip_insignificant_zeros: true
- storage_units:
- format: "%n %u"
- units:
- byte:
- one: "Byte"
- other: "Bytes"
- kb: "KB"
- mb: "MB"
- gb: "GB"
- tb: "TB"
- decimal_units:
- format: "%n %u"
- units:
- unit: ""
- thousand: "mil"
- million: "millón"
- billion: "mil millones"
- trillion: "billón"
- quadrillion: "mil billones"
- precision:
- format:
- delimiter: ","
-
- date:
- order:
- - :day
- - :month
- - :year
- abbr_day_names:
- - dom
- - lun
- - mar
- - mié
- - jue
- - vie
- - sáb
- abbr_month_names:
- - ~
- - ene
- - feb
- - mar
- - abr
- - may
- - jun
- - jul
- - ago
- - sep
- - oct
- - nov
- - dic
- day_names:
- - domingo
- - lunes
- - martes
- - miércoles
- - jueves
- - viernes
- - sábado
- month_names:
- - ~
- - enero
- - febrero
- - marzo
- - abril
- - mayo
- - junio
- - julio
- - agosto
- - septiembre
- - octubre
- - noviembre
- - diciembre
- formats:
- short: "%d de %b"
- default: "%d/%m/%Y"
- long: "%A, %d de %B de %Y"
- time:
- formats:
- short: "%d de %b a las %H:%M hrs"
- default: "%a, %d de %b de %Y a las %H:%M:%S %Z"
- long: "%A, %d de %B de %Y a las %I:%M %p"
- am: "am"
- pm: "pm"
-
- support:
- array:
- words_connector: ", "
- two_words_connector: " y "
- last_word_connector: " y "
-
- select:
- prompt: "Por favor selecciona"
-
- datetime:
- distance_in_words:
- half_a_minute: "medio minuto"
- less_than_x_seconds:
- one: "menos de 1 segundo"
- other: "menos de %{count} segundos"
- x_seconds:
- one: "1 segundo"
- other: "%{count} segundos"
- less_than_x_minutes:
- one: "menos de 1 minuto"
- other: "menos de %{count} minutos"
- x_minutes:
- one: "1 minuto"
- other: "%{count} minutos"
- about_x_hours:
- one: "cerca de 1 hora"
- other: "cerca de %{count} horas"
- x_days:
- one: "1 día"
- other: "%{count} días"
- about_x_months:
- one: "cerca de 1 mes"
- other: "cerca de %{count} meses"
- x_months:
- one: "1 mes"
- other: "%{count} meses"
- about_x_years:
- other: "cerca de %{count} años"
- one: "cerca de 1 año"
- over_x_years:
- one: "más de 1 año"
- other: "más de %{count} años"
- almost_x_years:
- one: "casi 1 año"
- other: "casi %{count} años"
- prompts:
- year: 'Año'
- month: 'Mes'
- day: 'Día'
- hour: 'Hora'
- minute: 'Minuto'
- second: 'Segundos'
-
- helpers:
- select:
- prompt: "Por favor selecciona"
-
- submit:
- create: 'Crear %{model}'
- update: 'Actualizar %{model}'
- submit: 'Guardar %{model}'
-
- errors:
- format: "%{attribute} %{message}"
-
- messages: &errors_messages
- inclusion: "no está incluído en la lista"
- exclusion: "está reservado"
- invalid: "es inválido"
- confirmation: "no coincide con la confirmación"
- blank: "no puede estar en blanco"
- empty: "no puede estar vacío"
- not_a_number: "no es un número"
- not_an_integer: "debe ser un entero"
- less_than: "debe ser menor que %{count}"
- less_than_or_equal_to: "debe ser menor o igual que %{count}"
- greater_than: "debe ser mayor que %{count}"
- greater_than_or_equal_to: "debe ser mayor o igual que %{count}"
- too_short:
- one: "es demasiado corto (mínimo 1 caracter)"
- other: "es demasiado corto (mínimo %{count} caracteres)"
- too_long:
- one: "es demasiado largo (máximo 1 caracter)"
- other: "es demasiado largo (máximo %{count} caracteres)"
- equal_to: "debe ser igual a %{count}"
- wrong_length:
- one: "longitud errónea (debe ser de 1 caracter)"
- other: "longitud errónea (debe ser de %{count} caracteres)"
- accepted: "debe ser aceptado"
- even: "debe ser un número par"
- odd: "debe ser un número non"
- taken: "ya ha sido tomado"
- record_invalid: "La validación falló: %{errors}"
- template: &errors_template
- header:
- one: "%{model} no pudo guardarse debido a 1 error"
- other: "%{model} no pudo guardarse debido a %{count} errores"
- body: "Revise que los siguientes campos sean válidos:"
-
- activerecord:
- errors:
- messages:
- <<: *errors_messages
- template:
- <<: *errors_template
- full_messages:
- format: "%{attribute} %{message}"
+++ /dev/null
-# Spanish as spoken in Perú (es-PE) translations for Rails
-# by Peter Baker (pcbaker@gmail.com)
-# modificado por CCP
-# Corrected by Eloy Serra Labán: http://goo.gl/i9Kts, /nQ928, /XfKaX
-
-es-PE:
- number:
- percentage:
- format:
- delimiter: ","
- currency:
- format: # Nuevos Soles
- format: "%u%n"
- unit: "S./"
- separator: "."
- delimiter: ","
- precision: 2
- significant: false
- strip_insignificant_zeros: false
- format:
- delimiter: ","
- precision: 2
- separator: "."
- significant: false
- strip_insignificant_zeros: false
- human:
- format:
- delimiter: ","
- precision: 2
- significant: true
- strip_insignificant_zeros: true
- decimal_units:
- format: "%n %u"
- units:
- unit: ""
- storage_units:
- format: "%n %u"
- units:
- byte:
- one: "Byte"
- other: "Bytes"
- kb: "KB"
- mb: "MB"
- gb: "GB"
- tb: "TB"
- precision:
- format:
- delimiter: ","
-
- date:
- order:
- - :day
- - :month
- - :year
- abbr_day_names:
- - dom
- - lun
- - mar
- - mié
- - jue
- - vie
- - sáb
- abbr_month_names:
- - ~
- - ene
- - feb
- - mar
- - abr
- - may
- - jun
- - jul
- - ago
- - sep
- - oct
- - nov
- - dic
- day_names:
- - domingo
- - lunes
- - martes
- - miércoles
- - jueves
- - viernes
- - sábado
- month_names:
- - ~
- - enero
- - febrero
- - marzo
- - abril
- - mayo
- - junio
- - julio
- - agosto
- - septiembre
- - octubre
- - noviembre
- - diciembre
- formats:
- short: "%d de %b"
- default: "%d/%m/%Y"
- long: "%A, %d de %B del %Y"
- time:
- formats:
- short: "%d de %b a las %H:%M hrs"
- default: "%a, %d de %b del %Y a las %H:%M:%S %Z"
- long: "%A, %d de %B del %Y a las %I:%M %p"
- am: "am"
- pm: "pm"
-
- datetime:
- distance_in_words:
- half_a_minute: "medio minuto"
- less_than_x_seconds:
- one: "menos de 1 segundo"
- other: "menos de %{count} segundos"
- x_seconds:
- one: "1 segundo"
- other: "%{count} segundos"
- less_than_x_minutes:
- one: "menos de 1 minuto"
- other: "menos de %{count} minutos"
- x_minutes:
- one: "1 minuto"
- other: "%{count} minutos"
- about_x_hours:
- one: "cerca de 1 hora"
- other: "cerca de %{count} horas"
- x_days:
- one: "1 día"
- other: "%{count} días"
- about_x_months:
- one: "cerca de 1 mes"
- other: "cerca de %{count} meses"
- x_months:
- one: "1 mes"
- other: "%{count} meses"
- about_x_years:
- other: "cerca de %{count} años"
- one: "cerca de 1 año"
- over_x_years:
- one: "más de 1 año"
- other: "más de %{count} años"
- prompts:
- hour: 'Hora'
- minute: 'Minuto'
- second: 'Segundo'
-
- errors:
- format: "%{attribute} %{message}"
- template: &errors_template
- header:
- one: "%{model} no pudo guardarse debido a 1 error"
- other: "%{model} no pudo guardarse debido a %{count} errores"
- body: "Revise que los siguientes campos sean válidos:"
- messages: &errors_messages
- record_invalid: "Falla de validación: %{errors}"
- inclusion: "no está incluído en la lista"
- exclusion: "está reservado"
- invalid: "es inválido"
- confirmation: "no coincide con la confirmación"
- accepted: "debe ser aceptado"
- blank: "no puede estar en blanco"
- empty: "no puede estar vacío"
- not_a_number: "no es un número"
- taken: "ya ha sido tomado"
- less_than: "debe ser menor que %{count}"
- less_than_or_equal_to: "debe ser menor o igual que %{count}"
- greater_than: "debe ser mayor que %{count}"
- greater_than_or_equal_to: "debe ser mayor o igual que %{count}"
- too_short:
- one: "es demasiado corto (mínimo 1 caracter)"
- other: "es demasiado corto (mínimo %{count} caracteres)"
- too_long:
- one: "es demasiado largo (máximo 1 caracter)"
- other: "es demasiado largo (máximo %{count} caracteres)"
- equal_to: "debe ser igual a %{count}"
- wrong_length:
- one: "longitud errónea (debe ser de 1 caracter)"
- other: "longitud errónea (debe ser de %{count} caracteres)"
- even: "debe ser un número par"
- odd: "debe ser un número non"
-
- activerecord:
- errors:
- messages:
- <<: *errors_messages
- template:
- <<: *errors_template
- full_messages:
- format: "%{attribute} %{message}"
\ No newline at end of file
+++ /dev/null
-# Spanish translations for Rails
-# by Francisco Fernando García Nieto (ffgarcianieto@gmail.com)
-# contributors:
-# - Tsutomu Kuroda - http://github.com/kuroda (t-kuroda@oiax.jp)
-# Corrected by Eloy Serra Labán: http://goo.gl/i9Kts, /nQ928, /XfKaX
-
-"es":
- date:
- formats:
- default: "%d/%m/%Y"
- short: "%d de %b"
- long: "%d de %B de %Y"
-
- day_names:
- - domingo
- - lunes
- - martes
- - miércoles
- - jueves
- - viernes
- - sábado
- abbr_day_names:
- - dom
- - lun
- - mar
- - mié
- - jue
- - vie
- - sáb
-
- month_names:
- - ~
- - enero
- - febrero
- - marzo
- - abril
- - mayo
- - junio
- - julio
- - agosto
- - septiembre
- - octubre
- - noviembre
- - diciembre
- abbr_month_names:
- - ~
- - ene
- - feb
- - mar
- - abr
- - may
- - jun
- - jul
- - ago
- - sep
- - oct
- - nov
- - dic
- order:
- - :day
- - :month
- - :year
-
- time:
- formats:
- default: "%A, %d de %B de %Y %H:%M:%S %z"
- short: "%d de %b %H:%M"
- long: "%d de %B de %Y %H:%M"
- am: "am"
- pm: "pm"
-
- support:
- array:
- words_connector: ", "
- two_words_connector: " y "
- last_word_connector: ", y "
-
- select:
- prompt: "Por favor seleccione"
-
- number:
- format:
- separator: ","
- delimiter: "."
- precision: 3
- significant: false
- strip_insignificant_zeros: false
-
- currency:
- format:
- format: "%n %u"
- unit: "€"
- separator: ","
- delimiter: "."
- precision: 2
- significant: false
- strip_insignificant_zeros: false
-
- percentage:
- format:
- delimiter: ""
-
- precision:
- format:
- delimiter: ""
-
- human:
- format:
- delimiter: ""
- precision: 1
- significant: true
- strip_insignificant_zeros: true
- storage_units:
- format: "%n %u"
- units:
- byte:
- one: "Byte"
- other: "Bytes"
- kb: "KB"
- mb: "MB"
- gb: "GB"
- tb: "TB"
- decimal_units:
- format: "%n %u"
- units:
- unit: ""
- thousand: "mil"
- million: "millón"
- billion: "mil millones"
- trillion: "billón"
- quadrillion: "mil billones"
-
- datetime:
- distance_in_words:
- half_a_minute: "medio minuto"
- less_than_x_seconds:
- one: "menos de 1 segundo"
- other: "menos de %{count} segundos"
- x_seconds:
- one: "1 segundo"
- other: "%{count} segundos"
- less_than_x_minutes:
- one: "menos de 1 minuto"
- other: "menos de %{count} minutos"
- x_minutes:
- one: "1 minuto"
- other: "%{count} minutos"
- about_x_hours:
- one: "alrededor de 1 hora"
- other: "alrededor de %{count} horas"
- x_days:
- one: "1 día"
- other: "%{count} días"
- about_x_months:
- one: "alrededor de 1 mes"
- other: "alrededor de %{count} meses"
- x_months:
- one: "1 mes"
- other: "%{count} meses"
- about_x_years:
- one: "alrededor de 1 año"
- other: "alrededor de %{count} años"
- over_x_years:
- one: "más de 1 año"
- other: "más de %{count} años"
- almost_x_years:
- one: "casi 1 año"
- other: "casi %{count} años"
- prompts:
- year: "Año"
- month: "Mes"
- day: "Día"
- hour: "Hora"
- minute: "Minutos"
- second: "Segundos"
-
- helpers:
- select:
- prompt: "Por favor seleccione"
-
- submit:
- create: 'Crear %{model}'
- update: 'Actualizar %{model}'
- submit: 'Guardar %{model}'
-
- errors:
- format: "%{attribute} %{message}"
-
- messages: &errors_messages
- inclusion: "no está incluido en la lista"
- exclusion: "está reservado"
- invalid: "no es válido"
- confirmation: "no coincide con la confirmación"
- accepted: "debe ser aceptado"
- empty: "no puede estar vacío"
- blank: "no puede estar en blanco"
- too_long: "es demasiado largo (%{count} caracteres máximo)"
- too_short: "es demasiado corto (%{count} caracteres mínimo)"
- wrong_length: "no tiene la longitud correcta (%{count} caracteres exactos)"
- not_a_number: "no es un número"
- not_an_integer: "debe ser un entero"
- greater_than: "debe ser mayor que %{count}"
- greater_than_or_equal_to: "debe ser mayor que o igual a %{count}"
- equal_to: "debe ser igual a %{count}"
- less_than: "debe ser menor que %{count}"
- less_than_or_equal_to: "debe ser menor que o igual a %{count}"
- odd: "debe ser impar"
- even: "debe ser par"
- taken: "ya está en uso"
- record_invalid: "La validación falló: %{errors}"
- template: &errors_template
- header:
- one: "No se pudo guardar este/a %{model} porque se encontró 1 error"
- other: "No se pudo guardar este/a %{model} porque se encontraron %{count} errores"
- body: "Se encontraron problemas con los siguientes campos:"
-
- activerecord:
- errors:
- messages:
- <<: *errors_messages
- template:
- <<: *errors_template
-
- full_messages:
- format: "%{attribute} %{message}"
+++ /dev/null
-# Estonian localization for Ruby on Rails 2 and 3
-# by Zahhar Kirillov <zahhar@gmail.com>
-# contributors:
-# - Mart Karu - http://github.com/martkaru <karu@metal.ee>
-
-et:
- date:
- formats:
- default: "%d.%m.%Y"
- short: "%d.%m.%y"
- long: "%d. %B %Y"
-
- day_names:
- - pühapäev
- - esmaspäev
- - teisipäev
- - kolmapäev
- - neljapäev
- - reede
- - laupäev
- abbr_day_names:
- - P
- - E
- - T
- - K
- - N
- - R
- - L
-
- month_names:
- - ~
- - jaanuar
- - veebruar
- - märts
- - aprill
- - mai
- - juuni
- - juuli
- - august
- - september
- - oktoober
- - november
- - detsember
- abbr_month_names:
- - ~
- - jaan.
- - veebr.
- - märts
- - apr.
- - mai
- - juuni
- - juuli
- - aug.
- - sept.
- - okt.
- - nov.
- - dets.
- order:
- - :day
- - :month
- - :year
-
- time:
- formats:
- default: "%d. %B %Y, %H:%M"
- short: "%d.%m.%y, %H:%M"
- long: "%a, %d. %b %Y, %H:%M:%S %z"
-
- am: "enne lõunat"
- pm: "pärast lõunat"
-
- support:
- array:
- words_connector: ", "
- two_words_connector: " ja "
- last_word_connector: " ja "
-
- select:
- prompt: "Palun vali"
-
- number:
- format:
- separator: ","
- delimiter: " "
- precision: 2
- significant: false
- strip_insignificant_zeros: false
-
- currency:
- format:
- format: "%n %u"
- unit: "€"
- separator: ","
- delimiter: " "
- precision: 2
- significant: false
- strip_insignificant_zeros: false
-
- percentage:
- format:
- delimiter: ""
-
- precision:
- format:
- delimiter: ""
-
- human:
- format:
- delimiter: ""
- precision: 1
- significant: true
- strip_insignificant_zeros: true
- storage_units:
- format: "%n %u"
- units:
- byte:
- one: "bait"
- other: "baiti"
- kb: "KB"
- mb: "MB"
- gb: "GB"
- tb: "TB"
- decimal_units:
- format: "%n %u"
- units:
- unit: ""
- thousand: tuhat
- million: miljon
- billion: miljard
- trillion: triljon
- quadrillion: kvadriljon
-
- datetime:
- distance_in_words:
- half_a_minute: "pool minutit"
- less_than_x_seconds:
- one: "vähem kui %{count} sekund"
- other: "vähem kui %{count} sekundit"
- x_seconds:
- one: "%{count} sekund"
- other: "%{count} sekundit"
- less_than_x_minutes:
- one: "vähem kui %{count} minut"
- other: "vähem kui %{count} minutit"
- x_minutes:
- one: "%{count} minut"
- other: "%{count} minutit"
- about_x_hours:
- one: "umbes %{count} tund"
- other: "umbes %{count} tundi"
- x_days:
- one: "%{count} päev"
- other: "%{count} päeva"
- about_x_months:
- one: "umbes %{count} kuu"
- other: "umbes %{count} kuud"
- x_months:
- one: "%{count} kuu"
- other: "%{count} kuud"
- about_x_years:
- one: "umbes %{count} aasta"
- other: "umbes %{count} aastat"
- over_x_years:
- one: "üle %{count} aasta"
- other: "üle %{count} aastat"
- almost_x_years:
- one: "peaaegu üks aasta"
- other: "peaaegu %{count} aastat"
- prompts:
- year: "Aasta"
- month: "Kuu"
- day: "Päev"
- hour: "Tunde"
- minute: "Minutit"
- second: "Sekundit"
-
- helpers:
- select:
- prompt: "Palun vali"
-
- submit:
- create: 'Loo uus %{model}'
- update: 'Uuenda objekti %{model}'
- submit: 'Salvesta %{model}'
-
- errors:
- format: "%{attribute} %{message}"
- messages: &errors_messages
- inclusion: "ei leidu nimekirjas"
- exclusion: "on reserveeritud"
- invalid: "ei ole korrektne"
- confirmation: "ei vasta kinnitusele"
- accepted: "peab olema heaks kiidetud"
- empty: "on tühi"
- blank: "on täitmata"
- too_long: "on liiga pikk (maksimum on %{count} tähemärki)"
- too_short: "on liiga lühike (miinimum on %{count} tähemärki)"
- wrong_length: "on vale pikkusega (peab olema %{count} tähemärki)"
- not_a_number: "ei ole number"
- not_an_integer: "peab olema täisarv"
- greater_than: "ei tohi olla suurem kui %{count}"
- greater_than_or_equal_to: "peab olema suurem või võrdne arvuga %{count}"
- equal_to: "peab võrdne arvuga %{count}"
- less_than: "peab olema vähem kui %{count}"
- less_than_or_equal_to: "peab olema vähem või võrdne arvuga %{count}"
- odd: "peab olema paaritu arv"
- even: "peab olema paarisarv"
- taken: "on juba võetud"
- record_invalid: "Valideerimine ebaõnnestus: %{errors}"
- template: &errors_template
- header:
- one: "Üks viga takistas objekti %{model} salvestamist"
- other: "%{count} viga takistasid objekti %{model} salvestamist"
- body: "Probleeme ilmnes järgmiste väljadega:"
-
- activerecord:
- errors:
- messages:
- <<: *errors_messages
- template:
- <<: *errors_template
- full_messages:
- format: "%{attribute} %{message}"
+++ /dev/null
-# Basque translations for Rails
-# by Esti Alvarez (esti@efaber.net)
-
-
-"eu":
- date:
- formats:
- default: "%Y/%m/%e"
- short: "%b %e"
- long: "%Y(e)ko %Bk %e"
-
- day_names:
- - Igandea
- - Astelehena
- - Asteartea
- - Asteazkena
- - Osteguna
- - Ostirala
- - Larunbata
- abbr_day_names:
- - Igan
- - Astel
- - Astear
- - Asteaz
- - Oste
- - Osti
- - Lar
-
- month_names:
- - ~
- - Urtarrila
- - Otsaila
- - Martxoa
- - Apirila
- - Maiatza
- - Ekaina
- - Uztaila
- - Abuztua
- - Iraila
- - Urria
- - Azaroa
- - Abendua
- abbr_month_names:
- - ~
- - Urt
- - Ots
- - Mar
- - Api
- - Mai
- - Eka
- - Uzt
- - Abu
- - Ira
- - Urr
- - Aza
- - Aben
- order:
- - :year
- - :month
- - :day
-
- time:
- formats:
- default: "%A, %Y(e)ko %Bren %e %H:%M:%S %z"
- short: "%b %e, %H:%M"
- long: "%Y(e)ko %Bren %e, %H:%M"
- am: "am"
- pm: "pm"
-
- # Used in array.to_sentence.
- support:
- array:
- words_connector: ", "
- two_words_connector: " eta "
- last_word_connector: " eta "
-
- select:
- prompt: "Aukeratu mesedez"
-
- number:
- format:
- separator: ","
- delimiter: "."
- precision: 3
- significant: false
- strip_insignificant_zeros: false
-
- currency:
- format:
- format: "%n %u"
- unit: "€"
- separator: ","
- delimiter: "."
- precision: 2
- significant: false
- strip_insignificant_zeros: false
-
- percentage:
- format:
- delimiter: ""
-
- precision:
- format:
- delimiter: ""
-
- human:
- format:
- delimiter: ""
- precision: 3
- significant: true
- strip_insignificant_zeros: true
- storage_units:
- format: "%n %u"
- units:
- byte:
- one: "Byte"
- other: "Byte"
- kb: "KB"
- mb: "MB"
- gb: "GB"
- tb: "TB"
- decimal_units:
- format: "%n %u"
- units:
- unit: ""
- thousand: "Mila"
- million: "Milioi"
- billion: "Mila milioi"
- trillion: "Trilioi"
- quadrillion: "Kuatrilioi"
-
- datetime:
- distance_in_words:
- half_a_minute: "minutu erdi"
- less_than_x_seconds:
- one: "segundu bat baino gutxiago"
- other: "%{count} segundu baino gutxiago"
- x_seconds:
- one: "segundu bat"
- other: "%{count} segundu"
- less_than_x_minutes:
- one: "1 minutu bat baino gutxiago"
- other: "%{count} minutu baino gutxiago"
- x_minutes:
- one: "minutu bat"
- other: "%{count} minutu"
- about_x_hours:
- one: "ordu bat inguru"
- other: "%{count} ordu inguru"
- x_days:
- one: "egun bat"
- other: "%{count} egun"
- about_x_months:
- one: "hilabete bat inguru"
- other: "%{count} hilabete inguru"
- x_months:
- one: "hilabete bat"
- other: "%{count} hilabete"
- about_x_years:
- one: "urte bat inguru"
- other: "%{count} urte inguru"
- over_x_years:
- one: "urte bat baino gehiago"
- other: "%{count} urte baino gehiago"
- almost_x_years:
- one: "ia urte bat"
- other: "ia %{count} urte"
- prompts:
- year: "Urte"
- month: "Hilabete"
- day: "Egun"
- hour: "Ordu"
- minute: "Minutu"
- second: "Segundu"
-
- helpers:
- select:
- prompt: "Mesedez, aukeratu"
-
- submit:
- create: '%{model}a eratu'
- update: '%{model}a eguneratu'
- submit: '%{model}a gorde'
-
- errors:
- format: "%{attribute} %{message}"
-
- messages: &errors_messages
- inclusion: "ez da zerrendako aukera bat"
- exclusion: "erreserbatuta dago"
- invalid: "ez da zuzena"
- confirmation: "ez dator bat konfirmazioarekin"
- accepted: "onartuta izan behar da"
- empty: "ezin da hutsik egon"
- blank: "ezin da zuriz utzi"
- too_long: "luzeegia da (%{count} karaktere gehienez)"
- too_short: "laburregia da (%{count} karaktere gutxienez)"
- wrong_length: "ez du luzeera zuzena (%{count} karaktere izan behar ditu)"
- not_a_number: "ez da zenbaki bat"
- not_an_integer: "zenbaki osoa izan behar da"
- greater_than: "%{count} baino handiagoa izan behar da"
- greater_than_or_equal_to: "%{count} baino handiago edo berdin izan behar da"
- equal_to: "%{count} izan behar da"
- less_than: "%{count} baino txikiago izan behar da"
- less_than_or_equal_to: "%{count} baino txikiago edo berdin izan behar da"
- odd: "bakoitia izan behar du"
- even: "bikoitia izan behar du"
- taken: "hartuta dago"
- record_invalid: "Balioztatze arazoa: %{errors}"
- template: &errors_template
- header:
- one: "Errore batek ezinezkoa egin du %{model} hau gordetzea"
- other: "%{count} errorek ezinezkoa egiten dute %{model} hau gordetzea"
- body: "Arazoak egon dira ondoko eremuekin:"
-
- activerecord:
- errors:
- messages:
- <<: *errors_messages
- template:
- <<: *errors_template
-
- full_messages:
- format: "%{attribute} %{message}"
-
+++ /dev/null
-# Persian translations for Ruby on Rails
-# by Reza (reza@balatarin.com)
-# Rails 3 update by rbjarnason
-
-"fa":
- date:
- formats:
- default: "%Y/%m/%d"
- short: "%m/%d"
- long: "%e %B %Y"
-
- day_names:
- - یکشنبه
- - دوشنبه
- - سهشنبه
- - چهارشنبه
- - پنجشنبه
- - جمعه
- - شنبه
- abbr_day_names:
- - ی
- - د
- - س
- - چ
- - پ
- - ج
- - ش
-
- month_names:
- - ~
- - ژانویه
- - فوریه
- - مارس
- - آوریل
- - مه
- - ژوئن
- - ژوئیه
- - اوت
- - سپتامبر
- - اکتبر
- - نوامبر
- - دسامبر
- abbr_month_names:
- - ~
- - ژانویه
- - فوریه
- - مارس
- - آوریل
- - مه
- - ژوئن
- - ژوئیه
- - اوت
- - سپتامبر
- - اکتبر
- - نوامبر
- - دسامبر
- order:
- - :day
- - :month
- - :year
-
- time:
- formats:
- default: "%A، %e %B %Y، ساعت %H:%M:%S (%Z)"
- short: "%e %B، ساعت %H:%M"
- long: "%e %B %Y، ساعت %H:%M"
- am: "قبل از ظهر"
- pm: "بعد از ظهر"
-
- support:
- array:
- words_connector: "، "
- two_words_connector: " و "
- last_word_connector: "، و "
-
- select:
- prompt: "لطفا انتخاب کنید"
-
- number:
- format:
- separator: '٫'
- delimiter: '٬'
- precision: 2
- significant: false
- strip_insignificant_zeros: false
-
- currency:
- format:
- unit: 'ریال'
- format: '%n %u'
- separator: '٫'
- delimiter: '٬'
- precision: 0
- significant: false
- strip_insignificant_zeros: false
-
- percentage:
- format:
- delimiter: ""
-
- precision:
- format:
- delimiter: ""
-
- human:
- format:
- delimiter: ""
- precision: 1
- significant: true
- strip_insignificant_zeros: true
- storage_units:
- format: "%n %u"
- units:
- byte:
- one: "بایت"
- other: "بایت"
- kb: "کیلوبایت"
- mb: "مگابایت"
- gb: "گیگابایت"
- tb: "ترابایت"
- decimal_units:
- format: "%n %u"
- units:
- unit: ""
- thousand: هزار
- million: میلیون
- billion: بیلیون
- trillion: تریلیون
- quadrillion: کادریلیون
-
- datetime:
- distance_in_words:
- half_a_minute: "نیم دقیقه"
- less_than_x_seconds:
- one: "۱ ثانیه"
- other: "کمتر از %{count} ثانیه"
- x_seconds:
- one: "۱ ثانیه"
- other: "%{count} ثانیه"
- less_than_x_minutes:
- one: "کمتر از ۱ دقیقه"
- other: "کمتر از %{count} دقیقه"
- x_minutes:
- one: "۱ دقیقه"
- other: "%{count} دقیقه"
- about_x_hours:
- one: "حدود ۱ ساعت"
- other: "حدود %{count} ساعت"
- x_days:
- one: "۱ روز"
- other: "%{count} روز"
- about_x_months:
- one: "حدود ۱ ماه"
- other: "حدود %{count} ماه"
- x_months:
- one: "۱ ماه"
- other: "%{count} ماه"
- about_x_years:
- one: "حدود ۱ سال"
- other: "حدود %{count} سال"
- over_x_years:
- one: "بیش از ۱ سال"
- other: "بیش از %{count} سال"
- almost_x_years:
- one: "حدود ۱ سال"
- other: "حدود %{count} سال"
- prompts:
- year: "سال"
- month: "ماه"
- day: "روز"
- hour: "ساعت"
- minute: "دقیقه"
- second: "ثانیه"
-
- helpers:
- select:
- prompt: "لطفا انتخاب کنید"
-
- submit:
- create: '%{model} ایجاد'
- update: '%{model} بروز'
- submit: '%{model} ذخیره'
-
- errors:
- format: "%{attribute} %{message}"
-
- messages: &errors_messages
- inclusion: "در لیست موجود نیست"
- exclusion: "رزرو است"
- invalid: "نامعتبر است"
- confirmation: "با تایید نمیخواند"
- accepted: "باید پذیرفته شود"
- empty: "نمیتواند خالی باشد"
- blank: "نباید خالی باشد"
- too_long: "بلند است (حداکثر %{count} کاراکتر)"
- too_short: "کوتاه است (حداقل %{count} کاراکتر)"
- wrong_length: "نااندازه است (باید %{count} کاراکتر باشد)"
- not_a_number: "عدد نیست"
- not_an_integer: "عدد صحیح نیست"
- greater_than: "باید بزرگتر از %{count} باشد"
- greater_than_or_equal_to: "باید بزرگتر یا برابر %{count} باشد"
- equal_to: "باید برابر %{count} باشد"
- less_than: "باید کمتر از %{count} باشد"
- less_than_or_equal_to: "باید کمتر یا برابر %{count} باشد"
- odd: "باید فرد باشد"
- even: "باید زوج باشد"
- taken: "پیشتر گرفته شده"
- record_invalid: "رکورد نامعتبر است %{errors}"
- template: &errors_template
- header:
- one: "1 خطا جلوی ذخیره این %{model} را گرفت"
- other: "%{count} خطا جلوی ذخیره این %{model} را گرفت"
- body: "موارد زیر مشکل داشت:"
-
- activerecord:
- errors:
- messages:
- <<: *errors_messages
- template:
- <<: *errors_template
- full_messages:
- format: "%{attribute} %{message}"
+++ /dev/null
-# Finnish translations for Ruby on Rails
-# by Marko Seppä (marko.seppa@gmail.com)
-#
-# corrected by Petri Kivikangas (pkivik@gmail.com)
-# corrected and amended by Niklas Laxström (niklas.laxstrom+rails@gmail.com) 2009
-# Rails 3 conversion by rbjarnason
-
-fi:
- date:
- formats:
- default: "%e. %Bta %Y"
- long: "%A %e. %Bta %Y"
- short: "%e.%m.%Y"
-
- day_names:
- - sunnuntai
- - maanantai
- - tiistai
- - keskiviikko
- - torstai
- - perjantai
- - lauantai
- abbr_day_names:
- - su
- - ma
- - ti
- - ke
- - to
- - pe
- - la
-
- month_names:
- - ~
- - tammikuu
- - helmikuu
- - maaliskuu
- - huhtikuu
- - toukokuu
- - kesäkuu
- - heinäkuu
- - elokuu
- - syyskuu
- - lokakuu
- - marraskuu
- - joulukuu
- abbr_month_names:
- - ~
- - tammi
- - helmi
- - maalis
- - huhti
- - touko
- - kesä
- - heinä
- - elo
- - syys
- - loka
- - marras
- - joulu
- order:
- - :day
- - :month
- - :year
-
- time:
- formats:
- default: "%A %e. %Bta %Y %H:%M:%S %z"
- short: "%e.%m. %H.%M"
- long: "%e. %Bta %Y %H.%M"
- am: "aamupäivä"
- pm: "iltapäivä"
-
- support:
- array:
- words_connector: ", "
- two_words_connector: " ja "
- last_word_connector: " ja "
-
- select:
- prompt: "Valitse"
-
- number:
- format:
- separator: "."
- delimiter: ","
- precision: 3
- significant: false
- strip_insignificant_zeros: false
-
- currency:
- format:
- format: "%n %u"
- unit: "€"
- separator: ","
- delimiter: "."
- precision: 2
- significant: false
- strip_insignificant_zeros: false
-
- percentage:
- format:
- delimiter: ""
-
- precision:
- format:
- delimiter: ""
-
- human:
- format:
- delimiter: ""
- precision: 3
- significant: true
- strip_insignificant_zeros: true
- storage_units:
- format: "%n %u"
- units:
- byte:
- one: "tavu"
- other: "tavua"
- kb: "kB"
- mb: "MB"
- gb: "GB"
- tb: "TB"
- decimal_units:
- format: "%n %u"
- units:
- unit: ""
- thousand: Tuhatta
- million: Euroa
- billion: Miljardia
- trillion: Biljoona
- quadrillion: Kvadriljoona
-
- datetime:
- distance_in_words:
- half_a_minute: "puoli minuuttia"
- less_than_x_seconds:
- one: "alle sekunti"
- other: "alle %{count} sekuntia"
- x_seconds:
- one: "sekunti"
- other: "%{count} sekuntia"
- less_than_x_minutes:
- one: "alle minuutti"
- other: "alle %{count} minuuttia"
- x_minutes:
- one: "minuutti"
- other: "%{count} minuuttia"
- about_x_hours:
- one: "noin tunti"
- other: "noin %{count} tuntia"
- x_days:
- one: "päivä"
- other: "%{count} päivää"
- about_x_months:
- one: "noin kuukausi"
- other: "noin %{count} kuukautta"
- x_months:
- one: "kuukausi"
- other: "%{count} kuukautta"
- about_x_years:
- one: "vuosi"
- other: "noin %{count} vuotta"
- over_x_years:
- one: "yli vuosi"
- other: "yli %{count} vuotta"
- almost_x_years:
- one: "melkein yksi vuosi"
- other: "melkein %{count} vuotta"
- prompts:
- year: "Vuosi"
- month: "Kuukausi"
- day: "Päivä"
- hour: "Tunti"
- minute: "Minuutti"
- second: "Sekunti"
-
- helpers:
- select:
- prompt: "Valitse"
-
- submit:
- create: 'Luo %{model}'
- update: 'Päivitä %{model}'
- submit: 'Tallenna %{model}'
-
- errors:
- format: "%{attribute} %{message}"
-
- messages: &errors_messages
- inclusion: "ei löydy listasta"
- exclusion: "on varattu"
- invalid: "on kelvoton"
- confirmation: "ei vastaa varmennusta"
- accepted: "täytyy olla hyväksytty"
- empty: "ei voi olla tyhjä"
- blank: "ei voi olla sisällötön"
- too_long: "on liian pitkä (saa olla enintään %{count} merkkiä)"
- too_short: "on liian lyhyt (oltava vähintään %{count} merkkiä)"
- wrong_length: "on väärän pituinen (täytyy olla täsmälleen %{count} merkkiä)"
- not_an_integer: "on kokonaisluku"
- not_a_number: "ei ole luku"
- greater_than: "täytyy olla suurempi kuin %{count}"
- greater_than_or_equal_to: "täytyy olla suurempi tai yhtä suuri kuin %{count}"
- equal_to: "täytyy olla yhtä suuri kuin %{count}"
- less_than: "täytyy olla pienempi kuin %{count}"
- less_than_or_equal_to: "täytyy olla pienempi tai yhtä suuri kuin %{count}"
- odd: "täytyy olla pariton"
- even: "täytyy olla parillinen"
- taken: "on jo käytössä"
- record_invalid: "Validointi epäonnistui: %{errors}"
- template: &errors_template
- header:
- one: "Virhe syötteessä esti mallin %{model} tallentamisen"
- other: "%{count} virhettä esti mallin %{model} tallentamisen"
- body: "Seuraavat kentät aiheuttivat ongelmia:"
-
- activerecord:
- errors:
- messages:
- <<: *errors_messages
- template:
- <<: *errors_template
-
- full_messages:
- format: "%{attribute} %{message}"
+++ /dev/null
-# French translations for Ruby on Rails
-# by Christian Lescuyer (christian@flyingcoders.com)
-# contributors:
-# - Sebastien Grosjean - ZenCocoon.com
-# - Bruno Michel - http://github.com/nono
-# - Tsutomu Kuroda - http://github.com/kuroda (t-kuroda@oiax.jp)
-#
-# French Canadian adjustments
-# by Serafim Junior Dos Santos Fagundes <serafim@cyb3r.ca>
-
-fr-CA:
- date:
- formats:
- default: "%Y-%m-%d"
- short: "%y-%m-%d"
- long: "%d %B %Y"
- day_names:
- - dimanche
- - lundi
- - mardi
- - mercredi
- - jeudi
- - vendredi
- - samedi
- abbr_day_names:
- - dim
- - lun
- - mar
- - mer
- - jeu
- - ven
- - sam
- month_names:
- - ~
- - janvier
- - février
- - mars
- - avril
- - mai
- - juin
- - juillet
- - août
- - septembre
- - octobre
- - novembre
- - décembre
- abbr_month_names:
- - ~
- - jan.
- - fév.
- - mar.
- - avr.
- - mai
- - juin
- - juil.
- - août
- - sept.
- - oct.
- - nov.
- - déc.
- order:
- - :year
- - :month
- - :day
-
- time:
- formats:
- default: "%H:%M:%S"
- short: "%H:%M"
- long: "%A %d %B %Y %H:%M"
- am: 'am'
- pm: 'pm'
-
- datetime:
- distance_in_words:
- half_a_minute: "une demi-minute"
- less_than_x_seconds:
- zero: "moins d'une seconde"
- one: "moins d'une seconde"
- other: "moins de %{count} secondes"
- x_seconds:
- one: "1 seconde"
- other: "%{count} secondes"
- less_than_x_minutes:
- zero: "moins d'une minute"
- one: "moins d'une minute"
- other: "moins de %{count} minutes"
- x_minutes:
- one: "1 minute"
- other: "%{count} minutes"
- about_x_hours:
- one: "environ une heure"
- other: "environ %{count} heures"
- x_days:
- one: "1 jour"
- other: "%{count} jours"
- about_x_months:
- one: "environ un mois"
- other: "environ %{count} mois"
- x_months:
- one: "1 mois"
- other: "%{count} mois"
- about_x_years:
- one: "environ un an"
- other: "environ %{count} ans"
- over_x_years:
- one: "plus d'un an"
- other: "plus de %{count} ans"
- almost_x_years:
- one: "presqu'un an"
- other: "presque %{count} ans"
- prompts:
- year: "Année"
- month: "Mois"
- day: "Jour"
- hour: "Heure"
- minute: "Minute"
- second: "Seconde"
-
- number:
- format:
- separator: ","
- delimiter: " "
- precision: 3
- significant: false
- strip_insignificant_zeros: false
- currency:
- format:
- format: "%n %u"
- unit: "$"
- separator: ","
- delimiter: " "
- precision: 2
- significant: false
- strip_insignificant_zeros: false
- percentage:
- format:
- delimiter: ""
- precision:
- format:
- delimiter: ""
- human:
- format:
- delimiter: ""
- precision: 2
- significant: true
- strip_insignificant_zeros: true
- storage_units:
- format: "%n %u"
- units:
- byte:
- one: "Octet"
- other: "Octets"
- kb: "ko"
- mb: "Mo"
- gb: "Go"
- tb: "To"
- decimal_units:
- format: "%n %u"
- units:
- unit: ""
- thousand: "Millier"
- million: "Million"
- billion: "Milliard"
- trillion: "Mille milliard"
- quadrillion: "Million de milliards"
-
- support:
- array:
- words_connector: ", "
- two_words_connector: " et "
- last_word_connector: " et "
- select:
- prompt: "Veuillez sélectionner"
-
- helpers:
- select:
- prompt: "Veuillez sélectionner"
- submit:
- create: "Créer un %{model}"
- update: "Modifier ce %{model}"
- submit: "Enregistrer ce %{model}"
-
- errors:
- format: "Le %{attribute} %{message}"
- messages: &errors_messages
- inclusion: "n'est pas inclus(e) dans la liste"
- exclusion: "n'est pas disponible"
- invalid: "n'est pas valide"
- confirmation: "ne concorde pas avec la confirmation"
- accepted: "doit être accepté(e)"
- empty: "doit être rempli(e)"
- blank: "doit être rempli(e)"
- too_long:
- one: "est trop long (pas plus d'un caractère)"
- other: "est trop long (pas plus de %{count} caractères)"
- too_short:
- one: "est trop court (au moins un caractère)"
- other: "est trop court (au moins %{count} caractères)"
- wrong_length:
- one: "ne fait pas la bonne longueur (doit comporter un seul caractère)"
- other: "ne fait pas la bonne longueur (doit comporter %{count} caractères)"
- not_a_number: "n'est pas un nombre"
- not_an_integer: "doit être un nombre entier"
- greater_than: "doit être supérieur à %{count}"
- greater_than_or_equal_to: "doit être supérieur ou égal à %{count}"
- equal_to: "doit être égal à %{count}"
- less_than: "doit être inférieur à %{count}"
- less_than_or_equal_to: "doit être inférieur ou égal à %{count}"
- odd: "doit être impair"
- even: "doit être pair"
- taken: "n'est pas disponible"
- record_invalid: "La validation a échoué : %{errors}"
- template: &errors_template
- header:
- one: "Impossible d'enregistrer ce %{model} : 1 erreur"
- other: "Impossible d'enregistrer ce %{model} : %{count} erreurs"
- body: "Veuillez vérifier les champs suivants : "
-
- activerecord:
- errors:
- messages:
- <<: *errors_messages
- template:
- <<: *errors_template
- full_messages:
- format: "%{attribute} %{message}"
+++ /dev/null
-# French (Switzerland) translations for Ruby on Rails
-# by Yann Lugrin (yann.lugrin@sans-savoir.net, http://github.com/yannlugrin)
-#
-# original translation into French by Christian Lescuyer
-# contributor: Sebastien Grosjean - ZenCocoon.com
-
-fr-CH:
- date:
- formats:
- default: "%d.%m.%Y"
- short: "%e %b"
- long: "%e %B %Y"
- day_names:
- - dimanche
- - lundi
- - mardi
- - mercredi
- - jeudi
- - vendredi
- - samedi
- abbr_day_names:
- - dim
- - lun
- - mar
- - mer
- - jeu
- - ven
- - sam
- month_names:
- - ~
- - janvier
- - février
- - mars
- - avril
- - mai
- - juin
- - juillet
- - août
- - septembre
- - octobre
- - novembre
- - décembre
- abbr_month_names:
- - ~
- - jan.
- - fév.
- - mar.
- - avr.
- - mai
- - juin
- - juil.
- - août
- - sept.
- - oct.
- - nov.
- - déc.
- order:
- - :day
- - :month
- - :year
-
- time:
- formats:
- default: "%d. %B %Y %H:%M"
- short: "%d. %b %H:%M"
- long: "%A, %d. %B %Y %H:%M:%S %Z"
- am: "am"
- pm: "pm"
-
- datetime:
- distance_in_words:
- half_a_minute: "une demi-minute"
- less_than_x_seconds:
- zero: "moins d'une seconde"
- one: "moins d'une seconde"
- other: "moins de %{count} secondes"
- x_seconds:
- one: "1 seconde"
- other: "%{count} secondes"
- less_than_x_minutes:
- zero: "moins d'une minute"
- one: "moins d'une minute"
- other: "moins de %{count} minutes"
- x_minutes:
- one: "1 minute"
- other: "%{count} minutes"
- about_x_hours:
- one: "environ une heure"
- other: "environ %{count} heures"
- x_days:
- one: "1 jour"
- other: "%{count} jours"
- about_x_months:
- one: "environ un mois"
- other: "environ %{count} mois"
- x_months:
- one: "1 mois"
- other: "%{count} mois"
- about_x_years:
- one: "environ un an"
- other: "environ %{count} ans"
- over_x_years:
- one: "plus d'un an"
- other: "plus de %{count} ans"
- almost_x_years:
- one: "presqu'un an"
- other: "presque %{count} ans"
- prompts:
- year: "Année"
- month: "Mois"
- day: "Jour"
- hour: "Heure"
- minute: "Minute"
- second: "Seconde"
-
- number:
- format:
- separator: "."
- delimiter: "'"
- precision: 3
- significant: false
- strip_insignificant_zeros: false
- currency:
- format:
- format: "%n %u"
- unit: "CHF"
- separator: "."
- delimiter: "'"
- precision: 2
- significant: false
- strip_insignificant_zeros: false
- percentage:
- format:
- delimiter: ""
- precision:
- format:
- delimiter: ""
- human:
- format:
- delimiter: ""
- precision: 2
- significant: true
- strip_insignificant_zeros: true
- storage_units:
- format: "%n %u"
- units:
- byte:
- one: "octet"
- other: "octets"
- kb: "ko"
- mb: "Mo"
- gb: "Go"
- tb: "To"
- decimal_units:
- format: "%n %u"
- units:
- unit: ""
- thousand: "millier"
- million: "million"
- billion: "milliard"
- trillion: "billion"
- quadrillion: "million de milliards"
-
- support:
- array:
- words_connector: ", "
- two_words_connector: " et "
- last_word_connector: " et "
- select:
- prompt: "Veuillez sélectionner"
-
- helpers:
- select:
- prompt: "Veuillez sélectionner"
- submit:
- create: "Créer un %{model}"
- update: "Modifier ce %{model}"
- submit: "Enregistrer ce %{model}"
-
- errors:
- format: "Le %{attribute} %{message}"
- messages: &errors_messages
- inclusion: "n'est pas inclus(e) dans la liste"
- exclusion: "n'est pas disponible"
- invalid: "n'est pas valide"
- confirmation: "ne concorde pas avec la confirmation"
- accepted: "doit être accepté(e)"
- empty: "doit être rempli(e)"
- blank: "doit être rempli(e)"
- too_long:
- one: "est trop long (pas plus d'un caractère)"
- other: "est trop long (pas plus de %{count} caractères)"
- too_short:
- one: "est trop court (au moins un caractère)"
- other: "est trop court (au moins %{count} caractères)"
- wrong_length:
- one: "ne fait pas la bonne longueur (doit comporter un seul caractère)"
- other: "ne fait pas la bonne longueur (doit comporter %{count} caractères)"
- not_a_number: "n'est pas un nombre"
- not_an_integer: "doit être un nombre entier"
- greater_than: "doit être supérieur à %{count}"
- greater_than_or_equal_to: "doit être supérieur ou égal à %{count}"
- equal_to: "doit être égal à %{count}"
- less_than: "doit être inférieur à %{count}"
- less_than_or_equal_to: "doit être inférieur ou égal à %{count}"
- odd: "doit être impair"
- even: "doit être pair"
- taken: "n'est pas disponible"
- record_invalid: "La validation a échoué : %{errors}"
- template: &errors_template
- header:
- one: "Impossible d'enregistrer ce %{model} : 1 erreur"
- other: "Impossible d'enregistrer ce %{model} : %{count} erreurs"
- body: "Veuillez vérifier les champs suivants : "
-
- activerecord:
- errors:
- messages:
- <<: *errors_messages
- template:
- <<: *errors_template
- full_messages:
- format: "%{attribute} %{message}"
-
+++ /dev/null
-# French translations for Ruby on Rails
-# by Christian Lescuyer (christian@flyingcoders.com)
-# contributors:
-# - Sebastien Grosjean - ZenCocoon.com
-# - Bruno Michel - http://github.com/nono
-# - Tsutomu Kuroda - http://github.com/kuroda (t-kuroda@oiax.jp)
-
-fr:
- date:
- formats:
- default: "%d/%m/%Y"
- short: "%e %b"
- long: "%e %B %Y"
- day_names:
- - dimanche
- - lundi
- - mardi
- - mercredi
- - jeudi
- - vendredi
- - samedi
- abbr_day_names:
- - dim
- - lun
- - mar
- - mer
- - jeu
- - ven
- - sam
- month_names:
- - ~
- - janvier
- - février
- - mars
- - avril
- - mai
- - juin
- - juillet
- - août
- - septembre
- - octobre
- - novembre
- - décembre
- abbr_month_names:
- - ~
- - jan.
- - fév.
- - mar.
- - avr.
- - mai
- - juin
- - juil.
- - août
- - sept.
- - oct.
- - nov.
- - déc.
- order:
- - :day
- - :month
- - :year
-
- time:
- formats:
- default: "%d %B %Y %H:%M:%S"
- short: "%d %b %H:%M"
- long: "%A %d %B %Y %H:%M"
- am: 'am'
- pm: 'pm'
-
- datetime:
- distance_in_words:
- half_a_minute: "une demi-minute"
- less_than_x_seconds:
- zero: "moins d'une seconde"
- one: "moins d'une seconde"
- other: "moins de %{count} secondes"
- x_seconds:
- one: "1 seconde"
- other: "%{count} secondes"
- less_than_x_minutes:
- zero: "moins d'une minute"
- one: "moins d'une minute"
- other: "moins de %{count} minutes"
- x_minutes:
- one: "1 minute"
- other: "%{count} minutes"
- about_x_hours:
- one: "environ une heure"
- other: "environ %{count} heures"
- x_days:
- one: "1 jour"
- other: "%{count} jours"
- about_x_months:
- one: "environ un mois"
- other: "environ %{count} mois"
- x_months:
- one: "1 mois"
- other: "%{count} mois"
- about_x_years:
- one: "environ un an"
- other: "environ %{count} ans"
- over_x_years:
- one: "plus d'un an"
- other: "plus de %{count} ans"
- almost_x_years:
- one: "presqu'un an"
- other: "presque %{count} ans"
- prompts:
- year: "Année"
- month: "Mois"
- day: "Jour"
- hour: "Heure"
- minute: "Minute"
- second: "Seconde"
-
- number:
- format:
- separator: ","
- delimiter: " "
- precision: 3
- significant: false
- strip_insignificant_zeros: false
- currency:
- format:
- format: "%n %u"
- unit: "€"
- separator: ","
- delimiter: " "
- precision: 2
- significant: false
- strip_insignificant_zeros: false
- percentage:
- format:
- delimiter: ""
- precision:
- format:
- delimiter: ""
- human:
- format:
- delimiter: ""
- precision: 2
- significant: true
- strip_insignificant_zeros: true
- storage_units:
- format: "%n %u"
- units:
- byte:
- one: "octet"
- other: "octets"
- kb: "ko"
- mb: "Mo"
- gb: "Go"
- tb: "To"
- decimal_units:
- format: "%n %u"
- units:
- unit: ""
- thousand: "millier"
- million: "million"
- billion: "milliard"
- trillion: "billion"
- quadrillion: "million de milliards"
-
- support:
- array:
- words_connector: ", "
- two_words_connector: " et "
- last_word_connector: " et "
- select:
- prompt: "Veuillez sélectionner"
-
- helpers:
- select:
- prompt: "Veuillez sélectionner"
- submit:
- create: "Créer un(e) %{model}"
- update: "Modifier ce(tte) %{model}"
- submit: "Enregistrer ce(tte) %{model}"
-
- errors:
- format: "Le %{attribute} %{message}"
- messages: &errors_messages
- inclusion: "n'est pas inclus(e) dans la liste"
- exclusion: "n'est pas disponible"
- invalid: "n'est pas valide"
- confirmation: "ne concorde pas avec la confirmation"
- accepted: "doit être accepté(e)"
- empty: "doit être rempli(e)"
- blank: "doit être rempli(e)"
- too_long:
- one: "est trop long (pas plus d'un caractère)"
- other: "est trop long (pas plus de %{count} caractères)"
- too_short:
- one: "est trop court (au moins un caractère)"
- other: "est trop court (au moins %{count} caractères)"
- wrong_length:
- one: "ne fait pas la bonne longueur (doit comporter un seul caractère)"
- other: "ne fait pas la bonne longueur (doit comporter %{count} caractères)"
- not_a_number: "n'est pas un nombre"
- not_an_integer: "doit être un nombre entier"
- greater_than: "doit être supérieur à %{count}"
- greater_than_or_equal_to: "doit être supérieur ou égal à %{count}"
- equal_to: "doit être égal à %{count}"
- less_than: "doit être inférieur à %{count}"
- less_than_or_equal_to: "doit être inférieur ou égal à %{count}"
- odd: "doit être impair"
- even: "doit être pair"
- taken: "n'est pas disponible"
- record_invalid: "La validation a échoué : %{errors}"
- template: &errors_template
- header:
- one: "Impossible d'enregistrer ce(tte) %{model} : 1 erreur"
- other: "Impossible d'enregistrer ce(tte) %{model} : %{count} erreurs"
- body: "Veuillez vérifier les champs suivants : "
-
- activerecord:
- errors:
- messages:
- <<: *errors_messages
- template:
- <<: *errors_template
- full_messages:
- format: "%{attribute} %{message}"
+++ /dev/null
-# original by Dr. Nic
-
-{
- :'en-AU' => {
- :date => {
- :formats => {
- :default => "%d/%m/%Y",
- :short => "%e %b",
- :long => "%e %B, %Y"
- },
- :day_names => Date::DAYNAMES,
- :abbr_day_names => Date::ABBR_DAYNAMES,
- :month_names => Date::MONTHNAMES,
- :abbr_month_names => Date::ABBR_MONTHNAMES,
- :order => [:year, :month, :day]
- },
- :time => {
- :formats => {
- :default => "%a %b %d %H:%M:%S %Z %Y",
- :time => "%H:%M",
- :short => "%d %b %H:%M",
- :long => "%d %B, %Y %H:%M"
- },
- :datetime => {
- :formats => {
- :default => "%Y-%m-%dT%H:%M:%S%Z"
- }
- },
- :time_with_zone => {
- :formats => {
- :default => lambda { |time| "%Y-%m-%d %H:%M:%S #{time.formatted_offset(false, 'UTC')}" }
- }
- },
- :am => 'am',
- :pm => 'pm'
- },
- :datetime => {
- :distance_in_words => {
- :half_a_minute => 'half a minute',
- :less_than_x_seconds => {:zero => 'less than a second', :one => 'less than a second', :other => 'less than %{count} seconds'},
- :x_seconds => {:one => '1 second', :other => '%{count} seconds'},
- :less_than_x_minutes => {:zero => 'less than a minute', :one => 'less than a minute', :other => 'less than %{count} minutes'},
- :x_minutes => {:one => "1 minute", :other => "%{count} minutes"},
- :about_x_hours => {:one => 'about 1 hour', :other => 'about %{count} hours'},
- :x_days => {:one => '1 day', :other => '%{count} days'},
- :about_x_months => {:one => 'about 1 month', :other => 'about %{count} months'},
- :x_months => {:one => '1 month', :other => '%{count} months'},
- :about_x_years => {:one => 'about 1 year', :other => 'about %{count} years'},
- :over_x_years => {:one => 'over 1 year', :other => 'over %{count} years'}
- }
- },
- :number => {
- :format => {
- :precision => 2,
- :separator => ',',
- :delimiter => '.'
- },
- :currency => {
- :format => {
- :unit => 'AUD',
- :precision => 2,
- :format => '%n %u'
- }
- }
- },
-
- # Active Record
- :activerecord => {
- :errors => {
- :template => {
- :header => {
- :one => "Couldn't save this %{model}: 1 error",
- :other => "Couldn't save this %{model}: %{count} errors."
- },
- :body => "Please check the following fields, dude:"
- },
- :messages => {
- :inclusion => "ain't included in the list",
- :exclusion => "ain't available",
- :invalid => "ain't valid",
- :confirmation => "don't match its confirmation",
- :accepted => "gotta be accepted",
- :empty => "gotta be given",
- :blank => "gotta be given",
- :too_long => "is too long-ish (no more than %{count} characters)",
- :too_short => "is too short-ish (no less than %{count} characters)",
- :wrong_length => "ain't got the right length (gotta be %{count} characters)",
- :taken => "ain't available",
- :not_a_number => "ain't a number",
- :greater_than => "gotta be greater than %{count}",
- :greater_than_or_equal_to => "gotta be greater than or equal to %{count}",
- :equal_to => "gotta be equal to %{count}",
- :less_than => "gotta be less than %{count}",
- :less_than_or_equal_to => "gotta be less than or equal to %{count}",
- :odd => "gotta be odd",
- :even => "gotta be even"
- }
- }
- }
- }
-}
\ No newline at end of file
+++ /dev/null
-{
- :'gibberish' => {
- # date and time formats
- :date => {
- :formats => {
- :default => "%Y-%m-%d (ish)",
- :short => "%e %b (ish)",
- :long => "%B %e, %Y (ish)"
- },
- :day_names => %w(Sunday-ish Monday-ish Tuesday-ish Wednesday-ish Thursday-ish Friday-ish Saturday-ish),
- :abbr_day_names => %w(Sun-i Mon-i Tue-i Wed-i Thu-i Fri-i Sat-i),
- :month_names => [nil] + %w(January-ish February-ish March-ish April-ish May-ish June-ish
- July-ish August-ish September-ish October-ish November-rish December-ish),
- :abbr_month_names => [nil] + %w(Jan-i Feb-i Mar-i Apr-i May-i Jun-i Jul-i Aug-i Sep-i Oct-i Nov-i Dec-i),
- :order => [:day, :month, :year]
- },
- :time => {
- :formats => {
- :default => "%a %b %d %H:%M:%S %Z %Y (ish)",
- :time => "%H:%M (ish)",
- :short => "%d %b %H:%M (ish)",
- :long => "%B %d, %Y %H:%M (ish)"
- },
- :datetime => {
- :formats => {
- :default => "%Y-%m-%dT%H:%M:%S%Z"
- }
- },
- :time_with_zone => {
- :formats => {
- :default => lambda { |time| "%Y-%m-%d %H:%M:%S #{time.formatted_offset(false, 'UTC')}" }
- }
- },
- :am => 'am-ish',
- :pm => 'pm-ish'
- },
-
- # date helper distance in words
- :datetime => {
- :distance_in_words => {
- :half_a_minute => 'a halfish minute',
- :less_than_x_seconds => {:zero => 'less than 1 second', :one => ' less than 1 secondish', :other => 'less than%{count}ish seconds'},
- :x_seconds => {:one => '1 secondish', :other => '%{count}ish seconds'},
- :less_than_x_minutes => {:zero => 'less than a minuteish', :one => 'less than 1 minuteish', :other => 'less than %{count}ish minutes'},
- :x_minutes => {:one => "1ish minute", :other => "%{count}ish minutes"},
- :about_x_hours => {:one => 'about 1 hourish', :other => 'about %{count}ish hours'},
- :x_days => {:one => '1ish day', :other => '%{count}ish days'},
- :about_x_months => {:one => 'about 1ish month', :other => 'about %{count}ish months'},
- :x_months => {:one => '1ish month', :other => '%{count}ish months'},
- :about_x_years => {:one => 'about 1ish year', :other => 'about %{count}ish years'},
- :over_x_years => {:one => 'over 1ish year', :other => 'over %{count}ish years'}
- }
- },
-
- # numbers
- :number => {
- :format => {
- :precision => 3,
- :separator => ',',
- :delimiter => '.'
- },
- :currency => {
- :format => {
- :unit => 'Gib-$',
- :precision => 2,
- :format => '%n %u'
- }
- }
- },
-
- # Active Record
- :activerecord => {
- :errors => {
- :template => {
- :header => {
- :one => "Couldn't save this %{model}: 1 error",
- :other => "Couldn't save this %{model}: %{count} errors."
- },
- :body => "Please check the following fields, dude:"
- },
- :messages => {
- :inclusion => "ain't included in the list",
- :exclusion => "ain't available",
- :invalid => "ain't valid",
- :confirmation => "don't match its confirmation",
- :accepted => "gotta be accepted",
- :empty => "gotta be given",
- :blank => "gotta be given",
- :too_long => "is too long-ish (no more than %{count} characters)",
- :too_short => "is too short-ish (no less than %{count} characters)",
- :wrong_length => "ain't got the right length (gotta be %{count} characters)",
- :taken => "ain't available",
- :not_a_number => "ain't a number",
- :greater_than => "gotta be greater than %{count}",
- :greater_than_or_equal_to => "gotta be greater than or equal to %{count}",
- :equal_to => "gotta be equal to %{count}",
- :less_than => "gotta be less than %{count}",
- :less_than_or_equal_to => "gotta be less than or equal to %{count}",
- :odd => "gotta be odd",
- :even => "gotta be even"
- }
- }
- }
- }
-}
\ No newline at end of file
+++ /dev/null
-# Friulian translations for Ruby on Rails
-# by Andrea Decorte (adecorte@gmail.com)
-
-fur:
- number:
- format:
- separator: ","
- delimiter: "."
- precision: 3
- significant: false
- strip_insignificant_zeros: false
-
- currency:
- format:
- format: "%n %u"
- unit: "€"
- separator: "."
- delimiter: ","
- precision: 2
- significant: false
- strip_insignificant_zeros: false
-
- percentage:
- format:
- delimiter: ""
- # precision:
-
- precision:
- format:
- # separator:
- delimiter: ""
- # precision:
-
- human:
- format:
- # separator:
- delimiter: ""
- precision: 1
- significant: true
- strip_insignificant_zeros: true
- storage_units:
- format: "%n %u"
- units:
- byte:
- one: "Byte"
- other: "Byte"
- kb: "Kb"
- mb: "Mb"
- gb: "Gb"
- tb: "Tb"
- decimal_units:
- format: "%n %u"
- units:
- unit: ""
-
- date:
- formats:
- default: "%d-%m-%Y"
- short: "%d di %b"
- long: "%d di %B dal %Y"
-
- day_names:
- - domenie
- - lunis
- - martars
- - miercus
- - joibe
- - vinars
- - sabide
- abbr_day_names:
- - dom
- - lun
- - mar
- - mie
- - joi
- - vin
- - sab
-
- month_names:
- - ~
- - Zenâr
- - Fevrâr
- - Març
- - Avrîl
- - Mai
- - Jugn
- - Lui
- - Avost
- - Setembar
- - Otubar
- - Novembar
- - Dicembar
- abbr_month_names:
- - ~
- - Zen
- - Fev
- - Mar
- - Avr
- - Mai
- - Jug
- - Lui
- - Avo
- - Set
- - Otu
- - Nov
- - Dic
- order:
- - :day
- - :month
- - :year
-
- time:
- formats:
- default: "%a %d di %b dal %Y, %H:%M:%S %z"
- short: "%d di %b %H:%M"
- long: "%d di %B %Y %H:%M"
-
- am: 'am'
- pm: 'pm'
-
- datetime:
- distance_in_words:
- half_a_minute: "mieç minût"
- less_than_x_seconds:
- one: "mancul di un secont"
- other: "mancul di %{count} seconts"
- x_seconds:
- one: "1 secont"
- other: "%{count} seconts"
- less_than_x_minutes:
- one: "mancul di un minût"
- other: "mancul di %{count} minûts"
- x_minutes:
- one: "1 minût"
- other: "%{count} minûts"
- about_x_hours:
- one: "cirche une ore"
- other: "cirche %{count} oris"
- x_days:
- one: "1 zornade"
- other: "%{count} zornadis"
- about_x_months:
- one: "cirche un mês"
- other: "cirche %{count} mês"
- x_months:
- one: "1 mês"
- other: "%{count} mês"
- about_x_years:
- one: "cirche un an"
- other: "cirche %{count} agns"
- over_x_years:
- one: "plui di un an"
- other: "plui di %{count} agns"
- prompts:
- year: "An"
- month: "Mês"
- day: "Dì"
- hour: "Ore"
- minute: "Minût"
- second: "Seconts"
-
- support:
- array:
- words_connector: ", "
- two_words_connector: " e "
- last_word_connector: ", e "
-
- errors:
- format: "%{attribute} %{message}"
- template: &errors_template
- header:
- one: "No si pues salvâ chest %{model}: 1 erôr"
- other: "No si pues salvâ chest %{model}: %{count} erôrs."
- body: "Torne par plasê a controlâ i cjamps ca sot:"
- messages: &errors_messages
- inclusion: "non è includût te liste"
- exclusion: "al è riservât"
- invalid: "nol è valit"
- confirmation: "nol è compagn de conferme"
- accepted: "al à di jessi acetât"
- empty: "nol pues jessi vueit"
- blank: "nol pues jessi lassât in blanc"
- too_long: "al è masse lunc (il massim al è %{count} letaris)"
- too_short: "al è masse curt (il minim al è %{count} letaris)"
- wrong_length: "nol à la lungjece juste (al ò di jessi di %{count} letaris)"
- taken: "al è za doprât"
- not_a_number: "nol è un numar"
- greater_than: "al à di jessi plui grant di %{count}"
- greater_than_or_equal_to: "al à di jessi plui grant o compagn di %{count}"
- equal_to: "al à di jessi compagn di %{count}"
- less_than: "al à di jessi mancul di %{count}"
- less_than_or_equal_to: "al à di jessi mancul o compagn di %{count}"
- odd: "al à di jessi dispar"
- even: "al à di jessi pâr"
-
- activerecord:
- errors:
- messages:
- <<: *errors_messages
- template:
- <<: *errors_template
- full_messages:
- format: "%{attribute} %{message}"
\ No newline at end of file
+++ /dev/null
-# Galician (Spain) for Ruby on Rails
-# by Marcos Arias Pena (markus@agil-e.com)
-
-gl-ES:
- # action_view
- number:
- # Usado en number_with_delimiter()
- format:
- separator: ","
- delimiter: "."
- precision: 2
- significant: false
- strip_insignificant_zeros: false
-
- # Usado en number_to_currency()
- currency:
- format:
- # %u é a unidade monetaria, %n o número
- # 1 euro sería 1.00 €
- format: "%n %u"
- unit: "€"
- separator: ","
- delimiter: "."
- precision: 2
- significant: false
- strip_insignificant_zeros: false
-
- # Usado en number_to_percentage()
- percentage:
- format:
- # separator:
- delimiter: ""
- # precision:
-
- # Usado en number_to_precision()
- precision:
- format:
- # separator:
- delimiter: ""
- # precision:
-
- # Usado en number_to_human_size()
- human:
- format:
- # separator:
- delimiter: ""
- precision: 1
- significant: true
- strip_insignificant_zeros: true
- # Se estás a usar Rails <= 2.2.2
- # storage_units: [Bytes, KB, MB, GB, TB]
- # Se estás a usar Rails >= 2.3
- storage_units:
- # Formato de saida de unidades de almacenamento
- # %u é a unidade de almacenamento
- # %n é o número (por defecto: 2 MB)
- format: "%n %u"
- units:
- byte:
- one: "Byte"
- other: "Bytes"
- kb: "KB"
- mb: "MB"
- gb: "GB"
- tb: "TB"
- decimal_units:
- format: "%n %u"
- units:
- unit: ""
-
- # active_support
- date:
- formats:
- default: "%e/%m/%Y"
- short: "%e %b"
- long: "%A %e de %B de %Y"
- # Podes engadir máis formatos nesta lista ou cambiar os aquí definidos
- day_names:
- - Domingo
- - Luns
- - Martes
- - Mércores
- - Xoves
- - Venres
- - Sábado
- abbr_day_names:
- - Dom
- - Lun
- - Mar
- - Mer
- - Xov
- - Ven
- - Sab
- month_names:
- - ~
- - Xaneiro
- - Febreiro
- - Marzo
- - Abril
- - Maio
- - Xuño
- - Xullo
- - Agosto
- - Setembro
- - Outubro
- - Novembro
- - Decembro
- abbr_month_names:
- - ~
- - Xan
- - Feb
- - Mar
- - Abr
- - Mai
- - Xuñ
- - Xul
- - Ago
- - Set
- - Out
- - Nov
- - Dec
- order:
- - :day
- - :month
- - :year
-
- time:
- formats:
- default: "%A, %e de %B de %Y ás %H:%M"
- short: "%e/%m, %H:%M"
- long: "%A %e de %B de %Y ás %H:%M"
- # Podes engadir máis formatos nesta lista ou cambiar os aquí definidos
- am: ''
- pm: ''
-
- # Usados en distance_of_time_in_words(), distance_of_time_in_words_to_now(), time_ago_in_words()
- datetime:
- distance_in_words:
- half_a_minute: 'medio minuto'
- less_than_x_seconds:
- zero: 'menos dun segundo'
- one: '1 segundo'
- few: 'poucos segundos'
- other: '%{count} segundos'
- x_seconds:
- one: '1 segundo'
- other: '%{count} segundos'
- less_than_x_minutes:
- zero: 'menos dun minuto'
- one: '1 minuto'
- other: '%{count} minutos'
- x_minutes:
- one: '1 minuto'
- other: '%{count} minuto'
- about_x_hours:
- one: 'aproximadamente unha hora'
- other: '%{count} horas'
- x_days:
- one: '1 día'
- other: '%{count} días'
- about_x_months:
- one: 'aproximadamente 1 mes'
- other: '%{count} meses'
- x_months:
- one: '1 mes'
- other: '%{count} meses'
- about_x_years:
- one: 'aproximadamente 1 ano'
- other: '%{count} anos'
- over_x_years:
- one: 'máis dun ano'
- other: '%{count} anos'
-
- support:
- array:
- words_connector: ", "
- two_words_connector: " e "
- last_word_connector: " e "
-
- errors:
- format: "%{attribute} %{message}"
- template: &errors_template
- header:
- one: "1 erro evitou que se poidese gardar o %{model}"
- other: "%{count} erros evitaron que se poidese gardar o %{model}"
- body: "Atopáronse os seguintes problemas:"
- messages: &errors_messages
- inclusion: "non está incluido na lista"
- exclusion: "xa existe"
- invalid: "non é válido"
- confirmation: "non coincide coa confirmación"
- accepted: "debe ser aceptado"
- empty: "non pode estar valeiro"
- blank: "non pode estar en blanco"
- too_long: "é demasiado longo (non máis de %{count} carácteres)"
- too_short: "é demasiado curto (non menos de %{count} carácteres)"
- wrong_length: "non ten a lonxitude correcta (debe ser de %{count} carácteres)"
- taken: "non está dispoñible"
- not_a_number: "non é un número"
- greater_than: "debe ser maior que %{count}"
- greater_than_or_equal_to: "debe ser maior ou igual que %{count}"
- equal_to: "debe ser igual a %{count}"
- less_than: "debe ser menor que %{count}"
- less_than_or_equal_to: "debe ser menor ou igual que %{count}"
- odd: "debe ser par"
- even: "debe ser impar"
-
- activerecord:
- errors:
- messages:
- <<: *errors_messages
- template:
- <<: *errors_template
- full_messages:
- format: "%{attribute} %{message}"
\ No newline at end of file
+++ /dev/null
-# Swiss German (Switzerland) translations for Ruby on Rails
-# by Florian Hanke (florian.hanke@gmail.com).
-#
-# Adapted from de-CH by Clemens Kofler (clemens@railway.at).
-
-gsw-CH:
- date:
- formats:
- default: "%d.%m.%Y"
- short: "%e. %b"
- long: "%e. %B %Y"
- day_names:
- - Sunntig
- - Mäntig
- - Ziischtig
- - Mittwuch
- - Dunnschtig
- - Friitig
- - Samschtig
- abbr_day_names:
- - Su
- - Mä
- - Zi
- - Mi
- - Du
- - Fr
- - Sa
- month_names:
- - ~
- - Januar
- - Februar
- - März
- - April
- - Mai
- - Juni
- - Juli
- - Auguscht
- - Septämber
- - Oktober
- - Novämber
- - Dezämber
- abbr_month_names:
- - ~
- - Jan
- - Feb
- - Mär
- - Apr
- - Mai
- - Jun
- - Jul
- - Aug
- - Sep
- - Okt
- - Nov
- - Dez
- order:
- - :day
- - :month
- - :year
-
- time:
- formats:
- default: "%A, %d. %B %Y, %H:%M"
- short: "%d. %B, %H:%M"
- long: "%A, %d. %B %Y, %H:%M"
- am: "am Vormittaag"
- pm: "am Namitaag"
-
- datetime:
- distance_in_words:
- half_a_minute: 'ä halbi Minuutä'
- less_than_x_seconds:
- one: 'weniger als ä Sekundä'
- other: 'weniger als %{count} Sekundä'
- x_seconds:
- one: 'ä Sekunde'
- other: '%{count} Sekunde'
- less_than_x_minutes:
- one: 'weniger als ä Minuutä'
- other: 'weniger als %{count} Minuutä'
- x_minutes:
- one: 'ä Minutä'
- other: '%{count} Minutä'
- about_x_hours:
- one: 'öppe nä Schtund'
- other: 'öppe nä %{count} Schtund'
- x_days:
- one: 'än Taag'
- other: '%{count} Taag'
- about_x_months:
- one: 'öppe än Monät'
- other: 'öppe %{count} Mönet'
- x_months:
- one: 'än Monät'
- other: '%{count} Mönet'
- almost_x_years:
- one: 'fascht äs Jaar'
- other: 'fascht %{count} Jaar'
- about_x_years:
- one: 'öppe näs Jaar'
- other: 'öppe %{count} Jaar'
- over_x_years:
- one: 'meh als äs Jaar'
- other: 'meh als %{count} Jaar'
- prompts:
- second: "Sekundä"
- minute: "Minutä"
- hour: "Schtund"
- day: "Taag"
- month: "Monät"
- year: "Jaar"
-
- number:
- format:
- precision: 2
- separator: '.'
- delimiter: "'"
- significant: false
- strip_insignificant_zeros: false
- currency:
- format:
- unit: 'SFr.'
- format: '%u %n'
- separator: '.'
- delimiter: "'"
- precision: 2
- significant: false
- strip_insignificant_zeros: false
- percentage:
- format:
- delimiter: "'"
- precision:
- format:
- delimiter: ""
- human:
- format:
- delimiter: ""
- precision: 1
- significant: true
- strip_insignificant_zeros: true
- storage_units:
- # Storage units output formatting.
- # %u is the storage unit, %n is the number (default: 2 MB)
- format: "%n %u"
- units:
- byte:
- one: "Byte" # Bäit
- other: "Bytes" # Bäits
- kb: "KB"
- mb: "MB"
- gb: "GB"
- tb: "TB"
- decimal_units:
- format: "%n %u"
- units:
- unit: ""
- thousand: Tuusig
- million: Milioon
- billion: Bilioon
- trillion: Trilioon
- quadrillion: Quadrilioon
-
- support:
- array:
- words_connector: ", "
- two_words_connector: " und "
- last_word_connector: " und "
- select:
- prompt: "Bitte wääle:"
-
- helpers:
- select:
- prompt: "Bitte wääle"
-
- submit:
- create: '%{model} erschtele'
- update: '%{model} ändere'
- submit: '%{model} schpeichere'
-
- errors:
- format: "%{attribute} %{message}"
-
- messages: &errors_messages
- inclusion: "isch kän gültige Wert"
- exclusion: "isch nöd ume"
- invalid: "isch nöd gültig"
- confirmation: "isch nöd gliich wie'd Beschtätigung"
- accepted: "mues akzeptiert werdä"
- empty: "mues uusgfüllt werdä"
- blank: "mues uusgfüllt werdä"
- too_long: "isch z'lang (nöd mee als %{count} Zeiche)"
- too_short: "isch z'churz (nöd weniger als %{count} Zeiche)"
- wrong_length: "hät di falsch Längi (mues genau %{count} Zeiche haa)"
- not_a_number: "isch kä Nummerä"
- not_an_integer: "isch kä Zaal"
- greater_than: "mues grösser als %{count} sii"
- greater_than_or_equal_to: "mues grösser oder gliich wi %{count} sii"
- equal_to: "mues genau %{count} sii"
- less_than: "mues chliiner als %{count} sii"
- less_than_or_equal_to: "mues chliiner oder gliich %{count} sii"
- odd: "mues ungraad sii"
- even: "mues graad sii"
- taken: "isch bereits vergää"
- record_invalid: "Gültigkeitsprüefig hät fehlgschlage: %{errors}"
- template: &errors_template
- header:
- one: "Han's %{model} nöd schpeichere chönne: än Fehler."
- other: "Han's %{model} näd schpeichere chönne: %{count} Fehler."
- body: "Bitte überprüefed Si die Felder:"
-
- activerecord:
- errors:
- messages:
- <<: *errors_messages
- template:
- <<: *errors_template
- full_messages:
- format: "%{attribute} %{message}"
\ No newline at end of file
+++ /dev/null
-# Hebrew translations for Ruby on Rails
-# by Dotan Nahum (dipidi@gmail.com)
-# Rails 3 update by rbjarnason
-# Grammer updates and completion of missing translations by Meron Bareket (mrnbrkt)
-
-"he":
- date:
- formats:
- default: "%d-%m-%Y"
- short: "%e %b"
- long: "%e ב%B, %Y"
- day_names:
- - ראשון
- - שני
- - שלישי
- - רביעי
- - חמישי
- - שישי
- - שבת
- abbr_day_names:
- - א
- - ב
- - ג
- - ד
- - ה
- - ו
- - ש
-
- month_names:
- - ~
- - ינואר
- - פברואר
- - מרץ
- - אפריל
- - מאי
- - יוני
- - יולי
- - אוגוסט
- - ספטמבר
- - אוקטובר
- - נובמבר
- - דצמבר
- abbr_month_names:
- - ~
- - יאנ
- - פבר
- - מרץ
- - אפר
- - מאי
- - יונ
- - יול
- - אוג
- - ספט
- - אוק
- - נוב
- - דצמ
- order:
- - :day
- - :month
- - :year
-
- time:
- formats:
- default: "%a %d %b %H:%M:%S %Z %Y"
- short: "%d %b %H:%M"
- long: "%d ב%B, %Y %H:%M"
- am: "am"
- pm: "pm"
-
- support:
- array:
- words_connector: ", "
- two_words_connector: " את "
- last_word_connector: ", את "
-
- select:
- prompt: "נא לבחור"
-
- number:
- format:
- precision: 3
- separator: '.'
- delimiter: ','
- significant: false
- strip_insignificant_zeros: false
-
- currency:
- format:
- unit: '₪'
- precision: 2
- format: '%u %n'
- separator: "."
- delimiter: ","
- significant: false
- strip_insignificant_zeros: false
-
- percentage:
- format:
- delimiter: ""
-
- precision:
- format:
- delimiter: ""
-
- human:
- format:
- delimiter: ""
- precision: 3
- significant: true
- strip_insignificant_zeros: true
- storage_units:
- format: "%n %u"
- units:
- byte:
- one: "בייט"
- other: "בתים"
- kb: "קילו-בייט"
- mb: "מגה-בייט"
- gb: "ג'יגה-בייט"
- tb: "טרה-בייט"
- decimal_units:
- format: "%n %u"
- units:
- unit: ""
- thousand: אלף
- million: מיליון
- billion: מיליארד
- trillion: טריליון
- quadrillion: קודריליון
-
- datetime:
- distance_in_words:
- half_a_minute: 'חצי דקה'
- less_than_x_seconds:
- zero: 'פחות משניה אחת'
- one: 'פחות משניה אחת'
- other: 'פחות מ- %{count} שניות'
- x_seconds:
- one: 'שניה אחת'
- other: '%{count} שניות'
- less_than_x_minutes:
- zero: 'פחות מדקה אחת'
- one: 'פחות מדקה אחת'
- other: 'פחות מ- %{count} דקות'
- x_minutes:
- one: 'דקה אחת'
- other: '%{count} דקות'
- about_x_hours:
- one: 'בערך שעה אחת'
- other: 'בערך %{count} שעות'
- x_days:
- one: 'יום אחד'
- other: '%{count} ימים'
- about_x_months:
- one: 'בערך חודש אחד'
- other: 'בערך %{count} חודשים'
- x_months:
- one: 'חודש אחד'
- other: '%{count} חודשים'
- about_x_years:
- one: 'בערך שנה אחת'
- other: 'בערך %{count} שנים'
- over_x_years:
- one: 'מעל שנה אחת'
- other: 'מעל %{count} שנים'
- almost_x_years:
- one: "כמעט שנה"
- other: "כמעט %{count} שנים"
- prompts:
- year: "שנה"
- month: "חודש"
- day: "יום"
- hour: "שעה"
- minute: "דקה"
- second: "שניות"
-
- helpers:
- select:
- prompt: "נא לבחור"
-
- submit:
- create: '%{model} יצירת'
- update: '%{model} עדכון'
- submit: '%{model} שמור'
-
- errors:
- format: "%{attribute} %{message}"
-
- messages: &errors_messages
- inclusion: "לא נכלל ברשימה"
- exclusion: "לא זמין"
- invalid: "לא תקין"
- confirmation: "לא תואם לאישורו"
- accepted: "חייב באישור"
- empty: "לא יכול להיות ריק"
- blank: "לא יכול להיות ריק"
- too_long: "יותר מדי ארוך (לא יותר מ- %{count} תוים)"
- too_short: "יותר מדי קצר (לא יותר מ- %{count} תוים)"
- wrong_length: "לא באורך הנכון (חייב להיות %{count} תוים)"
- not_a_number: "חייב להיות מספר"
- not_an_integer: "חייב להיות מספר שלם"
- greater_than: "חייב להיות גדול מ- %{count}"
- greater_than_or_equal_to: "חייב להיות גדול או שווה ל- %{count}"
- equal_to: "חייב להיות שווה ל- %{count}"
- less_than: "חייב להיות קטן מ- %{count}"
- less_than_or_equal_to: "חייב להיות קטן או שווה ל- %{count}"
- odd: "חייב להיות אי זוגי"
- even: "חייב להיות זוגי"
- taken: "כבר בשימוש"
- record_invalid: "האימות נכשל: %{errors}"
- template: &errors_template
- header:
- one: "לא ניתן לשמור את ה%{model}: שגיאה אחת"
- other: "לא ניתן לשמור את ה%{model}: %{count} שגיאות."
- body: "אנא בדוק את השדות הבאים:"
-
- activerecord:
- errors:
- messages:
- <<: *errors_messages
- template:
- <<: *errors_template
- full_messages:
- format: "%{attribute} %{message}"
+++ /dev/null
-# Hindi (India) translations for Rails
-# by Aditya Sanghi (aditya.sanghi@risingsuntech.net)
-
-hi-IN:
- date:
- formats:
- default: "%d-%m-%Y"
- short: "%b %d"
- long: "%B %d, %Y"
-
- day_names:
- - रविवार
- - सोमवार
- - मंगलवार
- - बुधवार
- - गुरुवार
- - शुक्रवार
- - शनिवार
- abbr_day_names:
- - रवि
- - सोम
- - मंगल
- - बुध
- - गुरु
- - शुक्र
- - शनि
-
- month_names:
- - ~
- - जनवरी
- - फरवरी
- - मार्च
- - अप्रैल
- - मई
- - जून
- - जुलाई
- - अगस्त
- - सितंबर
- - अक्टूबर
- - नवंबर
- - दिसंबर
- abbr_month_names:
- - ~
- - Jan
- - Feb
- - Mar
- - Apr
- - May
- - Jun
- - Jul
- - Aug
- - Sep
- - Oct
- - Nov
- - Dec
- order:
- - :day
- - :month
- - :year
-
- time:
- formats:
- default: "%a, %d %b %Y %H:%M:%S %z"
- short: "%d %b %H:%M"
- long: "%B %d, %Y %H:%M"
- am: "am"
- pm: "pm"
-
- support:
- array:
- words_connector: ", "
- two_words_connector: " और "
- last_word_connector: ", और "
-
- select:
- prompt: "कृपया चुनें"
-
- number:
- format:
- separator: "."
- delimiter: ","
- precision: 3
- significant: false
- strip_insignificant_zeros: false
-
- currency:
- format:
- format: "%u%n"
- unit: "₹"
- separator: "."
- delimiter: ","
- precision: 2
- significant: false
- strip_insignificant_zeros: false
-
- percentage:
- format:
- delimiter: ""
-
- precision:
- format:
- delimiter: ""
-
- human:
- format:
- delimiter: ""
- precision: 3
- significant: true
- strip_insignificant_zeros: true
- storage_units:
- format: "%n %u"
- units:
- byte:
- one: "Byte"
- other: "Bytes"
- kb: "KB"
- mb: "MB"
- gb: "GB"
- tb: "TB"
- decimal_units:
- format: "%n %u"
- units:
- unit: ""
- thousand: "हज़ार"
- million: "मिल्लिओंन"
- billion: "अरब"
- trillion: "खरब"
- quadrillion: "करोड़ शंख"
-
- datetime:
- distance_in_words:
- half_a_minute: "एक आधा मिनट"
- less_than_x_seconds:
- one: "एक सेकंड से कम"
- other: "%{count} सेकंड से कम"
- x_seconds:
- one: "एक सेकंड"
- other: "%{count} सेकंड"
- less_than_x_minutes:
- one: "एक मिनट से कम"
- other: "%{count} मिनट से कम"
- x_minutes:
- one: "एक मिनट"
- other: "%{count} मिनट"
- about_x_hours:
- one: "लग - भग एक घंटा"
- other: "लग - भग %{count} घंटा"
- x_days:
- one: "एक दिन"
- other: "%{count} दिन"
- about_x_months:
- one: "लग - भग 1 महीना"
- other: "लग - भग %{count} महीना"
- x_months:
- one: "एक महीना"
- other: "%{count} महीना"
- about_x_years:
- one: "लग - भग 1 साल"
- other: "लग - भग %{count} साल"
- over_x_years:
- one: "एक साल के ऊपर"
- other: "%{count} साल के ऊपर"
- almost_x_years:
- one: "लग - भग एक साल"
- other: "लग - भग %{count} साल"
- prompts:
- year: "वर्ष"
- month: "माह"
- day: "दिन"
- hour: "घंटा"
- minute: "क्षण"
- second: "सेकंड"
-
- helpers:
- select:
- prompt: "कृपया चुनें"
-
- submit:
- create: 'बनाएँ %{model}'
- update: 'अद्यतन %{model}'
- submit: 'सहेजें %{model}'
-
- errors:
- format: "%{attribute} %{message}"
-
- messages: &errors_messages
- inclusion: "सूची में शामिल नहीं है"
- exclusion: "आरक्षित है"
- invalid: "अवैध है"
- confirmation: "पुष्टिकरण मेल नहीं खाता"
- accepted: "होना स्वीकार किया जाना आवश्यक"
- empty: "खाली नहीं किया जा सकता"
- blank: "खाली नहीं किया जा सकता"
- too_long: "बहुत लंबा है (अधिकतम %{count} अक्षरों है)"
- too_short: "बहुत छोटा है (न्यूनतम %{count} अक्षरों है)"
- wrong_length: "गलत लंबाई है (%{count} वर्ण वाले होने चाहिए)"
- not_a_number: "कोई संख्या नहीं है"
- not_an_integer: "एक पूर्णांक होना चाहिए"
- greater_than: "%{count} से अधिक होना चाहिए"
- greater_than_or_equal_to: "%{count} से बड़ा या बराबर होना आवश्यक है"
- equal_to: "%{count} के लिए बराबर होना चाहिए"
- less_than: "%{count} से कम होना चाहिए"
- less_than_or_equal_to: "%{count} से कम या बराबर होना आवश्यक है"
- odd: "विषम होना चाहिए"
- even: "सम होना चाहिए"
- taken: "पहले ही ले लिया गया है"
- record_invalid: "सत्यापन विफल: %{errors}"
- template: &errors_template
- header:
- one: "एक त्रुटि सहेजे जाने से इस %{model} को निषिद्ध"
- other: "%{count} त्रुटियों को सहेजे जाने से इस %{model} निषिद्ध"
- body: "वहाँ निम्नलिखित क्षेत्रों के साथ समस्याओं रहे थे:"
-
- activerecord:
- errors:
- messages:
- <<: *errors_messages
- template:
- <<: *errors_template
- full_messages:
- format: "%{attribute} %{message}"
+++ /dev/null
-# Hindi (hi) translations for Rails
-# by Rajesh Ranjan (rajesh672@gmail.com)
-
-hi:
- date:
- formats:
- default: "%d-%m-%Y"
- short: "%b %d"
- long: "%B %d, %Y"
-
- day_names:
- - रविवार
- - सोमवार
- - मंगलवार
- - बुधवार
- - गुरुवार
- - शुक्रवार
- - शनिवार
- abbr_day_names:
- - रवि
- - सोम
- - मंगल
- - बुध
- - गुरु
- - शुक्र
- - शनि
-
- month_names:
- - ~
- - जनवरी
- - फरवरी
- - मार्च
- - अप्रैल
- - मई
- - जून
- - जुलाई
- - अगस्त
- - सितंबर
- - अक्टूबर
- - नवंबर
- - दिसंबर
- abbr_month_names:
- - ~
- - जन
- - फर
- - मार्च
- - अप्रै
- - मई
- - जून
- - जुला
- - अग
- - सितं
- - अक्टू
- - नवं
- - दिस
- order:
- - :day
- - :month
- - :year
-
- time:
- formats:
- default: "%a, %d %b %Y %H:%M:%S %z"
- short: "%d %b %H:%M"
- long: "%B %d, %Y %H:%M"
- am: "पूर्वाह्न"
- pm: "अपराह्न"
-
- support:
- array:
- words_connector: ", "
- two_words_connector: " और "
- last_word_connector: ", और "
-
- select:
- prompt: "कृपया चुनें"
-
- number:
- format:
- separator: "."
- delimiter: ","
- precision: 3
- significant: false
- strip_insignificant_zeros: false
-
- currency:
- format:
- format: "%u%n"
- unit: "₹"
- separator: "."
- delimiter: ","
- precision: 2
- significant: false
- strip_insignificant_zeros: false
-
- percentage:
- format:
- delimiter: ""
-
- precision:
- format:
- delimiter: ""
-
- human:
- format:
- delimiter: ""
- precision: 3
- significant: true
- strip_insignificant_zeros: true
- storage_units:
- format: "%n %u"
- units:
- byte:
- one: "Byte"
- other: "Bytes"
- kb: "KB"
- mb: "MB"
- gb: "GB"
- tb: "TB"
- decimal_units:
- format: "%n %u"
- units:
- unit: ""
- thousand: "हज़ार"
- million: "दस करोड़"
- billion: "अरब"
- trillion: "खरब"
- quadrillion: "करोड़ शंख"
-
- datetime:
- distance_in_words:
- half_a_minute: "एक आधा मिनट"
- less_than_x_seconds:
- one: "एक सेकेंड से कम"
- other: "%{count} सेकेंड से कम"
- x_seconds:
- one: "एक सेकेंड"
- other: "%{count} सेकेंड"
- less_than_x_minutes:
- one: "एक मिनट से कम"
- other: "%{count} मिनट से कम"
- x_minutes:
- one: "एक मिनट"
- other: "%{count} मिनट"
- about_x_hours:
- one: "लगभग एक घंटा"
- other: "लगभग %{count} घंटा"
- x_days:
- one: "एक दिन"
- other: "%{count} दिन"
- about_x_months:
- one: "लगभग 1 महीना"
- other: "लगभग %{count} महीना"
- x_months:
- one: "एक महीना"
- other: "%{count} महीना"
- about_x_years:
- one: "लगभग 1 साल"
- other: "लगभग %{count} साल"
- over_x_years:
- one: "एक साल के ऊपर"
- other: "%{count} साल से अधिक"
- almost_x_years:
- one: "लगभग एक साल"
- other: "लगभग %{count} साल"
- prompts:
- year: "वर्ष"
- month: "माह"
- day: "दिन"
- hour: "घंटा"
- minute: "मिनट"
- second: "सेकेंड"
-
- helpers:
- select:
- prompt: "कृपया चुनें"
-
- submit:
- create: '%{model} बनाएँ'
- update: '%{model} अद्यतन'
- submit: '%{model} सौंपें'
-
- errors:
- format: "%{attribute} %{message}"
-
- messages: &errors_messages
- inclusion: "सूची में शामिल नहीं है"
- exclusion: "आरक्षित है"
- invalid: "अवैध है"
- confirmation: "पुष्टिकरण मेल नहीं खाता"
- accepted: "स्वीकार किया जाना जरूरी"
- empty: "रिक्त नहीं रह सकता है"
- blank: "खाली नहीं रह सकता है"
- too_long: "अत्यधिक लंबा है (अधिकतम %{count} वर्ण हैं)"
- too_short: "अत्यधिक छोटा है (न्यूनतम %{count} वर्ण हैं)"
- wrong_length: "गलत लंबाई है (%{count} वर्ण युक्त होना चाहिए)"
- not_a_number: "कोई संख्या नहीं है"
- not_an_integer: "एक पूर्णांक होना चाहिए"
- greater_than: "%{count} से अधिक होना चाहिए"
- greater_than_or_equal_to: "%{count} से बड़ा या बराबर होना आवश्यक है"
- equal_to: "%{count} के लिए बराबर होना चाहिए"
- less_than: "%{count} से कम होना चाहिए"
- less_than_or_equal_to: "%{count} से कम या बराबर होना आवश्यक है"
- odd: "विसम होना चाहिए"
- even: "सम होना चाहिए"
- taken: "पहले ही ले लिया गया है"
- record_invalid: "सत्यापन विफल: %{errors}"
- template: &errors_template
- header:
- one: "इस %{model} को सहेजे जाना एक त्रुटि के कारण नहीं हुआ"
- other: "इस %{model} को सहेजे जाना %{count} त्रुटि के कारण नहीं हुआ"
- body: "निम्नलिखित क्षेत्रों के साथ समस्या थी:"
-
- activerecord:
- errors:
- messages:
- <<: *errors_messages
- template:
- <<: *errors_template
- full_messages:
- format: "%{attribute} %{message}"
+++ /dev/null
-# Croatian translation for Ruby on Rails
-# by Marjan Vrban (mvrban@gmail.com)
-
-"hr":
- date:
- formats:
- default: "%d/%m/%Y"
- short: "%e %b"
- long: "%B %e, %Y"
- day_names:
- - Nedjelja
- - Ponedjeljak
- - Utorak
- - Srijeda
- - Četvrtak
- - Petak
- - Subota
- abbr_day_names:
- - Ned
- - Pon
- - Uto
- - Sre
- - Čet
- - Pet
- - Sub
- month_names:
- - ~
- - Siječanj
- - Veljača
- - Ožujak
- - Travanj
- - Svibanj
- - Lipanj
- - Srpanj
- - Kolovoz
- - Rujan
- - Listopad
- - Studeni
- - Prosinac
- abbr_month_names:
- - ~
- - Sij
- - Vel
- - Ožu
- - Tra
- - Svi
- - Lip
- - Srp
- - Kol
- - Ruj
- - Lis
- - Stu
- - Pro
- order:
- - :day
- - :month
- - :year
-
- time:
- formats:
- default: "%a %b %d %H:%M:%S %Z %Y"
- short: "%d %b %H:%M"
- long: "%B %d, %Y %H:%M"
- am: 'AM'
- pm: 'PM'
-
- datetime:
- distance_in_words:
- half_a_minute: 'pola minute'
- less_than_x_seconds:
- zero: 'manje od 1 sekunde'
- one: 'manje od 1 sekunde'
- few: 'manje od %{count} sekunde'
- other: 'manje od %{count} sekundi'
- x_seconds:
- one: '1 sekunda'
- few: '%{count} sekunde'
- other: '%{count} sekundi'
- less_than_x_minutes:
- zero: 'manje od minute'
- one: 'manje od 1 minute'
- other: 'manje od %{count} minuta'
- x_minutes:
- one: '1 minuta'
- other: '%{count} minuta-e'
- about_x_hours:
- one: 'oko 1 sat'
- few: 'oko %{count} sata'
- other: 'oko %{count} sati'
- x_days:
- one: '1 dan'
- other: '%{count} dana'
- about_x_months:
- one: 'oko 1 mjesec'
- few: 'oko %{count} mjeseca'
- other: 'oko %{count} mjeseci'
- x_months:
- one: '1 mjesec'
- few: '%{count} mjeseca'
- other: '%{count} mjeseci'
- about_x_years:
- one: 'oko 1 godine'
- other: 'oko %{count} godine'
- over_x_years:
- one: 'preko 1 godine'
- other: 'preko %{count} godine'
-
- number:
- format:
- precision: 3
- separator: ','
- delimiter: '.'
- significant: false
- strip_insignificant_zeros: false
- currency:
- format:
- unit: 'Kn'
- precision: 2
- format: '%n %u'
- separator: "."
- delimiter: ","
- significant: false
- strip_insignificant_zeros: false
- percentage:
- format:
- delimiter: ""
- precision:
- format:
- delimiter: ""
- human:
- format:
- delimiter: ""
- precision: 3
- significant: true
- strip_insignificant_zeros: true
- storage_units:
- format: "%n %u"
- decimal_units:
- format: "%n %u"
- units:
- unit: ""
-
- errors:
- format: "%{attribute} %{message}"
- template: &errors_template
- header:
- one: 'Nisam uspio spremiti %{model}: 1 greška'
- few: 'Nisam uspio spremiti %{model}: %{count} greške.'
- other: 'Nisam uspio spremiti %{model}: %{count} greški.'
- body: "Molim Vas provjerite slijedeća polja:"
- messages: &errors_messages
- inclusion: "nije u listi"
- exclusion: "nije dostupno"
- invalid: "nije ispravan"
- confirmation: "se ne slaže sa svojom potvrdom"
- accepted: "mora biti prihvaćen"
- empty: "mora biti ispunjen"
- blank: "mora biti ispunjen"
- too_long: "je predugačak (ne više od %{count} karaktera)"
- too_short: "je prekratak (ne manje od %{count} karaktera)"
- wrong_length: "nije odgovarajuće dužine (mora imati %{count} karaktera)"
- taken: "je zauzeto"
- not_a_number: "nije broj"
- greater_than: "mora biti veće od %{count}"
- greater_than_or_equal_to: "mora biti veće ili jednako %{count}"
- equal_to: "mora biti jednako %{count}"
- less_than: "mora biti manje od %{count}"
- less_than_or_equal_to: "mora biti manje ili jednako %{count}"
- odd: "mora biti neparno"
- even: "mora biti parno"
-
- activerecord:
- errors:
- messages:
- <<: *errors_messages
- template:
- <<: *errors_template
- full_messages:
- format: "%{attribute} %{message}"
\ No newline at end of file
+++ /dev/null
-# Upper Sorbian translations for Ruby on Rails
-# by Michael Wolf (preklady@wolfmicha.de)
-
-hsb:
-
- # ActiveSupport
- support:
- array:
- words_connector: ", "
- two_words_connector: " a "
- last_word_connector: " a "
-
- # Date
- date:
- formats:
- default: "%d. %m. %Y"
- short: "%d %b"
- long: "%d. %B %Y"
-
- day_names:
- - njedźela
- - póndźela
- - wutora
- - srjeda
- - štwórtk
- - pjatk
- - sobota
- abbr_day_names:
- - Nj
- - Pó
- - Wu
- - Sr
- - Št
- - Pj
- - So
- month_names:
- - ~
- - Januar
- - Februar
- - Měrc
- - Apryl
- - Meja
- - Junij
- - Julij
- - Awgust
- - September
- - Oktober
- - Nowember
- - December
- abbr_month_names:
- - ~
- - jan
- - feb
- - měr
- - apr
- - mej
- - jun
- - jul
- - awg
- - sep
- - okt
- - now
- - dec
- order:
- - :day
- - :month
- - :year
-
- # Time
- time:
- formats:
- default: "%A, %d. %B %Y, %H:%M hodź"
- short: "%d. %B, %H:%M hodź."
- long: "%A, %d. %B %Y, %H:%M hodź."
-
- am: "dopołdnja"
- pm: "popołdnju"
-
-
- # Numbers
- number:
- format:
- precision: 3
- separator: ","
- delimiter: "."
- significant: false
- strip_insignificant_zeros: false
-
- currency:
- format:
- unit: "€"
- precision: 2
- format: "%n %u"
- separator: ","
- delimiter: " "
- significant: false
- strip_insignificant_zeros: false
-
- human:
- format:
- precision: 1
- delimiter: ""
- significant: true
- strip_insignificant_zeros: true
- storage_units:
- format: "%n %u"
- units:
- byte:
- one: "bajt"
- two: "bajtaj"
- few: "bajty"
- other: "bajtow"
- kb: "KB"
- mb: "MB"
- gb: "GB"
- tb: "TB"
- decimal_units:
- format: "%n %u"
- units:
- unit: ""
-
- percentage:
- format:
- delimiter: ""
-
- precision:
- format:
- delimiter: ""
-
-
- # Distance of time ... helper
- # Used in distance_of_time_in_words(), distance_of_time_in_words_to_now(), time_ago_in_words()
- datetime:
- distance_in_words:
- half_a_minute: "poł mjeńšiny"
- less_than_x_seconds:
- one: "mjenje hač 1 sekundu"
- two: "mjenje hač %{count} sekundomaj"
- few: "mjenje hač %{count} sekundami"
- other: "mjenje hač %{count} sekundami"
- x_seconds:
- one: "1 sekundu"
- two: "%{count} sekundomaj"
- few: "%{count} sekundami"
- other: "%{count} sekundami"
- less_than_x_minutes:
- one: "mjenje hač 1 mjeńšinu"
- two: "mjenje hač %{count} mjeńšinomaj"
- few: "mjenje hač %{count} mjeńšinami"
- other: "mjenje hač %{count} mjeńšinami"
- x_minutes:
- one: "1 mjeńšinu"
- two: "%{count} mjeńšinomaj"
- few: "%{count} mjeńšinami"
- other: "%{count} mjeńšinami"
- about_x_hours:
- one: "něhdźe 1 hodźinu"
- two: "něhdźe %{count} hodźinomaj"
- few: "něhdźe %{count} hodźinami"
- other: "něhdźe %{count} hodźinami"
- x_days:
- one: "1 dnjom"
- two: "%{count} dnjomaj"
- few: "%{count} dnjemi"
- other: "%{count} dnjemi"
- about_x_months:
- one: "něhdźe 1 měsacom"
- two: "něhdźe %{count} měsacomaj"
- few: "něhdźe %{count} měsacami"
- other: "něhdźe %{count} měsacami"
- x_months:
- one: "1 měsacom"
- two: "%{count} měsacomaj"
- few: "%{count} měsacami"
- other: "%{count} měsacami"
- about_x_years:
- one: "něhdźe 1 lětom"
- two: "něhdźe %{count} lětomaj"
- few: "něhdźe %{count} lětami"
- other: "něhdźe %{count} lětami"
- over_x_years:
- one: "přez 1 lětom"
- two: "přez %{count} lětomaj"
- few: "přez %{count} lětami"
- other: "přez %{count} lětami"
- errors:
- format: "%{attribute} %{message}"
- messages: &errors_messages
- inclusion: "njeje płaćiwa hódnota"
- exclusion: "njesteji k dispoziciji"
- invalid: "njeje płaćiwy"
- confirmation: "njebu wobkrućene"
- accepted: "dyrbi so wobkrućić"
- empty: "njesmě prózdny być"
- blank: "je trěbny"
- too_long:
- one: "je předołhi (maks. 1 znamješko)"
- two: "je předołhi (maks. %{count} znamješce)"
- few: "je předołhi (maks. %{count} znamješka)"
- other: "je předołhi (maks. %{count} znamješkow)"
- too_short:
- one: "je překrótki (min. 1 znamješko)"
- two: "je překrótki (min. %{count} znamješće)"
- few: "je překrótki (min. %{count} znamješka)"
- other: "je překrótki (min. %{count} znamješkow)"
- wrong_length:
- one: "nima prawu dołhosć (1 znamješko wočakowane)"
- two: "nima prawu dołhosć (%{count} znamješce wočakowanej)"
- few: "nima prawu dołhosć (%{count} znamješka wočakowane)"
- other: "nima prawu dołhosć (%{count} znamješkow wočakowanych)"
- taken: "je hižo w datowej bance"
- not_a_number: "njeje ličba"
- greater_than: "dyrbi wjetši hač %{count} być"
- greater_than_or_equal_to: "dyrbi wjetši abo runja %{count} być"
- equal_to: "dyrbi runja %{count} być"
- less_than: "dyrbi mjenje hač %{count} być"
- less_than_or_equal_to: "dyrbi mjenje abo runja %{count} być"
- odd: "dyrbi njeruna ličby być"
- even: "dyrbi runa ličba być"
- template: &errors_template
- header:
- one: "Při składowanju objekta %{model} je k zmylkej dóšło a njebě móžno składować"
- two: "Při składowanju objekta %{model} je k %{count} zmylkam dóšło a njebě móžno składować"
- few: "Při składowanju objekta %{model} je k %{count} zmylkam dóšło a njebě móžno składować"
- other: "Při składowanju objekta %{model} je k %{count} zmylkam dóšło a njebě móžno składować"
- body: "Prošu přepruwuj slědowace pola:"
-
- activerecord:
- errors:
- messages:
- <<: *errors_messages
- template:
- <<: *errors_template
- full_messages:
- format: "%{attribute} %{message}"
\ No newline at end of file
+++ /dev/null
-# Hungarian translations for Ruby on Rails
-# by Richard Abonyi (richard.abonyi@gmail.com)
-# thanks to KKata, replaced and #hup.hu
-# Cleaned up by László Bácsi (http://lackac.hu)
-# updated by kfl62 kfl62g@gmail.com
-
-"hu":
- date:
- formats:
- default: "%Y.%m.%d."
- short: "%b %e."
- long: "%Y. %B %e."
- day_names:
- - vasárnap
- - hétfő
- - kedd
- - szerda
- - csütörtök
- - péntek
- - szombat
- abbr_day_names:
- - v.
- - h.
- - k.
- - sze.
- - cs.
- - p.
- - szo.
- month_names:
- - ~
- - január
- - február
- - március
- - április
- - május
- - június
- - július
- - augusztus
- - szeptember
- - október
- - november
- - december
- abbr_month_names:
- - ~
- - jan.
- - febr.
- - márc.
- - ápr.
- - máj.
- - jún.
- - júl.
- - aug.
- - szept.
- - okt.
- - nov.
- - dec.
- order:
- - :year
- - :month
- - :day
-
- time:
- formats:
- default: "%Y. %b %e., %H:%M"
- short: "%b %e., %H:%M"
- long: "%Y. %B %e., %A, %H:%M"
- am: "de."
- pm: "du."
-
- support:
- array:
- words_connector: ", "
- two_words_connector: " és "
- last_word_connector: " és "
- select:
- prompt: "Válasszon"
-
- number:
- format:
- precision: 2
- separator: ','
- delimiter: ' '
- significant: true
- strip_insignificant_zeros: true
- currency:
- format:
- unit: 'Ft'
- precision: 0
- format: '%n %u'
- separator: ","
- delimiter: ""
- significant: true
- strip_insignificant_zeros: true
- percentage:
- format:
- delimiter: ""
- precision:
- format:
- delimiter: ""
- human:
- format:
- delimiter: ""
- precision: 1
- significant: true
- strip_insignificant_zeros: true
- storage_units:
- format: "%n %u"
- units:
- byte:
- one: "bájt"
- other: "bájt"
- kb: "KB"
- mb: "MB"
- gb: "GB"
- tb: "TB"
- decimal_units:
- format: "%n %u"
- units:
- unit: ""
- thousand: Ezer
- million: Millió
- billion: Milliárd
- trillion: Trillió
- quadrillion: Kvadrillió
-
- datetime:
- distance_in_words:
- half_a_minute: 'fél perc'
- less_than_x_seconds:
-# zero: 'kevesebb, mint 1 másodperc'
- one: 'kevesebb, mint 1 másodperc'
- other: 'kevesebb, mint %{count} másodperc'
- x_seconds:
- one: '1 másodperc'
- other: '%{count} másodperc'
- less_than_x_minutes:
-# zero: 'kevesebb, mint 1 perc'
- one: 'kevesebb, mint 1 perc'
- other: 'kevesebb, mint %{count} perc'
- x_minutes:
- one: '1 perc'
- other: '%{count} perc'
- about_x_hours:
- one: 'kb 1 óra'
- other: 'kb %{count} óra'
- x_days:
- one: '1 nap'
- other: '%{count} nap'
- about_x_months:
- one: 'kb 1 hónap'
- other: 'kb %{count} hónap'
- x_months:
- one: '1 hónap'
- other: '%{count} hónap'
- about_x_years:
- one: 'kb 1 év'
- other: 'kb %{count} év'
- over_x_years:
- one: 'több, mint 1 év'
- other: 'több, mint %{count} év'
- almost_x_years:
- one: "majdnem 1 év"
- other: "majdnem %{count} év"
- prompts:
- year: "Év"
- month: "Hónap"
- day: "Nap"
- hour: "Óra"
- minute: "Perc"
- second: "Másodperc"
-
- helpers:
- select:
- prompt: "Válasszon"
- submit:
- create: 'Új %{model}'
- update: '%{model} Módosítása'
- submit: '%{model} Mentése'
-
- errors:
- format: "%{attribute} %{message}"
- messages: &errors_messages
- inclusion: "nincs a listában"
- exclusion: "nem elérhető"
- invalid: "nem megfelelő"
- confirmation: "nem egyezik"
- accepted: "nincs elfogadva"
- empty: "nincs megadva"
- blank: "nincs megadva"
- too_long: "túl hosszú (nem lehet több %{count} karakternél)"
- too_short: "túl rövid (legalább %{count} karakter kell legyen)"
- wrong_length: "nem megfelelő hosszúságú (%{count} karakter szükséges)"
- not_a_number: "nem szám"
- not_an_integer: "egész számnak kell lennie"
- greater_than: "nagyobb kell legyen, mint %{count}"
- greater_than_or_equal_to: "legalább %{count} kell legyen"
- equal_to: "pontosan %{count} kell legyen"
- less_than: "kevesebb, mint %{count} kell legyen"
- less_than_or_equal_to: "legfeljebb %{count} lehet"
- odd: "páratlan kell legyen"
- even: "páros kell legyen"
- taken: "már foglalt"
- record_invalid: "Sikertelen validálás %{errors}"
- template: &errors_template
- header:
- one: "1 hiba miatt nem menthető a következő: %{model}"
- other: "%{count} hiba miatt nem menthető a következő: %{model}"
- body: "Problémás mezők:"
-
- activerecord:
- errors:
- messages:
- <<: *errors_messages
- template:
- <<: *errors_template
- full_messages:
- format: "%{attribute} %{message}"
+++ /dev/null
-# Indonesian translations for Ruby on Rails
-# by wynst (wynst.uei@gmail.com)
-
-id:
- date:
- formats:
- default: "%d %B %Y"
- long: "%A, %d %B %Y"
- short: "%d.%m.%Y"
-
- day_names:
- - Minggu
- - Senin
- - Selasa
- - Rabu
- - Kamis
- - "Jum'at"
- - Sabtu
- abbr_day_names:
- - Min
- - Sen
- - Sel
- - Rab
- - Kam
- - Jum
- - Sab
- month_names:
- - ~
- - Januari
- - Februari
- - Maret
- - April
- - Mei
- - Juni
- - Juli
- - Agustus
- - September
- - Oktober
- - November
- - Desember
- abbr_month_names:
- - ~
- - Jan
- - Feb
- - Mar
- - Apr
- - Mei
- - Jun
- - Jul
- - Agu
- - Sep
- - Okt
- - Nov
- - Des
- order:
- - :day
- - :month
- - :year
-
- time:
- formats:
- default: "%a, %d %b %Y %H.%M.%S %z"
- short: "%d %b %H.%M"
- long: "%d %B %Y %H.%M"
- am: "am"
- pm: "pm"
-
- support:
- select:
- prompt: "Silahkan pilih"
- array:
- words_connector: ", "
- two_words_connector: ", "
- last_word_connector: " dan "
-
- number:
- format:
- delimiter: "."
- separator: ","
- precision: 2
-
- currency:
- format:
- format: "%n. %u"
- unit: "Rp"
- separator: ","
- delimiter: "."
- precision: 2
-
- percentage:
- format:
- delimiter: "."
- separator: ","
- precision: 2
-
- precision:
- format:
- delimiter: "."
- separator: ","
-
- human:
- format:
- delimiter: "."
- separator: ","
- precision: 1
- storage_units:
- - Byte
- - KB
- - MB
- - GB
- - TB
-
- datetime:
- distance_in_words:
- half_a_minute: "setengah menit"
- less_than_x_seconds:
- zero: "kurang dari 1 detik"
- one: "kurang dari 1 detik"
- other: "kurang dari %{count} detik"
- x_seconds:
- one: "satu detik"
- other: "%{count} detik"
- less_than_x_minutes:
- zero: "kurang dari 1 menit"
- one: "kurang dari 1 menit"
- other: "kurang dari %{count} menit"
- x_minutes:
- one: "satu menit"
- other: "%{count} menit"
- about_x_hours:
- one: "sekitar satu jam"
- other: "sekitar %{count} jam"
- x_days:
- one: "sehari"
- other: "%{count} hari"
- about_x_months:
- one: "sekitar sebulan"
- other: "sekitar %{count} bulan"
- x_months:
- one: "sebulan"
- other: "%{count} bulan"
- about_x_years:
- one: "setahun"
- other: "noin %{count} tahun"
- over_x_years:
- one: "lebih dari setahun"
- other: "lebih dari %{count} tahun"
- almost_x_years:
- one: "hampir setahun"
- other: "hampir %{count} tahun"
- prompts:
- year: "Tahun"
- month: "Bulan"
- day: "Hari"
- hour: "Jam"
- minute: "Menit"
- second: "Detik"
-
- helpers:
- select:
- prompt: "Silahkan pilih"
-
- submit:
- create: 'Buat %{model}'
- update: 'Update %{model}'
- submit: 'Simpan %{model}'
-
- errors:
- format: "%{attribute} %{message}"
-
- messages: &errors_messages
- inclusion: "tidak termasuk"
- exclusion: "sudah digunakan"
- invalid: "tidak valid"
- confirmation: "tidak sesuai dengan konfirmasi"
- accepted: "harus diterima"
- empty: "tidak bisa kosong"
- blank: "tidak bisa kosong"
- too_long: "terlalu panjang (maksimum %{count} karakter)"
- too_short: "terlalu pendek (minimum %{count} karakter)"
- wrong_length: "jumlah karakter salah (seharusnya %{count} karakter)"
- taken: "sudah digunakan"
- not_a_number: "bukan angka"
- greater_than: "harus lebih besar dari %{count}"
- greater_than_or_equal_to: "harus sama atau lebih besar dari %{count}"
- equal_to: "harus sama dengan %{count}"
- less_than: "harus lebih kecil dari %{count}"
- less_than_or_equal_to: "harus sama atau lebih kecil dari %{count}"
- odd: "harus ganjil"
- even: "harus genap"
- record_invalid: "Verifikasi gagal: %{errors}"
- template: &errors_template
- header:
- one: "1 kesalahan mengakibatkan %{model} ini tidak bisa disimpan"
- other: "%{count} kesalahan mengakibatkan %{model} ini tidak bisa disimpan"
- body: "Ada masalah dengan field berikut:"
-
- activerecord:
- errors:
- messages:
- <<: *errors_messages
- template:
- <<: *errors_template
- full_messages:
- format: "%{attribute} %{message}"
-
- number:
- format:
- separator: ","
- delimiter: "."
- precision: 3
- significant: false
- strip_insignificant_zeros: false
-
- currency:
- format:
- format: "%u%n"
- unit: "Rp"
- separator: ","
- delimiter: "."
- precision: 2
- significant: false
- strip_insignificant_zeros: false
-
- percentage:
- format:
- delimiter: ""
-
- precision:
- format:
- delimiter: ""
-
- human:
- format:
- delimiter: ""
- precision: 3
- significant: true
- strip_insignificant_zeros: true
- storage_units:
- format: "%n %u"
- units:
- byte:
- one: "Byte"
- other: "Byte"
- kb: "KB"
- mb: "MB"
- gb: "GB"
- tb: "TB"
- decimal_units:
- format: "%n %u"
- units:
- unit: ""
- thousand: Ribu
- million: Juta
- billion: Miliar
- trillion: Triliun
- quadrillion: Quadriliun
+++ /dev/null
-# Icelandic, by Ævar Arnfjörð Bjarmason <avarab@gmail.com>
-# Corrections by Ásgeir Bjarni Ingvarsson
-
-"is":
- date:
- formats:
- default: "%d.%m.%Y"
- short: "%e. %b"
- long: "%e. %B %Y"
-
- day_names:
- - sunnudaginn
- - mánudaginn
- - þriðjudaginn
- - miðvikudaginn
- - fimmtudaginn
- - föstudaginn
- - laugardaginn
- abbr_day_names:
- - sun
- - mán
- - þri
- - mið
- - fim
- - fös
- - lau
-
- month_names:
- - ~
- - janúar
- - febrúar
- - mars
- - apríl
- - maí
- - júní
- - júlí
- - ágúst
- - september
- - október
- - nóvember
- - desember
- abbr_month_names:
- - ~
- - jan
- - feb
- - mar
- - apr
- - maí
- - jún
- - júl
- - ágú
- - sep
- - okt
- - nóv
- - des
- order:
- - :day
- - :month
- - :year
-
- time:
- formats:
- default: "%A %e. %B %Y kl. %H:%M"
- short: "%e. %B kl. %H:%M"
- long: "%A %e. %B %Y kl. %H:%M"
- am: ""
- pm: ""
-
- support:
- array:
- words_connector: ", "
- two_words_connector: " og "
- last_word_connector: " og "
-
- select:
- prompt: "Veldu"
-
- number:
- format:
- separator: "."
- delimiter: ","
- precision: 3
- significant: false
- strip_insignificant_zeros: false
-
- currency:
- format:
- format: "%n %u"
- unit: "kr."
- separator: "."
- delimiter: ","
- precision: 2
- significant: false
- strip_insignificant_zeros: false
-
- percentage:
- format:
- delimiter: ""
-
- precision:
- format:
- delimiter: ""
-
- human:
- format:
- delimiter: ""
- precision: 3
- significant: true
- strip_insignificant_zeros: true
- storage_units:
- format: "%n %u"
- units:
- byte:
- one: "bæti"
- other: "bæti"
- kb: "KB"
- mb: "MB"
- gb: "GB"
- tb: "TB"
- decimal_units:
- format: "%n %u"
- units:
- unit: ""
- thousand: þúsund
- million:
- one: milljón
- other: milljónir
- billion:
- one: milliarður
- other: milliarðar
- trillion:
- one: billjón
- other: billjónir
- quadrillion:
- one: billjarður
- other: billjarðar
-
- datetime:
- distance_in_words:
- half_a_minute: "hálf mínúta"
- less_than_x_seconds:
- one: "minna en 1 sekúnda"
- other: "minna en %{count} sekúndur"
- x_seconds:
- one: "1 sekúnda"
- other: "%{count} sekúndur"
- less_than_x_minutes:
- one: "minna en 1 mínúta"
- other: "minna en %{count} mínútur"
- x_minutes:
- one: "1 mínúta"
- other: "%{count} mínútur"
- about_x_hours:
- one: "u.þ.b. 1 klukkustund"
- other: "u.þ.b. %{count} klukkustundir"
- x_days:
- one: "1 dagur"
- other: "%{count} dagar"
- about_x_months:
- one: "u.þ.b. 1 mánuður"
- other: "u.þ.b. %{count} mánuðir"
- x_months:
- one: "1 mánuður"
- other: "%{count} mánuðir"
- about_x_years:
- one: "u.þ.b. 1 ár"
- other: "u.þ.b. %{count} ár"
- over_x_years:
- one: "meira en 1 ár"
- other: "meira en %{count} ár"
- almost_x_years:
- one: "næstum 1 ár"
- other: "næstum %{count} ár"
- prompts:
- year: "Ár"
- month: "Mánuður"
- day: "Dagur"
- hour: "Klukkustund"
- minute: "Mínúta"
- second: "Sekúnda"
-
- helpers:
- select:
- prompt: "Veldu"
-
- submit:
- create: 'Búa til %{model}'
- update: 'Uppfæra %{model}'
- submit: 'Geyma %{model}'
-
- errors:
- format: "%{attribute} %{message}"
-
- messages: &errors_messages
- inclusion: "er ekki í listanum"
- exclusion: "er frátekið"
- invalid: "er ógilt"
- confirmation: "er ekki jafngilt staðfestingunni"
- accepted: "þarf að vera tekið gilt"
- empty: "má ekki vera tómt"
- blank: "má ekki innihalda auða stafi"
- too_long: "er of langt (má mest vera %{count} stafir)"
- too_short: "er of stutt (má minnst vera %{count} stafir)"
- wrong_length: "er af rangri lengd (má mest vera %{count} stafir)"
- not_a_number: "er ekki tala"
- not_an_integer: "verður að vera heiltala"
- greater_than: "þarf að vera stærri en %{count}"
- greater_than_or_equal_to: "þarf að vera stærri en eða jafngilt %{count}"
- equal_to: "þarf að vera jafngilt %{count}"
- less_than: "þarf að vera minna en %{count}"
- less_than_or_equal_to: "þarf að vera minna en eða jafngilt %{count}"
- odd: "þarf að vera oddatala"
- even: "þarf að vera slétt tala"
- taken: "er þegar í notkun"
- record_invalid: "Villur: %{errors}"
- template: &errors_template
- header:
- one: "Ekki var hægt að vista %{model} vegna einnar villu."
- other: "Ekki var hægt að vista %{model} vegna %{count} villna."
- body: "Upp kom vandamál í eftirfarandi dálkum:"
-
- activerecord:
- errors:
- messages:
- <<: *errors_messages
- template:
- <<: *errors_template
-
- full_messages:
- format: "%{attribute} %{message}"
+++ /dev/null
-# Italian translations for Ruby on Rails
-#
-# Contributors:
-# - Claudio Poli (masterkain@gmail.com)
-# - Simone Carletti (weppos@weppos.net)
-# - Davide Guerri (d.guerri@caspur.it)
-
-it:
- number:
- format:
- delimiter: ","
- precision: 2
- significant: false
- strip_insignificant_zeros: false
- separator: "."
-
- currency:
- format:
- format: "%n %u"
- unit: "€"
- separator: "."
- delimiter: ","
- precision: 2
- significant: false
- strip_insignificant_zeros: false
-
- percentage:
- format:
- delimiter: ""
- # precision:
-
- precision:
- format:
- # separator:
- delimiter: ""
- # precision:
-
- human:
- format:
- # separator:
- delimiter: ""
- precision: 1
- significant: true
- strip_insignificant_zeros: true
- storage_units:
- format: "%n %u"
- units:
- byte:
- one: "Byte"
- other: "Byte"
- kb: "KB"
- mb: "MB"
- gb: "GB"
- tb: "TB"
- decimal_units:
- format: "%n %u"
- units:
- unit: ""
- thousand: "Mila"
- million: "Milioni"
- billion: "Miliardi"
- trillion: "Bilioni"
- quadrillion: "Biliardi"
-
- date:
- formats:
- default: "%d-%m-%Y"
- short: "%d %b"
- long: "%d %B %Y"
-
- day_names:
- - Domenica
- - Lunedì
- - Martedì
- - Mercoledì
- - Giovedì
- - Venerdì
- - Sabato
- abbr_day_names:
- - Dom
- - Lun
- - Mar
- - Mer
- - Gio
- - Ven
- - Sab
-
- month_names:
- - ~
- - Gennaio
- - Febbraio
- - Marzo
- - Aprile
- - Maggio
- - Giugno
- - Luglio
- - Agosto
- - Settembre
- - Ottobre
- - Novembre
- - Dicembre
- abbr_month_names:
- - ~
- - Gen
- - Feb
- - Mar
- - Apr
- - Mag
- - Giu
- - Lug
- - Ago
- - Set
- - Ott
- - Nov
- - Dic
- order:
- - :day
- - :month
- - :year
-
- time:
- formats:
- default: "%a %d %b %Y, %H:%M:%S %z"
- short: "%d %b %H:%M"
- long: "%d %B %Y %H:%M"
- am: 'am'
- pm: 'pm'
-
- datetime:
- distance_in_words:
- half_a_minute: "mezzo minuto"
- less_than_x_seconds:
- one: "meno di un secondo"
- other: "meno di %{count} secondi"
- x_seconds:
- one: "1 secondo"
- other: "%{count} secondi"
- less_than_x_minutes:
- one: "meno di un minuto"
- other: "meno di %{count} minuti"
- x_minutes:
- one: "1 minuto"
- other: "%{count} minuti"
- about_x_hours:
- one: "circa un'ora"
- other: "circa %{count} ore"
- x_days:
- one: "1 giorno"
- other: "%{count} giorni"
- about_x_months:
- one: "circa un mese"
- other: "circa %{count} mesi"
- x_months:
- one: "1 mese"
- other: "%{count} mesi"
- about_x_years:
- one: "circa un anno"
- other: "circa %{count} anni"
- over_x_years:
- one: "oltre un anno"
- other: "oltre %{count} anni"
- almost_x_years:
- one: "circa 1 anno"
- other: "circa %{count} anni"
- prompts:
- year: "Anno"
- month: "Mese"
- day: "Giorno"
- hour: "Ora"
- minute: "Minuto"
- second: "Secondi"
-
- support:
- array:
- words_connector: ", "
- two_words_connector: " e "
- last_word_connector: " e "
-
- select:
- prompt: "Per favore, seleziona"
-
- helpers:
- select:
- prompt: "Per favore, seleziona"
-
- submit:
- create: 'Crea %{model}'
- update: 'Aggiorna %{model}'
- submit: 'Invia %{model}'
-
- errors:
- format: "%{attribute} %{message}"
-
- messages: &errors_messages
- inclusion: "non è incluso nella lista"
- exclusion: "è riservato"
- invalid: "non è valido"
- confirmation: "non coincide con la conferma"
- accepted: "deve essere accettata"
- empty: "non può essere vuoto"
- blank: "non può essere lasciato in bianco"
- too_long:
- one: "è troppo lungo (il massimo è 1 carattere)"
- other: "è troppo lungo (il massimo è %{count} caratteri)"
- too_short:
- one: "è troppo corto (il minimo è 1 carattere)"
- other: "è troppo corto (il minimo è %{count} caratteri)"
- wrong_length:
- one: "è della lunghezza sbagliata (deve essere di 1 carattere)"
- other: "è della lunghezza sbagliata (deve essere di %{count} caratteri)"
- not_a_number: "non è un numero"
- not_an_integer: "non è un intero"
- greater_than: "deve essere superiore a %{count}"
- greater_than_or_equal_to: "deve essere superiore o uguale a %{count}"
- equal_to: "deve essere uguale a %{count}"
- less_than: "deve essere meno di %{count}"
- less_than_or_equal_to: "deve essere meno o uguale a %{count}"
- odd: "deve essere dispari"
- even: "deve essere pari"
- taken: "è già in uso"
- record_invalid: "Validazione fallita: %{errors}"
- template: &errors_template
- header:
- one: "Non posso salvare questo %{model}: 1 errore"
- other: "Non posso salvare questo %{model}: %{count} errori."
- body: "Per favore ricontrolla i seguenti campi:"
-
- activerecord:
- errors:
- messages:
- <<: *errors_messages
- template:
- <<: *errors_template
-
- full_messages:
- format: "%{attribute} %{message}"
+++ /dev/null
-# Japanese translations for Ruby on Rails
-# by Akira Matsuda (ronnie@dio.jp)
-# AR error messages are basically taken from Ruby-GetText-Package. Thanks to Masao Mutoh.
-# contributors:
-# - Tsutomu Kuroda (t-kuroda@oiax.jp)
-
-ja:
- date:
- formats:
- default: "%Y/%m/%d"
- short: "%m/%d"
- long: "%Y年%m月%d日(%a)"
-
- day_names:
- - 日曜日
- - 月曜日
- - 火曜日
- - 水曜日
- - 木曜日
- - 金曜日
- - 土曜日
- abbr_day_names:
- - 日
- - 月
- - 火
- - 水
- - 木
- - 金
- - 土
-
- month_names:
- - ~
- - 1月
- - 2月
- - 3月
- - 4月
- - 5月
- - 6月
- - 7月
- - 8月
- - 9月
- - 10月
- - 11月
- - 12月
- abbr_month_names:
- - ~
- - 1月
- - 2月
- - 3月
- - 4月
- - 5月
- - 6月
- - 7月
- - 8月
- - 9月
- - 10月
- - 11月
- - 12月
-
- order:
- - :year
- - :month
- - :day
-
- time:
- formats:
- default: "%Y/%m/%d %H:%M:%S"
- short: "%y/%m/%d %H:%M"
- long: "%Y年%m月%d日(%a) %H時%M分%S秒 %z"
- am: "午前"
- pm: "午後"
-
- support:
- array:
- words_connector: "と"
- two_words_connector: "と"
- last_word_connector: "と"
-
- select:
- prompt: "選択してください。"
-
- number:
- format:
- separator: "."
- delimiter: ","
- precision: 3
- significant: false
- strip_insignificant_zeros: false
-
- currency:
- format:
- format: "%n%u"
- unit: "円"
- separator: "."
- delimiter: ","
- precision: 3
- significant: false
- strip_insignificant_zeros: false
-
- percentage:
- format:
- delimiter: ""
-
- precision:
- format:
- delimiter: ""
-
- human:
- format:
- delimiter: ""
- precision: 3
- significant: true
- strip_insignificant_zeros: true
-
- storage_units:
- format: "%n%u"
- units:
- byte: "バイト"
- kb: "キロバイト"
- mb: "メガバイト"
- gb: "ギガバイト"
- tb: "テラバイト"
-
- decimal_units:
- format: "%n %u"
- units:
- unit: ""
- thousand: "千"
- million: "百万"
- billion: "十億"
- trillion: "兆"
- quadrillion: "千兆"
-
- datetime:
- distance_in_words:
- half_a_minute: "30秒前後"
- less_than_x_seconds:
- one: "1秒以内"
- other: "%{count}秒以内"
- x_seconds:
- one: "1秒"
- other: "%{count}秒"
- less_than_x_minutes:
- one: "1分以内"
- other: "%{count}分以内"
- x_minutes:
- one: "1分"
- other: "%{count}分"
- about_x_hours:
- one: "約1時間"
- other: "約%{count}時間"
- x_days:
- one: "1日"
- other: "%{count}日"
- about_x_months:
- one: "約1ヶ月"
- other: "約%{count}ヶ月"
- x_months:
- one: "1ヶ月"
- other: "%{count}ヶ月"
- about_x_years:
- one: "約1年"
- other: "約%{count}年"
- over_x_years:
- one: "1年以上"
- other: "%{count}年以上"
- almost_x_years:
- one: "1年弱"
- other: "%{count}年弱"
-
- prompts:
- year: "年"
- month: "月"
- day: "日"
- hour: "時"
- minute: "分"
- second: "秒"
-
- helpers:
- select:
- prompt: "選択してください。"
-
- submit:
- create: "登録する"
- update: "更新する"
- submit: "保存する"
-
- errors:
- format: "%{attribute}%{message}"
-
- messages: &errors_messages
- inclusion: "は一覧にありません。"
- exclusion: "は予約されています。"
- invalid: "は不正な値です。"
- confirmation: "が一致しません。"
- accepted: "を受諾してください。"
- empty: "を入力してください。"
- blank: "を入力してください。"
- too_long: "は%{count}文字以内で入力してください。"
- too_short: "は%{count}文字以上で入力してください。"
- wrong_length: "は%{count}文字で入力してください。"
- not_a_number: "は数値で入力してください。"
- not_an_integer: "は整数で入力してください。"
- greater_than: "は%{count}より大きい値にしてください。"
- greater_than_or_equal_to: "は%{count}以上の値にしてください。"
- equal_to: "は%{count}にしてください。"
- less_than: "は%{count}より小さい値にしてください。"
- less_than_or_equal_to: "は%{count}以下の値にしてください。"
- odd: "は奇数にしてください。"
- even: "は偶数にしてください。"
- taken: "はすでに存在します。"
- record_invalid: "バリデーションに失敗しました。 %{errors}"
- template: &errors_template
- header:
- one: "%{model}にエラーが発生しました。"
- other: "%{model}に%{count}つのエラーが発生しました。"
- body: "次の項目を確認してください。"
-
- activerecord:
- errors:
- messages:
- <<: *errors_messages
- template:
- <<: *errors_template
- full_messages:
- format: "%{attribute}%{message}"
+++ /dev/null
-# Kannada translations for Ruby on Rails
-# by Sukeerthi Adiga G(sukeerthiadiga@gmail.com)
-
-kn:
- date:
- formats:
- default: "%Y-%m-%d"
- short: "%b %d"
- long: "%B %d, %Y"
-
- day_names:
- - ರವಿವಾರ
- - ಸೋಮವಾರ
- - ಮಂಗಳವಾರ
- - ಬುಧವಾರ
- - ಗುರುವಾರ
- - ಶುಕ್ರವಾರ
- - ಶನಿವಾರ
- abbr_day_names:
- - ರವಿ
- - ಸೋಮ
- - ಮಂಗಳ
- - ಬುಧ
- - ಗುರು
- - ಶುಕ್ರ
- - ಶನಿ
-
- month_names:
- - ~
- - ಜನವರಿ
- - ಫೆಬ್ರವರಿ
- - ಮಾರ್ಚ್
- - ಏಪ್ರಿಲ್
- - ಮೇ
- - ಜೂನ್
- - ಜುಲೈ
- - ಆಗಸ್ಟ್
- - ಸೆಪ್ಟೆಂಬರ್
- - ಅಕ್ಟೋಬರ್
- - ನವಂಬರ್
- - ಡಿಸೆಂಬರ್
-
- abbr_month_names:
- - ~
- - Jan
- - Feb
- - Mar
- - Apr
- - May
- - Jun
- - Jul
- - Aug
- - Sep
- - Oct
- - Nov
- - Dec
- order:
- - :year
- - :month
- - :day
-
- time:
- formats:
- default: "%a, %d %b %Y %H:%M:%S %z"
- short: "%d %b %H:%M"
- long: "%B %d, %Y %H:%M"
- am: "ಪ್ರಾತಃಕಾಲ"
- pm: "ಅಪರನ್ನಃ"
-
- support:
- array:
- words_connector: ", "
- two_words_connector: " ಮತ್ತು "
- last_word_connector: ", ಮತ್ತು "
-
- select:
- prompt: "ದಯವಿಟ್ಟು ಆರಿಸಿ"
-
- number:
- format:
- separator: "."
- delimiter: ","
- precision: 3
- significant: false
- strip_insignificant_zeros: false
-
- currency:
- format:
- format: "%u%n"
- unit: "$"
- separator: "."
- delimiter: ","
- precision: 2
- significant: false
- strip_insignificant_zeros: false
-
- percentage:
- format:
- delimiter: ""
-
- precision:
- format:
- delimiter: ""
-
- human:
- format:
- delimiter: ""
- precision: 3
- significant: true
- strip_insignificant_zeros: true
- storage_units:
- format: "%n %u"
- units:
- byte:
- one: "Byte"
- other: "Bytes"
- kb: "KB"
- mb: "MB"
- gb: "GB"
- tb: "TB"
- decimal_units:
- format: "%n %u"
- units:
- unit: ""
- thousand: ಸಾವಿರ
- million: ದಶಲಕ್ಷ
- billion: ಲಕ್ಷಕೋಟಿ
- trillion: ನೀಲ್
- quadrillion: ಪದ್ಮ
-
- datetime:
- distance_in_words:
- half_a_minute: "ಒಂದು ಅರ್ಧ ನಿಮಿಷ"
- less_than_x_seconds:
- one: "ಒಂದು ಸೆಕೆಂಡಿಗೂ ಕಡಿಮೆ"
- other: "%{count} ಸೆಕೆಂಡಿಗಿಂತ ಕಡಿಮೆ"
- x_seconds:
- one: "1 ಸೆಕೆಂಡ್"
- other: "%{count} ಸೆಕೆಂಡುಗಳು"
- less_than_x_minutes:
- one: "ಒಂದು ನಿಮಿಷಕ್ಕೂ ಕಡಿಮೆ"
- other: "%{count} ನಿಮಿಷಕ್ಕಿಂತ ಕಡಿಮೆ"
- x_minutes:
- one: "1 ನಿಮಿಷ"
- other: "%{count} ನಿಮಿಷಗಳು"
- about_x_hours:
- one: "ಸುಮಾರು ಒಂದು ಗಂಟೆ"
- other: "ಸುಮಾರು %{count} ಗಂಟೆಗಳು"
- x_days:
- one: "1 ದಿನ"
- other: "%{count} ದಿನಗಳು"
- about_x_months:
- one: "ಸುಮಾರು ಒಂದು ತಿಂಗಳು"
- other: "ಸುಮಾರು %{count} ತಿಂಗಳುಗಳು"
- x_months:
- one: "1 ತಿಂಗಳು"
- other: "%{count} ತಿಂಗಳುಗಳು"
- about_x_years:
- one: "ಸುಮಾರು ಒಂದು ವರುಷ"
- other: "ಸುಮಾರು %{count} ವರುಷಗಳು"
- over_x_years:
- one: "ಒಂದು ವರುಷಕ್ಕಿಂತ ಹೆಚ್ಚು"
- other: "%{count} ವರುಷಗಳಿಗಿಂತ ಹೆಚ್ಚು"
- almost_x_years:
- one: "ಸರಿಸುಮಾರು ಒಂದು ವರುಷ"
- other: "ಸರಿಸುಮಾರು %{count} ವರುಷಗಳು"
- prompts:
- year: "ವರುಷ"
- month: "ತಿಂಗಳು"
- day: "ದಿನ"
- hour: "ಗಂಟೆ"
- minute: "ನಿಮಿಷ"
- second: "ಸೆಕೆಂಡು"
-
- helpers:
- select:
- prompt: "ದಯವಿಟ್ಟು ಆರಿಸಿ"
-
- submit:
- create: '%{model} ರಚಿಸಿ'
- update: '%{model} ರಚಿಸಿ'
- submit: '%{model} ಕಳುಹಿಸು'
-
- errors:
- format: "%{attribute} %{message}"
-
- messages: &errors_messages
- inclusion: "ಪಟ್ಟಿಯಲ್ಲಿ ಶಾಮೀಲು ಆಗಿಲ್ಲ"
- exclusion: "ಕಾಯ್ದಿರಿಸಲಾಗಿದೆ"
- invalid: "ನಿರರ್ಥಕವಾಗಿದೆ"
- confirmation: "ಸಮರ್ಥನೆ ಸರಿಬರಲ್ಲಿಲ್ಲ"
- accepted: "ಒಪ್ಪಿಕೊಳ್ಳಬೇಕು"
- empty: "ಖಾಲಿ ಬಿಡಲು ಸಧ್ಯವಿಲ್ಲ"
- blank: "ಖಾಲಿ ಬಿಡಲು ಸಧ್ಯವಿಲ್ಲ"
- too_long: "ಬಹಳ ದೊಡ್ಡದಾಗಿದೆ (ಗರಿಷ್ಟ %{count} ಅಕ್ಷರಗಳು)"
- too_short: "ಬಹಳ ಚಿಕ್ಕದಾಗಿದೆ (ಕನಿಷ್ಠ %{count} ಅಕ್ಷರಗಳು)"
- wrong_length: "ತಪ್ಪು ಉದ್ದವಿದೆ (%{count} ಅಕ್ಷರಗಳಿರಬೇಕು)"
- not_a_number: "ಸಂಖೆ ಆಗಿಲ್ಲ"
- not_an_integer: "ಸಂಖೆ ಆಗಿರಬೇಕು"
- greater_than: "%{count} ಕ್ಕಿಂತ ಹೆಚ್ಚಿರಬೇಕು"
- greater_than_or_equal_to: "%{count} ಕಿಂತ ಹೆಚ್ಚು ಅಥವಾ ಸಮಾನವಾಗಿರ ಇರಬೇಕು"
- equal_to: "%{count} ಕ್ಕೆ ಸಮಾನವಾಗಿರಬೇಕು"
- less_than: "%{count} ಕ್ಕಿಂತ ಕಡಿಮೆ ಆಗಿರಬೇಕು"
- less_than_or_equal_to: "%{count} ಕಿಂತ ಕಡಿಮೆ ಅಥವಾ ಸಮಾನವಾಗಿರ ಇರಬೇಕು"
- odd: "ಬೆಸ ಆಗಿರಬೇಕು"
- even: "ಸಮ ಆಗಿರಬೇಕು"
- taken: "ತೆಗೆದುಕೊಂಡಾಗಿದೆ"
- record_invalid: "ತಪ್ಪು ಆಧಾರ: %{errors}"
- template: &errors_template
- header:
- one: "1 ಧೋಷದ ಪರಿಣಾಮ %{model} ಅನ್ನು ರಚಿಸಲು ಸಾಧ್ಯವಾಗಲಿಲ್ಲ"
- other: "%{count} ಧೋಷಗಳ ಪರಿಣಾಮ %{model} ಅನ್ನು ರಚಿಸಲು ಸಾಧ್ಯವಾಗಲಿಲ್ಲ"
- body: "ಸಮಸ್ಯೆಗಳಿರುವ ಜಾಗಗಳು:"
-
- activerecord:
- errors:
- messages:
- <<: *errors_messages
- template:
- <<: *errors_template
- full_messages:
- format: "%{attribute} %{message}"
+++ /dev/null
-# Korean (한글) translations for Ruby on Rails
-# by John Hwang (jhwang@tavon.org)
-# http://github.com/tavon
-# and Sunghee Kang(paranoiase@gmail.com)
-# http://www.twitter.com/paranoiase
-
-ko:
- date:
- formats:
- default: "%Y/%m/%d"
- short: "%m/%d"
- long: "%Y년 %m월 %d일 (%a)"
-
- day_names:
- - 일요일
- - 월요일
- - 화요일
- - 수요일
- - 목요일
- - 금요일
- - 토요일
- abbr_day_names:
- - 일
- - 월
- - 화
- - 수
- - 목
- - 금
- - 토
-
- month_names:
- - ~
- - 1월
- - 2월
- - 3월
- - 4월
- - 5월
- - 6월
- - 7월
- - 8월
- - 9월
- - 10월
- - 11월
- - 12월
- abbr_month_names:
- - ~
- - 1월
- - 2월
- - 3월
- - 4월
- - 5월
- - 6월
- - 7월
- - 8월
- - 9월
- - 10월
- - 11월
- - 12월
-
- order:
- - :year
- - :month
- - :day
-
- time:
- formats:
- default: "%Y/%m/%d %H:%M:%S"
- short: "%y/%m/%d %H:%M"
- long: "%Y년 %B월 %d일, %H시 %M분 %S초 %Z"
- am: "오전"
- pm: "오후"
-
- support:
- array:
- words_connector: ", "
- two_words_connector: "와(과) "
- last_word_connector: ", "
-
- select:
- prompt: "선택해 주세요"
-
- number:
- format:
- separator: "."
- delimiter: ","
- precision: 3
- significant: false
- strip_insignificant_zeros: false
-
- currency:
- format:
- format: "%n%u"
- unit: "원"
- separator: "."
- delimiter: ","
- precision: 0
- significant: false
- strip_insignificant_zeros: false
-
- percentage:
- format:
- delimiter: ""
-
- precision:
- format:
- delimiter: ""
-
- human:
- format:
- delimiter: ""
- precision: 3
- significant: true
- strip_insignificant_zeros: true
-
- storage_units:
- format: "%n%u"
- units:
- byte: "바이트"
- kb: "킬로바이트"
- mb: "메가바이트"
- gb: "기가바이트"
- tb: "테라바이트"
-
- decimal_units:
- format: "%n%u"
- units:
- unit: ""
- thousand: "천"
- million: "백만"
- billion: "십억"
- trillion: "조"
- quadrillion: "경"
-
- datetime:
- distance_in_words:
- half_a_minute: "30초"
- less_than_x_seconds:
- one: "일 초 이하"
- other: "%{count}초 이하"
- x_seconds:
- one: "일 초"
- other: "%{count}초"
- less_than_x_minutes:
- one: "일 분 이하"
- other: "%{count}분 이하"
- x_minutes:
- one: "일 분"
- other: "%{count}분"
- about_x_hours:
- one: "약 한 시간"
- other: "약 %{count}시간"
- x_days:
- one: "하루"
- other: "%{count}일"
- about_x_months:
- one: "약 한 달"
- other: "약 %{count}달"
- x_months:
- one: "한 달"
- other: "%{count}달"
- about_x_years:
- one: "약 일 년"
- other: "약 %{count}년"
- over_x_years:
- one: "일 년 이상"
- other: "%{count}년 이상"
- almost_x_years:
- one: "일 년 이하"
- other: "%{count}년 이하"
-
- prompts:
- year: "년"
- month: "월"
- day: "일"
- hour: "시"
- minute: "분"
- second: "초"
-
- helpers:
- select:
- prompt: "선택해주세요"
-
- submit:
- create: "등록"
- update: "갱신"
- submit: "제출"
-
- errors:
- format: "%{attribute} %{message}"
-
- messages: &errors_messages
- inclusion: "은(는) 목록에 포함되어 있는 값이 아닙니다"
- exclusion: "은(는) 이미 예약되어 있는 값입니다"
- invalid: "은(는) 올바르지 않은 값입니다"
- confirmation: "은(는) 서로 일치해야 합니다"
- accepted: "을(를) 반드시 확인해야 합니다"
- empty: "에 내용을 입력해 주세요"
- blank: "에 내용을 입력해 주세요"
- too_long: "은(는) %{count}자를 넘을 수 없습니다"
- too_short: "은(는) 적어도 %{count}자를 넘어야 합니다"
- wrong_length: "은(는) %{count}자여야 합니다"
- not_a_number: "에 숫자를 입력해 주세요"
- not_an_integer: "에 정수를 입력해 주세요"
- greater_than: "은(는) %{count}보다 커야 합니다"
- greater_than_or_equal_to: "은(는) %{count}보다 크거야 같아야 합니다"
- equal_to: "은(는) %{count}과 같아야 합니다"
- less_than: "은(는) %{count}보다 작아야 합니다"
- less_than_or_equal_to: "은(는) %{count}과 작거나 같아야 합니다"
- odd: "에 홀수를 입력해 주세요"
- even: "에 짝수를 입력해 주세요"
- taken: "은(는) 이미 존재합니다."
- record_invalid: "데이터 검증에 실패하였습니다. %{errors}"
- template: &errors_template
- header:
- one: "한 개의 오류가 발생해 %{model}를 저장 할 수 없습니다"
- other: "%{count}개의 오류가 발생해 %{model}를 저장 할 수 없습니다"
- body: "다음 항목에 문제가 발견되었습니다:"
-
- activerecord:
- errors:
- messages:
- <<: *errors_messages
- template:
- <<: *errors_template
- full_messages:
- format: "%{attribute} %{message}"
+++ /dev/null
-# Lao translation for Ruby on Rails
-# By justin maccarthy justin.maccarthy@gmail.com with help from Lao language experts...
-#
-
-lo:
- number:
- # Used in number_with_delimiter()
- # These are also the defaults for 'currency', 'percentage', 'precision', and 'human'
- format:
- # Sets the separator between the units, for more precision (e.g. 1.0 / 2.0 == 0.5)
- separator: "."
- # Delimets thousands (e.g. 1,000,000 is a million) (always in groups of three)
- delimiter: ","
- # Number of decimals, behind the separator (the number 1 with a precision of 2 gives: 1.00)
- precision: 3
- significant: false
- strip_insignificant_zeros: false
-
- # Used in number_to_currency()
- currency:
- format:
- # Where is the currency sign? %u is the currency unit, %n the number (default: $5.00)
- format: "%n %u"
- unit: "Kip"
- # These three are to override number.format and are optional
- separator: "."
- delimiter: ","
- precision: 2
- significant: false
- strip_insignificant_zeros: false
-
- # Used in number_to_percentage()
- percentage:
- format:
- # These three are to override number.format and are optional
- # separator:
- delimiter: ""
- # precision:
-
- # Used in number_to_precision()
- precision:
- format:
- # These three are to override number.format and are optional
- # separator:
- delimiter: ""
- # precision:
-
- # Used in number_to_human_size()
- human:
- format:
- # These three are to override number.format and are optional
- # separator:
- delimiter: ""
- precision: 1
- significant: true
- strip_insignificant_zeros: true
- storage_units:
- # Storage units output formatting.
- # %u is the storage unit, %n is the number (default: 2 MB)
- format: "%n %u"
- units:
- byte:
- one: "Byte"
- other: "Bytes"
- kb: "KB"
- mb: "MB"
- gb: "GB"
- tb: "TB"
- decimal_units:
- format: "%n %u"
- units:
- unit: ""
-
- # Used in distance_of_time_in_words(), distance_of_time_in_words_to_now(), time_ago_in_words()
- datetime:
- distance_in_words:
- half_a_minute: "ເຄິ່ງນາທີ "
- less_than_x_seconds:
- one: "ນ້ອຍກວ່າ 1 ວິນາທີ "
- other: "ນ້ອຍກວ່າ %{count} ວິນາທີ "
- x_seconds:
- one: "1 ວິນາທີ "
- other: "%{count} ວິນາທີ "
- less_than_x_minutes:
- one: "ນ້ອຍກວ່າ 1 ນາທີ "
- other: "ນ້ອຍກວ່າ %{count} ນາທີ "
- x_minutes:
- one: "1 ນາທີ "
- other: "%{count} ນາທີ "
- about_x_hours:
- one: "ປະມານ 1 ຊົ່ວໂມງ"
- other: "ປະມານ %{count} ຊົ່ວໂມງ"
- x_days:
- one: "1 ມື້ "
- other: "%{count} ມື້ "
- about_x_months:
- one: "ປະມານ 1 ເດືອນ"
- other: "ປະມານ %{count} ເດືອນ"
- x_months:
- one: "1 ເດືອນ"
- other: "%{count} ເດືອນ"
- about_x_years:
- one: "ປະມານ 1 ປີ "
- other: "ປະມານ %{count} ປີ "
- over_x_years:
- one: "ຫຼາຍກວ່າ 1 ປີ "
- other: "ຫຼາຍກວ່າ %{count} ປີ "
- prompts:
- year: "ປີ"
- month: "ເດືອນ"
- day: "ວັນ"
- hour: "ຊົ່ວໂມງ"
- minute: "ນາທີ"
- second: "ວິນາທີ"
-
- errors:
- format: "%{attribute} %{message}"
- template: &errors_template
- header:
- one: "ບໍ່ສາມາດບັນທຶກ %{model} ໄດ້ເນື່ອງຈາກເກີດຂໍ້ຜິດພາດ"
- other: "ບໍ່ສາມາດບັນທຶກ %{model} ໄດ້ເນື່ອງຈາກ ເກີດ %{count} ຂໍ້ຜິດພາດ"
- body: "ກະລຸນາກວດສອບຂໍ້ມູນໃນຫ້ອງຕໍ່ໄປນີ້ :"
- messages: &errors_messages
- inclusion: "ບໍ່ໄດ້ຮວມຢູ່ໃນບັນຊີລາຍການ"
- exclusion: "ມີການຈອງໄວ້ແລ້ວ"
- invalid: "ບໍ່ຖືກ"
- confirmation: "ບໍ່ຖືກກັບການຢືນຢັນ"
- accepted: "ຕ້ອງຍອມຮັບ"
- empty: "ວ່າງໄວ້ບໍ່ໄດ້"
- blank: "ເປົ່າບໍ່ໄດ້"
- too_long: "ຍາວໂພດ (ສູງສຸດຄື %{count} ຕົວອັກສອນ)"
- too_short: "ສັ້ນໂພດ (ຕຳ່ສຸດຄື %{count} ຕົວອັກສອນ)"
- wrong_length: "ຄວາມຍາວຜິດ (ຄວນຈະເປັນ %{count} ຕົວອັກສອນ)"
- taken: "ຮັບເອົາໄປແລ້ວ"
- not_a_number: "ບໍ່ແມ່ນຕົວເລກ"
- greater_than: "ຕ້ອງສູງກວ່າ %{count}"
- greater_than_or_equal_to: "ຕ້ອງສູງກວ່າ ຫຼື ເທົ່າກັບ %{count}"
- equal_to: "ຕ້ອງເທົ່າກັບ %{count}"
- less_than: "ຕ້ອງຕຳ່ກວ່າ %{count}"
- less_than_or_equal_to: "ຕ້ອງຕຳ່ກວ່າ ຫຼື ເທົ່າກັບ %{count}"
- odd: "ຕ້ອງເປັນເລກຄີກ"
- even: "ຕ້ອງເປັນເລກຄູ່"
- record_invalid: "ການຢືນຢັນບໍ່ສຳເລັດ : %{errors}"
- activerecord:
- errors:
- messages:
- <<: *errors_messages
- template:
- <<: *errors_template
- full_messages:
- format: "%{attribute} %{message}"
-
- date:
- formats:
- # Use the strftime parameters for formats.
- # When no format has been given, it uses default.
- # You can provide other formats here if you like!
- default: "%d-%m-%Y"
- short: "%e %b"
- long: "%e %B %Y"
-
- day_names:
- - "ອາທິດ"
- - "ຈັນ"
- - "ອັງຄານ"
- - "ພຸດ"
- - "ພະຫັດ"
- - "ສຸກ"
- - "ເສົາ"
- abbr_day_names:
- - ""
- - ""
- - ""
- - ""
- - ""
- - ""
- - ""
-
- # Don't forget the nil at the beginning; there's no such thing as a 0th month
- month_names:
- - ~
- - "ມັງກອນ"
- - "ກຸມພາ"
- - "ມີນາ"
- - "ເມສາ"
- - "ພຶດສະພາ"
- - "ມິຖຸນາ"
- - "ກໍລະກົດ"
- - "ສິງຫາ"
- - "ກັນຍາ"
- - "ຕຸລາ"
- - "ພະຈິກ"
- - "ທັນວາ"
- abbr_month_names:
- - ~
- - ""
- - ""
- - ""
- - ""
- - ""
- - ""
- - ""
- - ""
- - ""
- - ""
- - ""
- - ""
- # Used in date_select and datime_select.
- order:
- - :day
- - :month
- - :year
-
- time:
- formats:
- default: "%a %d %b %Y %H:%M:%S %z"
- short: "%d %b %H:%M น."
- long: "%d %B %Y %H:%M น."
- am: ""
- pm: ""
-
-# Used in array.to_sentence.
- support:
- array:
- words_connector: ", "
- two_words_connector: "ແລະ "
- last_word_connector: ", ແລະ "
- select:
- # default value for :prompt => true in FormOptionsHelper
- prompt: "โปรดเลือก"
+++ /dev/null
-# Lithuanian translations for Ruby on Rails
-# by Laurynas Butkus (laurynas.butkus@gmail.com)
-
-lt:
- number:
- format:
- separator: ","
- delimiter: " "
- precision: 3
- significant: false
- strip_insignificant_zeros: false
- currency:
- format:
- format: "%n %u"
- unit: "Lt"
- separator: ","
- delimiter: " "
- precision: 2
- significant: false
- strip_insignificant_zeros: false
- percentage:
- format:
- delimiter: ""
-
- precision:
- format:
- delimiter: ""
-
- human:
- format:
- delimiter: ""
- precision: 1
- significant: true
- strip_insignificant_zeros: true
- storage_units:
- # Storage units output formatting.
- # %u is the storage unit, %n is the number (default: 2 MB)
- format: "%n %u"
- units:
- byte:
- one: "Baitas"
- other: "Baitai"
- kb: "KB"
- mb: "MB"
- gb: "GB"
- tb: "TB"
- decimal_units:
- format: "%n %u"
- units:
- unit: ""
-
- datetime:
- distance_in_words:
- half_a_minute: "pusė minutės"
- less_than_x_seconds:
- one: "mažiau nei 1 sekundė"
- other: "mažiau nei %{count} sekundės"
- x_seconds:
- one: "1 sekundė"
- other: "%{count} sekundės"
- less_than_x_minutes:
- one: "mažiau nei minutė"
- other: "mažiau nei %{count} minutės"
- x_minutes:
- one: "1 minutė"
- other: "%{count} minutės"
- about_x_hours:
- one: "apie 1 valanda"
- other: "apie %{count} valandų"
- x_days:
- one: "1 diena"
- other: "%{count} dienų"
- about_x_months:
- one: "apie 1 mėnuo"
- other: "apie %{count} mėnesiai"
- x_months:
- one: "1 mėnuo"
- other: "%{count} mėnesiai"
- about_x_years:
- one: "apie 1 metai"
- other: "apie %{count} metų"
- over_x_years:
- one: "virš 1 metų"
- other: "virš %{count} metų"
- prompts:
- year: "Metai"
- month: "Mėnuo"
- day: "Diena"
- hour: "Valanda"
- minute: "Minutė"
- second: "Sekundės"
-
- errors:
- format: "%{attribute} %{message}"
- template: &errors_template
- header:
- one: "Išsaugant objektą %{model} rasta klaida"
- other: "Išsaugant objektą %{model} rastos %{count} klaidos"
- body: "Šiuose laukuose yra klaidų:"
- messages: &errors_messages
- inclusion: "nenumatyta reikšmė"
- exclusion: "užimtas"
- invalid: "neteisingas"
- confirmation: "neteisingai pakartotas"
- accepted: "turi būti patvirtintas"
- empty: "negali būti tuščias"
- blank: "negali būti tuščias"
- too_long: "per ilgas (daugiausiai %{count} simboliai)"
- too_short: "per trumpas (mažiausiai %{count} simboliai)"
- wrong_length: "neteisingo ilgio (turi būti %{count} simboliai)"
- taken: "jau užimtas"
- not_a_number: "ne skaičius"
- greater_than: "turi būti didesnis už %{count}"
- greater_than_or_equal_to: "turi būti didesnis arba lygus %{count}"
- equal_to: "turi būti lygus %{count}"
- less_than: "turi būti mažesnis už %{count}"
- less_than_or_equal_to: "turi būti mažesnis arba lygus %{count}"
- odd: "turi būti nelyginis"
- even: "turi būti lyginis"
-
- activerecord:
- errors:
- messages:
- <<: *errors_messages
- template:
- <<: *errors_template
- full_messages:
- format: "%{attribute} %{message}"
-
- date:
- formats:
- default: "%Y-%m-%d"
- short: "%b %d"
- long: "%B %d, %Y"
-
- day_names:
- - sekmadienis
- - pirmadienis
- - antradienis
- - trečiadienis
- - ketvirtadienis
- - penktadienis
- - šeštadienis
- abbr_day_names:
- - Sek
- - Pir
- - Ant
- - Tre
- - Ket
- - Pen
- - Šeš
-
- month_names:
- - ~
- - sausio
- - vasario
- - kovo
- - balandžio
- - gegužės
- - birželio
- - liepos
- - rugpjūčio
- - rugsėjo
- - spalio
- - lapkričio
- - gruodžio
- abbr_month_names:
- - ~
- - Sau
- - Vas
- - Kov
- - Bal
- - Geg
- - Bir
- - Lie
- - Rgp
- - Rgs
- - Spa
- - Lap
- - Grd
- order:
- - :year
- - :month
- - :day
-
- time:
- formats:
- default: "%a, %d %b %Y %H:%M:%S %z"
- short: "%d %b %H:%M"
- long: "%B %d, %Y %H:%M"
- am: "am"
- pm: "pm"
-
- support:
- array:
- words_connector: ", "
- two_words_connector: " ir "
- last_word_connector: " ir "
+++ /dev/null
-# Latvian translations for Ruby on Rails
-# by Kaspars Bankovskis (kaspars@kei.lv)
-
-lv:
- date:
- formats:
- default: "%d.%m.%Y."
- short: "%e. %B"
- long: "%Y. gada %e. %B"
-
- day_names:
- - svētdiena
- - pirmdiena
- - otrdiena
- - trešdiena
- - ceturtdiena
- - piektdiena
- - sestdiena
- abbr_day_names:
- - Sv.
- - P.
- - O.
- - T.
- - C.
- - Pk.
- - S.
- month_names:
- - ~
- - janvārī
- - februārī
- - martā
- - aprīlī
- - maijā
- - jūnijā
- - jūlijā
- - augustā
- - septembrī
- - oktobrī
- - novembrī
- - decembrī
- abbr_month_names:
- - ~
- - Janv
- - Febr
- - Marts
- - Apr
- - Maijs
- - Jūn
- - Jūl
- - Aug
- - Sept
- - Okt
- - Nov
- - Dec
- order:
- - :year
- - :month
- - :day
-
- time:
- formats:
- default: "%Y. gada %e. %B, %H:%M"
- short: "%d.%m.%Y., %H:%M"
- long: "%Y. gada %e. %B, %H:%M:%S"
-
- am: "priekšpusdiena"
- pm: "pēcpusdiena"
-
- datetime:
- distance_in_words:
- half_a_minute: "pusminūte"
- less_than_x_seconds:
- one: "mazāk par vienu sekundi"
- other: "mazāk par %{count} sekundēm"
- x_seconds:
- one: "1 sekunde"
- other: "%{count} sekundes"
- less_than_x_minutes:
- one: "mazāk par vienu minūti"
- other: "mazāk par %{count} minūtēm"
- x_minutes:
- one: "1 minūte"
- other: "%{count} minūtes"
- about_x_hours:
- one: "apmēram 1 stunda"
- other: "apmēram %{count} stundas"
- x_days:
- one: "1 diena"
- other: "%{count} dienas"
- about_x_months:
- one: "apmēram 1 mēnesis"
- other: "apmēram %{count} mēneši"
- x_months:
- one: "1 mēnesis"
- other: "%{count} mēneši"
- about_x_years:
- one: "apmēram 1 gads"
- other: "apmēram %{count} gadi"
- over_x_years:
- one: "vairāk kā gads"
- other: "vairāk kā %{count} gadi"
- almost_x_years:
- one: "gandrīz 1 gads"
- other: "gandrīz %{count} gadi"
- prompts:
- second: "sekunde"
- minute: "minūte"
- hour: "stunda"
- day: "diena"
- month: "mēnesis"
- year: "gads"
-
- number:
- format:
- precision: 2
- separator: ','
- delimiter: '.'
- significant: false
- strip_insignificant_zeros: false
-
- currency:
- format:
- unit: 'LVL'
- format: '%u %n'
- separator: ","
- delimiter: "."
- precision: 2
- significant: false
- strip_insignificant_zeros: false
-
- percentage:
- format:
- delimiter: ""
-
- precision:
- format:
- delimiter: ""
-
- human:
- format:
- delimiter: ""
- precision: 1
- significant: false
- strip_insignificant_zeros: false
- storage_units:
- format: "%n %u"
- units:
- byte:
- one: "Baits"
- other: "Baiti"
- kb: "KB"
- mb: "MB"
- gb: "GB"
- tb: "TB"
- decimal_units:
- format: "%n %u"
- units:
- unit: ""
- thousand: Tūkstotis
- million: Miljons
- billion: Biljons
- trillion: Triljons
- quadrillion: Kvadriljons
-
- support:
- array:
- words_connector: ", "
- two_words_connector: " un "
- last_word_connector: " un "
-
- select:
- prompt: "Lūdzu izvēlies"
-
- helpers:
- select:
- prompt: "Lūdzu izvēlies"
-
- submit:
- create: 'Izveidot %{model}'
- update: 'Atjaunināt %{model}'
- submit: 'Saglabāt %{model}'
-
- errors:
- format: "%{attribute} %{message}"
- messages: &errors_messages
- inclusion: "nav iekļauts sarakstā"
- exclusion: "nav pieejams"
- invalid: "nav derīgs"
- confirmation: "nesakrīt ar apstiprinājumu"
- accepted: "ir jāpiekrīt"
- empty: "ir jābūt aizpildītam"
- blank: "ir jābūt aizpildītam"
- too_long: "ir par garu (maksimums ir %{count} zīmes)"
- too_short: "ir par īsu (minimums ir %{count} zīmes)"
- wrong_length: "ir nepareizs garums (jābūt %{count} zīmēm)"
- taken: "ir jau aizņemts"
- not_a_number: "nav skaitlis"
- not_an_integer: "ir jābūt veselam skaitlim"
- greater_than: "ir jābūt lielākam par %{count}"
- greater_than_or_equal_to: "ir jābūt lielākam vai vienādam ar %{count}"
- equal_to: "ir jābūt vienādam ar %{count}"
- less_than: "ir jābūt mazākam par %{count}"
- less_than_or_equal_to: "ir jābūt mazākam vai vienādam ar %{count}"
- odd: "ir jābūt nepāra skaitlim"
- even: "ir jābūt pāra skaitlim"
- taken: "ir jau aizņemts"
- record_invalid: "Pārbaude neizdevās: %{errors}"
- template: &errors_template
- header:
- one: "Dēļ 1 kļūdas šis %{model} netika saglabāts"
- other: "Dēļ %{count} kļūdām šis %{model} netika saglabāts"
- body: "Problēmas ir šajos ievades laukos:"
-
- activerecord:
- errors:
- messages:
- <<: *errors_messages
- template:
- <<: *errors_template
- full_messages:
- format: "%{attribute} %{message}"
+++ /dev/null
-# Macedonian translations for Ruby on Rails
-# by Dejan Dimić (dejan.dimic@gmail.com)
-
-"mk":
- date:
- formats:
- default: "%d/%m/%Y"
- short: "%e %b"
- long: "%B %e, %Y"
- day_names:
- - Недела
- - Понеделник
- - Вторник
- - Среда
- - Четврток
- - Петок
- - Сабота
- abbr_day_names:
- - Нед
- - Пон
- - Вто
- - Сре
- - Чет
- - Пет
- - Саб
- month_names:
- - ~
- - Јануари
- - Февруари
- - Март
- - Април
- - Мај
- - Јуни
- - Јули
- - Август
- - Септември
- - Октомври
- - Ноември
- - Декември
- abbr_month_names:
- - ~
- - Јан
- - Фев
- - Мар
- - Апр
- - Мај
- - Јун
- - Јул
- - Авг
- - Сеп
- - Окт
- - Ное
- - Дек
- order:
- - :day
- - :month
- - :year
-
- time:
- formats:
- default: "%a %b %d %H:%M:%S %Z %Y"
- short: "%d %b %H:%M"
- long: "%B %d, %Y %H:%M"
- am: 'АМ'
- pm: 'ПМ'
-
- datetime:
- distance_in_words:
- half_a_minute: 'пола минута'
- less_than_x_seconds:
- zero: 'помалку од секунда'
- one: 'помалку од 1 секунда'
- few: 'помалку од %{count} секунди'
- other: 'помалку од %{count} секунди'
- x_seconds:
- one: '1 секунда'
- few: '%{count} секунди'
- other: '%{count} секунди'
- less_than_x_minutes:
- zero: 'помалку од минута'
- one: 'помалку од 1 минута'
- other: 'помалку од %{count} минути'
- x_minutes:
- one: '1 минута'
- other: '%{count} минути'
- about_x_hours:
- one: 'околу 1 час'
- few: 'околу %{count} часа'
- other: 'околу %{count} часа'
- x_days:
- one: '1 ден'
- other: '%{count} денови'
- about_x_months:
- one: 'околу 1 месец'
- few: 'околу %{count} месеци'
- other: 'околу %{count} месеци'
- x_months:
- one: '1 месец'
- few: '%{count} месеци'
- other: '%{count} месеци'
- about_x_years:
- one: 'околу 1 година'
- other: 'околу %{count} години'
- over_x_years:
- one: 'над 1 година'
- other: 'над %{count} години'
-
- number:
- format:
- precision: 3
- separator: ','
- delimiter: '.'
- significant: false
- strip_insignificant_zeros: false
- currency:
- format:
- unit: 'MKD'
- precision: 2
- format: '%n %u'
- separator: "."
- delimiter: ","
- significant: false
- strip_insignificant_zeros: false
- percentage:
- format:
- delimiter: ""
- precision:
- format:
- delimiter: ""
- human:
- format:
- delimiter: ""
- precision: 3
- significant: true
- strip_insignificant_zeros: true
- storage_units:
- format: "%n %u"
- decimal_units:
- format: "%n %u"
- units:
- unit: ""
-
- errors:
- format: "%{attribute} %{message}"
- template: &errors_template
- header:
- one: 'Не успеав да го зачувам %{model}: 1 грешка.'
- few: 'Не успеав да го зачувам %{model}: %{count} грешки.'
- other: 'Не успеав да го зачувам %{model}: %{count} грешки.'
- body: "Ве молиме проверете ги следните полиња:"
- messages: &errors_messages
- inclusion: "не е во листата"
- exclusion: "не е достапно"
- invalid: "не е исправен"
- confirmation: "не се совпаѓа со својата потврда"
- accepted: "мора да биде прифатен"
- empty: "мора да биде зададен"
- blank: "мора да биде зададен"
- too_long: "е предолг (не повеќе од %{count} карактери)"
- too_short: "е прекраток (не помалку од %{count} карактери)"
- wrong_length: "несоодветна должина (мора да имате %{count} карактери)"
- taken: "е зафатено"
- not_a_number: "не е број "
- greater_than: "мора да биде поголемо од %{count}"
- greater_than_or_equal_to: "мора да биде поголемо или еднакво на %{count}"
- equal_to: "мора да биде еднакво на %{count}"
- less_than: "мора да биде помало од %{count}"
- less_than_or_equal_to: "мора да биде помало или еднакво на %{count}"
- odd: "мора да биде непарно"
- even: "мора да биде парно"
-
- activerecord:
- errors:
- messages:
- <<: *errors_messages
- template:
- <<: *errors_template
- full_messages:
- format: "%{attribute} %{message}"
\ No newline at end of file
+++ /dev/null
-# Mongolian localization for Ruby on Rails 2.2+
-# by Ochirkhuyag.L <ochkoo@gmail.com>
-#
-
-mn:
- date:
- formats:
- default: "%Y-%m-%d"
- short: "%y-%m-%d"
- long: "%Y %B %d"
-
- day_names:
- - Ням
- - Даваа
- - Мягмар
- - Лхагва
- - Пүрэв
- - Баасан
- - Бямба
- abbr_day_names:
- - Ня
- - Да
- - Мя
- - Лх
- - Пү
- - Ба
- - Бя
-
- month_names:
- - ~
- - 1 сар
- - 2 сар
- - 3 сар
- - 4 сар
- - 5 сар
- - 6 сар
- - 7 сар
- - 8 сар
- - 9 сар
- - 10 сар
- - 11 сар
- - 12 сар
- abbr_month_names:
- - ~
- - 1 сар
- - 2 сар
- - 3 сар
- - 4 сар
- - 5 сар
- - 6 сар
- - 7 сар
- - 8 сар
- - 9 сар
- - 10 сар
- - 11 сар
- - 12 сар
-
- order:
- - :year
- - :month
- - :day
-
- time:
- formats:
- default: "%Y-%m-%d %H:%M"
- short: "%y-%m-%d"
- long: "%Y %B %d, %H:%M:%S"
- am: "өглөө"
- pm: "орой"
-
- number:
- format:
- separator: "."
- delimiter: " "
- precision: 3
- significant: false
- strip_insignificant_zeros: false
- currency:
- format:
- format: "%n %u"
- unit: "төг."
- separator: "."
- delimiter: " "
- precision: 2
- significant: false
- strip_insignificant_zeros: false
-
- percentage:
- format:
- delimiter: ""
-
- precision:
- format:
- delimiter: ""
-
- human:
- format:
- delimiter: ""
- precision:
- significant: true
- strip_insignificant_zeros: true
- # Rails 2.2
- # storage_units: [байт, КБ, МБ, ГБ, ТБ]
-
- # Rails 2.3
- storage_units:
- # Storage units output formatting.
- # %u is the storage unit, %n is the number (default: 2 MB)
- format: "%n %u"
- units:
- byte:
- one: "Байт"
- other: "Байт"
- kb: "КБ"
- mb: "МБ"
- gb: "ГБ"
- tb: "ТБ"
- decimal_units:
- format: "%n %u"
- units:
- unit: ""
-
- datetime:
- distance_in_words:
- half_a_minute: "хагас минут"
- less_than_x_seconds:
- one: "%{count} секундээс бага"
- other: "%{count} секундээс бага"
- x_seconds:
- one: "%{count} секунд"
- other: "%{count} секунд"
- less_than_x_minutes:
- one: "%{count} минутаас бага"
- other: "%{count} минутаас бага"
- x_minutes:
- one: "%{count} минут"
- other: "%{count} минут"
- about_x_hours:
- one: "%{count} цаг орчим"
- other: "%{count} цаг орчим"
- x_days:
- one: "%{count} өдөр"
- other: "%{count} өдөр"
- about_x_months:
- one: "%{count} сар орчим"
- other: "%{count} сар орчим"
- x_months:
- one: "%{count} сар"
- other: "%{count} сар"
- about_x_years:
- one: "%{count} жил орчим"
- other: "%{count} жил орчим"
- almost_x_years:
- one: "бараг %{count} жил"
- other: "бараг %{count} жил"
- over_x_years:
- one: "%{count} жилээс илүү"
- other: "%{count} жилээс илүү"
- prompts:
- year: "Жил"
- month: "Сар"
- day: "Өдөр"
- hour: "Цаг"
- minute: "Минут"
- second: "Секунд"
-
- errors:
- format: "%{attribute} %{message}"
- messages: &errors_messages
- inclusion: "жагсаалтад алга байна"
- exclusion: "бол ашиглахад хориотой"
- invalid: "буруу байна"
- confirmation: "адилгүй байна"
- accepted: "хүлээн зөвшөөрөгдсөн байх ёстой"
- empty: "байхгүй байж болохгүй"
- blank: "хоосон байж болохгүй"
- too_long: "хэт урт байна (хамгийн уртдаа %{count} тэмдэгт)"
- too_short: "хэт богино байна (хамгийн багадаа %{count} тэмдэгт)"
- wrong_length: "урт нь буруу байна (%{count} тэмдэгт байх ёстой)"
- taken: "аль хэдийн авчихсан байна"
- not_a_number: "тоо биш байна"
- not_an_integer: "бүхэл тоо байх ёстой"
- greater_than: "%{count}-с их байх ёстой"
- greater_than_or_equal_to: "%{count}-с их юмуу тэнцүү байх ёстой"
- equal_to: "%{count}-тэй тэнцүү байх ёстой"
- less_than: "%{count}-с бага байх ёстой"
- less_than_or_equal_to: "%{count}-с бага юмуу тэнцүү байх ёстой"
- odd: "сонгой байх ёстой"
- even: "тэгш байх ёстой"
- record_invalid: "Шалгалт амжилтгүй: %{errors}"
- template: &errors_template
- header:
- one: "1 алдаа гарсан тул %{model} хадгалагдахгүй байна"
- other: "%{count} алдаа гарсан тул %{model} хадгалагдахгүй байна"
- # The variable :count is also available
- body: "Дараах %{count} хэсэгт алдаа гарлаа:"
-
- activerecord:
- errors:
- messages:
- <<: *errors_messages
- template:
- <<: *errors_template
- full_messages:
- format: "%{attribute} %{message}"
-
- support:
- array:
- words_connector: ", "
- two_words_connector: " болон "
- last_word_connector: " болон "
- select:
- prompt: "Сонгоно уу"
+++ /dev/null
-# Norwegian, norsk bokmål
-# by irb.no
-# contributors:
-# - Kim Joar Bekkelund - http://kimjoar.net
-
-nb:
- support:
- array:
- words_connector: ", "
- two_words_connector: " og "
- last_word_connector: " og "
- select:
- prompt: "Velg"
- date:
- formats:
- default: "%d.%m.%Y"
- short: "%e. %b"
- long: "%e. %B %Y"
- day_names:
- - søndag
- - mandag
- - tirsdag
- - onsdag
- - torsdag
- - fredag
- - lørdag
- abbr_day_names:
- - søn
- - man
- - tir
- - ons
- - tor
- - fre
- - lør
- month_names:
- - ~
- - januar
- - februar
- - mars
- - april
- - mai
- - juni
- - juli
- - august
- - september
- - oktober
- - november
- - desember
- abbr_month_names:
- - ~
- - jan
- - feb
- - mar
- - apr
- - mai
- - jun
- - jul
- - aug
- - sep
- - okt
- - nov
- - des
- order:
- - :day
- - :month
- - :year
- time:
- formats:
- default: "%A, %e. %B %Y, %H:%M"
- short: "%e. %B, %H:%M"
- long: "%A, %e. %B %Y, %H:%M"
- am: ""
- pm: ""
- datetime:
- distance_in_words:
- half_a_minute: "et halvt minutt"
- less_than_x_seconds:
- one: "mindre enn 1 sekund"
- other: "mindre enn %{count} sekunder"
- x_seconds:
- one: "1 sekund"
- other: "%{count} sekunder"
- less_than_x_minutes:
- one: "mindre enn 1 minutt"
- other: "mindre enn %{count} minutter"
- x_minutes:
- one: "1 minutt"
- other: "%{count} minutter"
- about_x_hours:
- one: "rundt 1 time"
- other: "rundt %{count} timer"
- x_days:
- one: "1 dag"
- other: "%{count} dager"
- about_x_months:
- one: "rundt 1 måned"
- other: "rundt %{count} måneder"
- x_months:
- one: "1 måned"
- other: "%{count} måneder"
- about_x_years:
- one: "rundt 1 år"
- other: "rundt %{count} år"
- over_x_years:
- one: "over 1 år"
- other: "over %{count} år"
- almost_x_years:
- one: "nesten 1 år"
- other: "nesten %{count} år"
- prompts:
- year: "År"
- month: "Måned"
- day: "Dag"
- hour: "Time"
- minute: "Minutt"
- second: "Sekund"
- number:
- format: &number_format
- precision: 2
- separator: ","
- delimiter: " "
- significant: false
- strip_insignificant_zeros: true
- currency:
- format:
- unit: "kr"
- format: "%n %u"
- <<: *number_format
- precision:
- format:
- delimiter: ""
- human:
- format:
- precision: 1
- delimiter: " "
- significant: false
- strip_insignificant_zeros: true
- storage_units:
- # Storage units output formatting.
- # %u is the storage unit, %n is the number (default: 2 MB)
- format: "%n %u"
- units:
- byte:
- one: "Byte"
- other: "Bytes"
- kb: "kB"
- mb: "MB"
- gb: "GB"
- tb: "TB"
- decimal_units:
- format: "%n %u"
- units:
- unit: ""
- thousand: "tusen"
- million:
- one: "million"
- other: "millioner"
- billion:
- one: "milliard"
- other: "milliarder"
- trillion:
- one: "billion"
- other: "billioner"
- quadrillion:
- one: "billiard"
- other: "billiarder"
-
- percentage:
- format:
- delimiter: ""
-
- helpers:
- select:
- prompt: "Vennligst velg"
-
- submit:
- create: "Lag %{model}"
- update: "Oppdater %{model}"
- submit: "Lagre %{model}"
-
- errors:
- format: "%{attribute} %{message}"
-
- messages: &errors_messages
- inclusion: "er ikke inkludert i listen"
- exclusion: "er reservert"
- invalid: "er ugyldig"
- confirmation: "passer ikke bekreftelsen"
- accepted: "må være akseptert"
- empty: "kan ikke være tom"
- blank: "kan ikke være blank"
- too_long: "er for lang (maksimum %{count} tegn)"
- too_short: "er for kort (minimum %{count} tegn)"
- wrong_length: "er av feil lengde (maksimum %{count} tegn)"
- not_a_number: "er ikke et tall"
- not_an_integer: "er ikke et heltall"
- greater_than: "må være større enn %{count}"
- greater_than_or_equal_to: "må være større enn eller lik %{count}"
- equal_to: "må være lik %{count}"
- less_than: "må være mindre enn %{count}"
- less_than_or_equal_to: "må være mindre enn eller lik %{count}"
- odd: "må være oddetall"
- even: "må være partall"
- taken: "er allerede i bruk"
- record_invalid: "Det oppstod feil: %{errors}"
- template: &errors_template
- header:
- one: "Kunne ikke lagre %{model} på grunn av én feil."
- other: "Kunne ikke lagre %{model} på grunn av %{count} feil."
- body: "Det oppstod problemer i følgende felt:"
-
- activerecord:
- errors:
- messages:
- <<: *errors_messages
- template:
- <<: *errors_template
-
- full_messages:
- format: "%{attribute} %{message}"
+++ /dev/null
-# Dutch translations for Ruby on Rails, based on US English template
-# Original version by Ariejan de Vroom <ariejan@ariejan.net>
-# - Sponsored by Kabisa ICT - http://kabisa.nl
-# Rails 3 update by Floris Huetink <floris@avocado.nl> (github: florish)
-
-nl:
- date:
- formats:
- default: "%d/%m/%Y"
- short: "%e %b"
- long: "%e %B %Y"
- day_names:
- - zondag
- - maandag
- - dinsdag
- - woensdag
- - donderdag
- - vrijdag
- - zaterdag
- abbr_day_names:
- - zon
- - maa
- - din
- - woe
- - don
- - vri
- - zat
-
- month_names:
- - ~
- - januari
- - februari
- - maart
- - april
- - mei
- - juni
- - juli
- - augustus
- - september
- - oktober
- - november
- - december
- abbr_month_names:
- - ~
- - jan
- - feb
- - mar
- - apr
- - mei
- - jun
- - jul
- - aug
- - sep
- - okt
- - nov
- - dec
- order:
- - :day
- - :month
- - :year
-
- time:
- formats:
- default: "%a %d %b %Y %H:%M:%S %Z"
- short: "%d %b %H:%M"
- long: "%d %B %Y %H:%M"
- am: "'s ochtends"
- pm: "'s middags"
-
- support:
- array:
- words_connector: ", "
- two_words_connector: " en "
- last_word_connector: " en "
-
- select:
- prompt: "Selecteer"
-
- number:
- format:
- separator: ","
- delimiter: "."
- precision: 2
- significant: false
- strip_insignificant_zeros: false
-
- currency:
- format:
- format: "%u%n"
- unit: "€"
- separator: ","
- delimiter: "."
- precision: 2
- significant: false
- strip_insignificant_zeros: false
-
- percentage:
- format:
- delimiter: ""
-
- precision:
- format:
- delimiter: ""
-
- human:
- format:
- delimiter: ""
- precision: 3
- significant: true
- strip_insignificant_zeros: true
- storage_units:
- format: "%n %u"
- units:
- byte:
- one: "Byte"
- other: "Bytes"
- kb: "KB"
- mb: "MB"
- gb: "GB"
- tb: "TB"
- decimal_units:
- format: "%n %u"
- units:
- unit: ""
- thousand: "duizend"
- million: "miljoen"
- billion: "miljard"
- trillion: "biljoen"
- quadrillion: "biljard"
-
- datetime:
- distance_in_words:
- half_a_minute: "een halve minuut"
- less_than_x_seconds:
- one: "minder dan een seconde"
- other: "minder dan %{count} seconden"
- x_seconds:
- one: "1 seconde"
- other: "%{count} seconden"
- less_than_x_minutes:
- one: "minder dan een minuut"
- other: "minder dan %{count} minuten"
- x_minutes:
- one: "1 minuut"
- other: "%{count} minuten"
- about_x_hours:
- one: "ongeveer een uur"
- other: "ongeveer %{count} uur"
- x_days:
- one: "1 dag"
- other: "%{count} dagen"
- about_x_months:
- one: "ongeveer een maand"
- other: "ongeveer %{count} maanden"
- x_months:
- one: "1 maand"
- other: "%{count} maanden"
- about_x_years:
- one: "ongeveer een jaar"
- other: "ongeveer %{count} jaar"
- over_x_years:
- one: "meer dan een jaar"
- other: "meer dan %{count} jaar"
- almost_x_years:
- one: "bijna een jaar"
- other: "bijna %{count} jaar"
- prompts:
- year: "jaar"
- month: "maand"
- day: "dag"
- hour: "uur"
- minute: "minuut"
- second: "seconde"
-
- helpers:
- select:
- prompt: "Selecteer"
-
- submit:
- create: '%{model} toevoegen'
- update: '%{model} bewaren'
- submit: '%{model} opslaan'
-
- errors:
- format: "%{attribute} %{message}"
-
- messages: &errors_messages
- inclusion: "is niet in de lijst opgenomen"
- exclusion: "is niet beschikbaar"
- invalid: "is ongeldig"
- confirmation: "komt niet met de bevestiging overeen"
- accepted: "moet worden geaccepteerd"
- empty: "moet opgegeven zijn"
- blank: "moet opgegeven zijn"
- too_long: "is te lang (maximaal %{count} tekens)"
- too_short: "is te kort (minimaal %{count} tekens)"
- wrong_length: "heeft onjuiste lengte (moet %{count} tekens lang zijn)"
- not_a_number: "is geen getal"
- not_an_integer: "moet een geheel getal zijn"
- greater_than: "moet groter zijn dan %{count}"
- greater_than_or_equal_to: "moet groter dan of gelijk zijn aan %{count}"
- equal_to: "moet gelijk zijn aan %{count}"
- less_than: "moet minder zijn dan %{count}"
- less_than_or_equal_to: "moet minder dan of gelijk zijn aan %{count}"
- odd: "moet oneven zijn"
- even: "moet even zijn"
- taken: "is al in gebruik"
- record_invalid: "Validatie mislukt: %{errors}"
- template: &errors_template
- header:
- one: "%{model} niet opgeslagen: 1 fout gevonden"
- other: "%{model} niet opgeslagen: %{count} fouten gevonden"
- body: "Controleer de volgende velden:"
-
- activerecord:
- errors:
- messages:
- <<: *errors_messages
- template:
- <<: *errors_template
-
- full_messages:
- format: "%{attribute} %{message}"
+++ /dev/null
-# Norwegian, nynorsk, by irb.no
-nn:
- date:
- formats:
- default: "%d.%m.%Y"
- short: "%e. %b"
- long: "%e. %B %Y"
- day_names:
- - sundag
- - måndag
- - tysdag
- - onsdag
- - torsdag
- - fredag
- - laurdag
- abbr_day_names:
- - sun
- - mån
- - tys
- - ons
- - tor
- - fre
- - lau
- month_names:
- - ~
- - januar
- - februar
- - mars
- - april
- - mai
- - juni
- - juli
- - august
- - september
- - oktober
- - november
- - desember
- abbr_month_names:
- - ~
- - jan
- - feb
- - mar
- - apr
- - mai
- - jun
- - jul
- - aug
- - sep
- - okt
- - nov
- - des
- order:
- - :day
- - :month
- - :year
- time:
- formats:
- default: "%A, %e. %B %Y, %H:%M"
- short: "%e. %B, %H:%M"
- long: "%A, %e. %B %Y, %H:%M"
- am: ""
- pm: ""
- datetime:
- distance_in_words:
- half_a_minute: "eit halvt minutt"
- less_than_x_seconds:
- one: "mindre enn 1 sekund"
- other: "mindre enn %{count} sekund"
- x_seconds:
- one: "1 sekund"
- other: "%{count} sekund"
- less_than_x_minutes:
- one: "mindre enn 1 minutt"
- other: "mindre enn %{count} minutt"
- x_minutes:
- one: "1 minutt"
- other: "%{count} minutt"
- about_x_hours:
- one: "rundt 1 time"
- other: "rundt %{count} timar"
- x_days:
- one: "1 dag"
- other: "%{count} dagar"
- about_x_months:
- one: "rundt 1 månad"
- other: "rundt %{count} månader"
- x_months:
- one: "1 månad"
- other: "%{count} månader"
- about_x_years:
- one: "rundt 1 år"
- other: "rundt %{count} år"
- over_x_years:
- one: "over 1 år"
- other: "over %{count} år"
- number:
- format:
- precision: 2
- separator: "."
- delimiter: ","
- significant: false
- strip_insignificant_zeros: false
- currency:
- format:
- unit: "kr"
- format: "%n %u"
- separator: "."
- delimiter: ","
- precision: 2
- significant: false
- strip_insignificant_zeros: false
- percentage:
- format:
- delimiter: ""
- precision:
- format:
- delimiter: ""
- human:
- format:
- delimiter: ""
- precision: 3
- significant: true
- strip_insignificant_zeros: true
- storage_units:
- format: "%n %u"
- decimal_units:
- format: "%n %u"
- units:
- unit: ""
- errors:
- format: "%{attribute} %{message}"
- template: &errors_template
- header: "kunne ikkje lagra %{model} grunna %{count} feil."
- body: "det oppstod problem i følgjande felt:"
- messages: &errors_messages
- inclusion: "er ikkje inkludert i lista"
- exclusion: "er reservert"
- invalid: "er ugyldig"
- confirmation: "er ikkje stadfesta"
- accepted: "må vera akseptert"
- empty: "kan ikkje vera tom"
- blank: "kan ikkje vera blank"
- too_long: "er for lang (maksimum %{count} teikn)"
- too_short: "er for kort (minimum %{count} teikn)"
- wrong_length: "har feil lengde (maksimum %{count} teikn)"
- taken: "er allerie i bruk"
- not_a_number: "er ikkje eit tal"
- greater_than: "må vera større enn %{count}"
- greater_than_or_equal_to: "må vera større enn eller lik %{count}"
- equal_to: "må vera lik %{count}"
- less_than: "må vera mindre enn %{count}"
- less_than_or_equal_to: "må vera mindre enn eller lik %{count}"
- odd: "må vera oddetal"
- even: "må vera partal"
- activerecord:
- errors:
- messages:
- <<: *errors_messages
- template:
- <<: *errors_template
- full_messages:
- format: "%{attribute} %{message}"
\ No newline at end of file
+++ /dev/null
-# Polish translations for Ruby on Rails
-# by Jacek Becela (jacek.becela@gmail.com, http://github.com/ncr)
-# Minor changes and adjustments for Rails 3 by Piotrek Okoński (http://github.com/pokonski)
-# Minor changes and adjustments by Paweł Chojnacki (https://github.com/chojnacki)
-
-pl:
- date:
- formats:
- default: "%d-%m-%Y"
- short: "%d %b"
- long: "%B %d, %Y"
-
- day_names:
- - niedziela
- - poniedziałek
- - wtorek
- - środa
- - czwartek
- - piątek
- - sobota
- abbr_day_names:
- - nie
- - pon
- - wto
- - śro
- - czw
- - pią
- - sob
-
- month_names:
- - ~
- - styczeń
- - luty
- - marzec
- - kwiecień
- - maj
- - czerwiec
- - lipiec
- - sierpień
- - wrzesień
- - październik
- - listopad
- - grudzień
- abbr_month_names:
- - ~
- - sty
- - lut
- - mar
- - kwi
- - maj
- - cze
- - lip
- - sie
- - wrz
- - paź
- - lis
- - gru
- order:
- - :day
- - :month
- - :year
-
- time:
- formats:
- default: "%a, %d %b %Y %H:%M:%S %z"
- short: "%d %b %H:%M"
- long: "%B %d, %Y %H:%M"
- am: "przed południem"
- pm: "po południu"
-
- support:
- array:
- words_connector: ", "
- two_words_connector: " i "
- last_word_connector: " oraz "
-
- select:
- prompt: "Proszę wybrać"
-
- number:
- format:
- separator: ","
- delimiter: " "
- precision: 3
- significant: false
- strip_insignificant_zeros: false
-
- currency:
- format:
- format: "%u %n"
- unit: "PLN"
- separator: ","
- delimiter: " "
- precision: 2
- significant: false
- strip_insignificant_zeros: true
-
- percentage:
- format:
- delimiter: ""
-
- precision:
- format:
- delimiter: ""
-
- human:
- format:
- delimiter: ""
- precision: 3
- significant: true
- strip_insignificant_zeros: true
- storage_units:
- format: "%n %u"
- units:
- byte:
- one: "bajt"
- other: "bajty"
- kb: "KB"
- mb: "MB"
- gb: "GB"
- tb: "TB"
- decimal_units:
- format: "%n %u"
- units:
- unit: ""
- thousand: Tysiąc
- million: Milion
- billion: Miliard
- trillion: Bilion
- quadrillion: Biliard
-
- datetime:
- distance_in_words:
- half_a_minute: "pół minuty"
- less_than_x_seconds:
- one: "mniej niż sekundę"
- few: "mniej niż %{count} sekundy"
- other: "mniej niż %{count} sekund"
- x_seconds:
- one: "1 sekunda"
- few: "%{count} sekundy"
- other: "%{count} sekund"
- less_than_x_minutes:
- one: "mniej niż minutę"
- few: "mniej niż %{count} minuty"
- other: "mniej niż %{count} minut"
- x_minutes:
- one: "1 minuta"
- few: "%{count} minuty"
- other: "%{count} minut"
- about_x_hours:
- one: "około godziny"
- few: "około %{count} godziny"
- other: "około %{count} godzin"
- x_days:
- one: "1 dzień"
- few: "%{count} dni"
- other: "%{count} dni"
- about_x_months:
- one: "około miesiąca"
- few: "około %{count} miesiące"
- other: "około %{count} miesięcy"
- x_months:
- one: "1 miesiąc"
- few: "%{count} miesiące"
- other: "%{count} miesięcy"
- about_x_years:
- one: "około rok"
- few: "około %{count} lata"
- other: "około %{count} lat"
- over_x_years:
- one: "ponad rok"
- few: "ponad %{count} lata"
- other: "ponad %{count} lat"
- almost_x_years:
- one: "prawie rok"
- few: "prawie %{count} lata"
- other: "prawie %{count} lat"
- prompts:
- year: "Rok"
- month: "Miesiąc"
- day: "Dzień"
- hour: "Godzina"
- minute: "Minuta"
- second: "Sekundy"
-
- helpers:
- select:
- prompt: "Proszę wybrać"
-
- submit:
- create: 'Utwórz %{model}'
- update: 'Aktualizuj %{model}'
- submit: 'Zapisz %{model}'
-
- errors:
- format: "%{attribute} %{message}"
-
- messages: &errors_messages
- inclusion: "nie znajduje się na liście dopuszczalnych wartości"
- exclusion: "jest zarezerwowane"
- invalid: "jest nieprawidłowe"
- confirmation: "nie zgadza się z potwierdzeniem"
- accepted: "musi zostać zaakceptowane"
- empty: "nie może być puste"
- blank: "nie może być puste"
- too_long: "jest za długie (maksymalnie %{count} znaków)"
- too_short: "jest za krótkie (przynajmniej %{count} znaków)"
- wrong_length: "ma nieprawidłową długość (powinna wynosić %{count} znaków)"
- not_a_number: "nie jest liczbą"
- not_an_integer: "musi być liczbą całkowitą"
- greater_than: "musi być większe od %{count}"
- greater_than_or_equal_to: "musi być większe lub równe %{count}"
- equal_to: "musi być równe %{count}"
- less_than: "musi być mniejsze od %{count}"
- less_than_or_equal_to: "musi być mniejsze lub równe %{count}"
- odd: "musi być nieparzyste"
- even: "musi być parzyste"
- taken: "zostało już zajęte"
- record_invalid: "Negatywne sprawdzenie poprawności: %{errors}"
- template: &errors_template
- header:
- one: "%{model} nie został zachowany z powodu jednego błędu"
- other: "%{model} nie został zachowany z powodu %{count} błędów"
- body: "Błędy dotyczą następujących pól:"
-
- activerecord:
- attributes:
- created_at: "Stworzony"
- updated_at: "Zaktualizowany"
- errors:
- messages:
- <<: *errors_messages
- template:
- <<: *errors_template
-
- full_messages:
- format: "%{attribute} %{message}"
+++ /dev/null
-# encoding: UTF-8
-# pt-BR translations for Ruby on Rails
-"pt-BR":
- # formatos de data e hora
- date:
- formats:
- default: "%d/%m/%Y"
- short: "%d de %B"
- long: "%d de %B de %Y"
-
- day_names:
- - Domingo
- - Segunda
- - Terça
- - Quarta
- - Quinta
- - Sexta
- - Sábado
- abbr_day_names:
- - Dom
- - Seg
- - Ter
- - Qua
- - Qui
- - Sex
- - Sáb
-
- month_names:
- - ~
- - Janeiro
- - Fevereiro
- - Março
- - Abril
- - Maio
- - Junho
- - Julho
- - Agosto
- - Setembro
- - Outubro
- - Novembro
- - Dezembro
- abbr_month_names:
- - ~
- - Jan
- - Fev
- - Mar
- - Abr
- - Mai
- - Jun
- - Jul
- - Ago
- - Set
- - Out
- - Nov
- - Dez
- order:
- - :day
- - :month
- - :year
-
- time:
- formats:
- default: "%A, %d de %B de %Y, %H:%M h"
- short: "%d/%m, %H:%M h"
- long: "%A, %d de %B de %Y, %H:%M h"
- am: ''
- pm: ''
-
- # Usado no Array.to_sentence
- support:
- array:
- words_connector: ", "
- two_words_connector: " e "
- last_word_connector: " e "
-
- select:
- prompt: "Por favor selecione"
-
- number:
- format:
- separator: ','
- delimiter: '.'
- precision: 3
- significant: false
- strip_insignificant_zeros: false
-
- currency:
- format:
- format: '%u %n'
- unit: 'R$'
- separator: ','
- delimiter: '.'
- precision: 2
- significant: false
- strip_insignificant_zeros: false
-
- percentage:
- format:
- delimiter: '.'
-
- precision:
- format:
- delimiter: '.'
-
- human:
- format:
- delimiter: '.'
- precision: 2
- significant: true
- strip_insignificant_zeros: true
- storage_units:
- format: "%n %u"
- units:
- byte:
- one: "Byte"
- other: "Bytes"
- kb: "KB"
- mb: "MB"
- gb: "GB"
- tb: "TB"
- # number_to_human()
- # new in rails 3: please add to other locales
- decimal_units:
- format: "%n %u"
- units:
- unit: ""
- thousand: "mil"
- million:
- one: milhão
- other: milhões
- billion:
- one: bilhão
- other: bilhões
- trillion:
- one: trilhão
- other: trilhões
- quadrillion:
- one: quatrilhão
- other: quatrilhões
-
- # distancia do tempo em palavras
- datetime:
- distance_in_words:
- half_a_minute: 'meio minuto'
- less_than_x_seconds:
- one: 'menos de 1 segundo'
- other: 'menos de %{count} segundos'
- x_seconds:
- one: '1 segundo'
- other: '%{count} segundos'
- less_than_x_minutes:
- one: 'menos de um minuto'
- other: 'menos de %{count} minutos'
- x_minutes:
- one: '1 minuto'
- other: '%{count} minutos'
- about_x_hours:
- one: 'aproximadamente 1 hora'
- other: 'aproximadamente %{count} horas'
- x_days:
- one: '1 dia'
- other: '%{count} dias'
- about_x_months:
- one: 'aproximadamente 1 mês'
- other: 'aproximadamente %{count} meses'
- x_months:
- one: '1 mês'
- other: '%{count} meses'
- about_x_years:
- one: 'aproximadamente 1 ano'
- other: 'aproximadamente %{count} anos'
- over_x_years:
- one: 'mais de 1 ano'
- other: 'mais de %{count} anos'
- almost_x_years:
- one: 'quase 1 ano'
- other: 'quase %{count} anos'
- prompts:
- year: "Ano"
- month: "Mês"
- day: "Dia"
- hour: "Hora"
- minute: "Minuto"
- second: "Segundo"
-
- helpers:
- select:
- prompt: "Por favor selecione"
-
- submit:
- create: 'Criar %{model}'
- update: 'Atualizar %{model}'
- submit: 'Salvar %{model}'
-
- errors:
- format: "%{attribute} %{message}"
- messages: &errors_messages
- inclusion: "não está incluído na lista"
- exclusion: "não está disponível"
- invalid: "não é válido"
- confirmation: "não está de acordo com a confirmação"
- accepted: "deve ser aceito"
- empty: "não pode ficar vazio"
- blank: "não pode ficar em branco"
- too_long: "é muito longo (máximo: %{count} caracteres)"
- too_short: "é muito curto (mínimo: %{count} caracteres)"
- wrong_length: "não possui o tamanho esperado (%{count} caracteres)"
- not_a_number: "não é um número"
- not_an_integer: "não é um número inteiro"
- greater_than: "deve ser maior que %{count}"
- greater_than_or_equal_to: "deve ser maior ou igual a %{count}"
- equal_to: "deve ser igual a %{count}"
- less_than: "deve ser menor que %{count}"
- less_than_or_equal_to: "deve ser menor ou igual a %{count}"
- odd: "deve ser ímpar"
- even: "deve ser par"
- taken: "já está em uso"
- record_invalid: "A validação falhou: %{errors}"
- template: &errors_template
- header:
- one: "Não foi possível gravar %{model}: 1 erro"
- other: "Não foi possível gravar %{model}: %{count} erros."
- body: "Por favor, verifique o(s) seguinte(s) campo(s):"
-
- activerecord:
- errors:
- messages:
- <<: *errors_messages
- template:
- <<: *errors_template
-
- full_messages:
- format: "%{attribute} %{message}"
+++ /dev/null
-# European Portuguese translations for Ruby on Rails
-#
-#
-
-"pt-PT":
- date:
- formats:
- default: "%d/%m/%Y"
- short: "%d de %B"
- long: "%d de %B de %Y"
-
- day_names:
- - Domingo
- - Segunda
- - Terça
- - Quarta
- - Quinta
- - Sexta
- - Sábado
- abbr_day_names:
- - Dom
- - Seg
- - Ter
- - Qua
- - Qui
- - Sex
- - Sáb
-
- month_names:
- - ~
- - Janeiro
- - Fevereiro
- - Março
- - Abril
- - Maio
- - Junho
- - Julho
- - Agosto
- - Setembro
- - Outubro
- - Novembro
- - Dezembro
- abbr_month_names:
- - ~
- - Jan
- - Fev
- - Mar
- - Abr
- - Mai
- - Jun
- - Jul
- - Ago
- - Set
- - Out
- - Nov
- - Dez
- order:
- - :day
- - :month
- - :year
-
- time:
- formats:
- default: "%A, %d de %B de %Y, %H:%Mh"
- short: "%d/%m, %H:%M hs"
- long: "%A, %d de %B de %Y, %H:%Mh"
- am: "am"
- pm: "pm"
-
- support:
- array:
- words_connector: ", "
- two_words_connector: " e "
- last_word_connector: ", e"
-
- select:
- prompt: "Por favor seleccione"
-
- number:
- format:
- separator: ","
- delimiter: "."
- precision: 3
- significant: false
- strip_insignificant_zeros: false
-
- currency:
- format:
- format: "%u%n"
- unit: "€"
- separator: ","
- delimiter: "."
- precision: 2
- significant: false
- strip_insignificant_zeros: false
-
- percentage:
- format:
- delimiter: ""
-
- precision:
- format:
- delimiter: ""
-
- human:
- format:
- delimiter: ""
- precision: 1
- significant: true
- strip_insignificant_zeros: true
- storage_units:
- format: "%n %u"
- units:
- byte:
- one: "Byte"
- other: "Bytes"
- kb: "KB"
- mb: "MB"
- gb: "GB"
- tb: "TB"
- decimal_units:
- format: "%n %u"
- units:
- unit: ""
- thousand: mil
- million:
- one: milhão
- other: milhões
- billion:
- one: mil milhões
- other: mil milhões
- trillion:
- one: bilião
- other: biliões
- quadrillion:
- one: mil biliões
- other: mil biliões
-
- datetime:
- distance_in_words:
- half_a_minute: "meio minuto"
- less_than_x_seconds:
- one: "menos de 1 segundo"
- other: "menos de %{count} segundos"
- x_seconds:
- one: "1 segundo"
- other: "%{count} segundos"
- less_than_x_minutes:
- one: "menos de um minuto"
- other: "menos de %{count} minutos"
- x_minutes:
- one: "1 minuto"
- other: "%{count} minutos"
- about_x_hours:
- one: "aproximadamente 1 hora"
- other: "aproximadamente %{count} horas"
- x_days:
- one: "1 dia"
- other: "%{count} dias"
- about_x_months:
- one: "aproximadamente 1 mês"
- other: "aproximadamente %{count} meses"
- x_months:
- one: "1 mês"
- other: "%{count} meses"
- about_x_years:
- one: "aproximadamente 1 ano"
- other: "aproximadamente %{count} anos"
- over_x_years:
- one: "mais de 1 ano"
- other: "mais de %{count} anos"
- almost_x_years:
- one: "quase 1 ano"
- other: "quase %{count} years"
- prompts:
- year: "Ano"
- month: "Mês"
- day: "Dia"
- hour: "Hora"
- minute: "Minuto"
- second: "Segundo"
-
- helpers:
- select:
- prompt: "Por favor seleccione"
-
- submit:
- create: 'Criar %{model}'
- update: 'Actualizar %{model}'
- submit: 'Salvar %{model}'
-
- errors:
- format: "%{attribute} %{message}"
-
- messages: &errors_messages
- inclusion: "não está incluído na lista"
- exclusion: "é reservado"
- invalid: "é inválido"
- confirmation: "não coincide com a confirmação"
- accepted: "tem de ser aceite"
- empty: "não pode estar vazio"
- blank: "não pode estar em branco"
- too_long: "é demasiado grande (o máximo é de %{count} caracteres)"
- too_short: "é demasiado pequeno (o mínimo é de %{count} caracteres)"
- wrong_length: "comprimento errado (deve ter %{count} caracteres)"
- not_a_number: "não é um número"
- not_an_integer: "tem de ser um inteiro"
- greater_than: "tem de ser maior que %{count}"
- greater_than_or_equal_to: "tem de ser maior ou igual a %{count}"
- equal_to: "tem de ser igual a %{count}"
- less_than: "tem de ser menor que %{count}"
- less_than_or_equal_to: "tem de ser menor ou igual a %{count}"
- odd: "tem de ser ímpar"
- even: "tem de ser par"
- taken: "não está disponível"
- record_invalid: "A validação falhou: %{errors}"
- template: &errors_template
- header:
- one: "Não foi possível guardar %{model}: 1 erro"
- other: "Não foi possível guardar %{model}: %{count} erros"
- body: "Por favor, verifique os seguintes campos:"
-
- activerecord:
- errors:
- messages:
- <<: *errors_messages
- template:
- <<: *errors_template
-
- full_messages:
- format: "%{attribute} %{message}"
+++ /dev/null
-# Romansh translations for Ruby on Rails
-# by Flurina Andriuet and Sebastian de Castelberg (rails-i18n@kpricorn.org)
-
-rm:
- date:
- formats:
- default: "%d.%m.%Y"
- short: "%e. %b"
- long: "%e. %B %Y"
-
- day_names:
- - dumengia
- - glindesdi
- - mardi
- - mesemna
- - gievgia
- - venderdi
- - sonda
- abbr_day_names:
- - du
- - gli
- - ma
- - me
- - gie
- - ve
- - so
- month_names:
- - ~
- - schaner
- - favrer
- - mars
- - avrigl
- - matg
- - zercladur
- - fanadur
- - avust
- - settember
- - october
- - november
- - december
- abbr_month_names:
- - ~
- - schan
- - favr
- - mars
- - avr
- - matg
- - zercl
- - fan
- - avust
- - sett
- - oct
- - nov
- - dec
- order:
- - :day
- - :month
- - :year
-
- time:
- formats:
- default: "%A, %d. %B %Y, %H:%M Uhr"
- short: "%d. %B, %H:%M Uhr"
- long: "%A, %d. %B %Y, %H:%M Uhr"
- am: "avantmezdi"
- pm: "suentermezdi"
-
- datetime:
- distance_in_words:
- half_a_minute: "ina mesa minuta"
- less_than_x_seconds:
- one: "main ch’ina secunda"
- other: "main che %{count} secundas"
- x_seconds:
- one: "ina secunda"
- other: "%{count} secundas"
- less_than_x_minutes:
- one: "main ch’ina minuta"
- other: "main che %{count} minutas"
- x_minutes:
- one: "1 minuta"
- other: "%{count} minutas"
- about_x_hours:
- one: "circa in'ura"
- other: "circa %{count} uras"
- x_days:
- one: "in di"
- other: "%{count} dis"
- about_x_months:
- one: "circa in mais"
- other: "circa %{count} mais"
- x_months:
- one: "in mais"
- other: "%{count} mais"
- about_x_years:
- one: "circa in onn"
- other: "circa %{count} onns"
- over_x_years:
- one: "dapli ch'in onn"
- other: "dapli che %{count} onns"
- prompts:
- second: "secundas"
- minute: "minutas"
- hour: "uras"
- day: "dis"
- month: "mais"
- year: "onns"
-
- number:
- format:
- precision: 2
- separator: "."
- delimiter: "'"
- significant: false
- strip_insignificant_zeros: false
- currency:
- format:
- precision: 2
- separator: "."
- delimiter: "'"
- unit: "CHF"
- format: "%n %u"
- significant: false
- strip_insignificant_zeros: false
- percentage:
- format:
- delimiter: ""
- precision:
- format:
- delimiter: ""
- human:
- format:
- delimiter: ""
- precision: 1
- significant: true
- strip_insignificant_zeros: true
- storage_units:
- # Storage units output formatting.
- # %u is the storage unit, %n is the number (default: 2 MB)
- format: "%n %u"
- units:
- byte:
- one: "byte"
- other: "bytes"
- kb: "KB"
- mb: "MB"
- gb: "GB"
- tb: "TB"
- decimal_units:
- format: "%n %u"
- units:
- unit: ""
-
- support:
- array:
- words_connector: ", "
- two_words_connector: " e "
- last_word_connector: " e "
-
- errors:
- format: "%{attribute} %{message}"
- messages: &errors_messages
- inclusion: "n'è betg sin la glista"
- exclusion: "na stat betg a disposiziun"
- invalid: "n'è betg valid"
- confirmation: "na correspunda betg al champ da conferma"
- accepted: "sto vegnir acceptà"
- empty: "sto vegnir emplenì ora"
- blank: "sto vegnir emplenì ora"
- too_long: "è memia lung (betg dapli che %{count} caracters)"
- too_short: "è memia curt (betg pli pauc che %{count} caracters)"
- wrong_length: "ha la fallida lunghezza (sto avair %{count} caracters)"
- taken: "è gia occupà"
- not_a_number: "è betg in dumber"
- greater_than: "sto esser pli grond che %{count}"
- greater_than_or_equal_to: "sto esser pli grond u medem sco %{count}"
- equal_to: "sto esser exact %{count}"
- less_than: "sto esser pli pitschen che %{count}"
- less_than_or_equal_to: "sto esser pli pitschen u medem sco %{count}"
- odd: "sto esser spèr"
- even: "sto esser pèr"
- template: &errors_template
- header:
- one: "Betg pussaivel da memorisar quest %{model}: 1 errur."
- other: "Betg pussaivel da memorisar quest %{model}: %{count} errurs."
- body: "Faschai uschè bain e controllai ils suandants champs:"
-
- activerecord:
- errors:
- messages:
- <<: *errors_messages
- template:
- <<: *errors_template
- full_messages:
- format: "%{attribute} %{message}"
\ No newline at end of file
+++ /dev/null
-# Romanian translations for Ruby on Rails
-# by Catalin Ilinca (me@talin.ro)
-# updated by kfl62 (bogus keys are now commented)
-
-ro:
- date:
- formats:
- default: "%d-%m-%Y"
- short: "%d %b"
- long: "%d %B %Y"
-
- day_names:
- - Duminică
- - Luni
- - Marți
- - Miercuri
- - Joi
- - Vineri
- - Sâmbată
- abbr_day_names:
- - Dum
- - Lun
- - Mar
- - Mie
- - Joi
- - Vin
- - Sâm
- month_names:
- - ~
- - Ianuarie
- - Februarie
- - Martie
- - Aprilie
- - Mai
- - Iunie
- - Iulie
- - August
- - Septembrie
- - Octombrie
- - Noiembrie
- - Decembrie
- abbr_month_names:
- - ~
- - Ian
- - Feb
- - Mar
- - Apr
- - Mai
- - Iun
- - Iul
- - Aug
- - Sep
- - Oct
- - Noi
- - Dec
- order:
- - :day
- - :month
- - :year
-
- time:
- formats:
- default: "%a %d %b %Y, %H:%M:%S %z"
- short: "%d %b %H:%M"
- long: "%d %B %Y %H:%M"
- am: ''
- pm: ''
-
- support:
- array:
- words_connector: ", "
- two_words_connector: " şi "
- last_word_connector: " şi "
- select:
- prompt: "Alegeţi"
- number:
- format:
- precision: 3
- separator: '.'
- delimiter: ','
- significant: false
- strip_insignificant_zeros: false
- currency:
- format:
- unit: 'RON'
- precision: 2
- separator: '.'
- delimiter: ','
- format: '%n %u'
- significant: false
- strip_insignificant_zeros: false
- percentage:
- format:
- delimiter: ","
- precision:
- format:
- delimiter: ""
- human:
- format:
- delimiter: ","
- precision: 3
- significant: true
- strip_insignificant_zeros: true
- storage_units:
- format: "%n %u"
- units:
- byte:
- one: "Byte"
- other: "Bytes"
- kb: "KB"
- mb: "MB"
- gb: "GB"
- tb: "TB"
- decimal_units:
- format: "%n %u"
- units:
- unit: ""
- thousand: Mie
- million: Milion
- billion: Miliard
- trillion: Trilion
- quadrillion: Quadrilion
- datetime:
- distance_in_words:
- half_a_minute: "jumătate de minut"
- less_than_x_seconds:
- one: "mai puțin de o secundă"
- other: "mai puțin de %{count} secunde"
- x_seconds:
- one: "1 secundă"
- other: "%{count} secunde"
- less_than_x_minutes:
- one: "mai puțin de un minut"
- other: "mai puțin de %{count} minute"
- x_minutes:
- one: "1 minut"
- other: "%{count} minute"
- about_x_hours:
- one: "aproximativ o oră"
- other: "aproximativ %{count} ore"
- x_days:
- one: "1 zi"
- other: "%{count} zile"
- about_x_months:
- one: "aproximativ o lună"
- other: "aproximativ %{count} luni"
- x_months:
- one: "1 lună"
- other: "%{count} luni"
- about_x_years:
- one: "aproximativ un an"
- other: "aproximativ %{count} ani"
- over_x_years:
- one: "mai mult de un an"
- other: "mai mult de %{count} ani"
- almost_x_years:
- one: "aproape 1 an"
- other: "aproape %{count} ani"
- prompts:
- year: "Anul"
- month: "Luna"
- day: "Ziua"
- hour: "Ora"
- minute: "Minutul"
- second: "Secunda"
-
- helpers:
- select:
- prompt: "Alegeţi"
- submit:
- create: 'Creare %{model}'
- update: 'Modificare %{model}'
- submit: 'Salvare %{model}'
-
- errors:
- format: "%{attribute} %{message}"
- messages: &errors_messages
- inclusion: "nu este inclus în listă"
- exclusion: "este rezervat"
- invalid: "este invalid"
- confirmation: "nu este confirmat"
- accepted: "trebuie dat acceptul"
- empty: "nu poate fi gol"
- blank: "nu poate fi gol"
- too_long: "este prea lung (se pot folosi maximum %{count} caractere)"
- too_short: "este pre scurt (minumim de caractere este %{count})"
- wrong_length: "nu are lungimea corectă (trebuie să aiba %{count} caractere)"
- not_a_number: "nu este un număr"
- not_an_integer: "trebuie să fie un mumăr întreg"
- greater_than: "trebuie să fie mai mare decât %{count}"
- greater_than_or_equal_to: "trebuie să fie mai mare sau egal cu %{count}"
- equal_to: "trebuie să fie egal cu %{count}"
- less_than: "trebuie să fie mai mic decât %{count}"
- less_than_or_equal_to: "trebuie să fie mai mic sau egal cu %{count}"
- odd: "trebuie să fie par"
- even: "trebuie să fie impar"
- taken: "este deja folosit"
- record_invalid: "Validare nereuşită %{errors}"
- template: &errors_template
- header:
- one: "Nu am putut salva acest %{model}: o eroare"
- other: "Nu am putut salva acest %{model}: %{count} erori."
- body: "Încearcă să corectezi urmatoarele câmpuri:"
-
- activerecord:
- errors:
- messages:
- <<: *errors_messages
- template:
- <<: *errors_template
- full_messages:
- format: "%{attribute} %{message}"
\ No newline at end of file
+++ /dev/null
-# Russian localization for Ruby on Rails 2.2+ and 3+
-# by Yaroslav Markin <yaroslav@markin.net>
-#
-# Be sure to check out "russian" gem (http://github.com/yaroslav/russian) for
-# full Russian language support in Rails (month names, pluralization, etc).
-# The following is an excerpt from that gem.
-#
-# Для полноценной поддержки русского языка (варианты названий месяцев,
-# плюрализация и так далее) в Rails 2.2+ и Rails 3 нужно использовать gem "russian"
-# (http://github.com/yaroslav/russian). Следующие данные -- выдержка их него, чтобы
-# была возможность минимальной локализации приложения на русский язык.
-
-ru:
- date:
- formats:
- default: "%d.%m.%Y"
- short: "%d %b"
- long: "%d %B %Y"
-
- day_names:
- - воскресенье
- - понедельник
- - вторник
- - среда
- - четверг
- - пятница
- - суббота
- abbr_day_names:
- - Вс
- - Пн
- - Вт
- - Ср
- - Чт
- - Пт
- - Сб
-
- month_names:
- - ~
- - января
- - февраля
- - марта
- - апреля
- - мая
- - июня
- - июля
- - августа
- - сентября
- - октября
- - ноября
- - декабря
- # see russian gem for info on "standalone" day names
- abbr_month_names:
- - ~
- - янв.
- - февр.
- - марта
- - апр.
- - мая
- - июня
- - июля
- - авг.
- - сент.
- - окт.
- - нояб.
- - дек.
- order:
- - :day
- - :month
- - :year
-
- time:
- formats:
- default: "%a, %d %b %Y, %H:%M:%S %z"
- short: "%d %b, %H:%M"
- long: "%d %B %Y, %H:%M"
-
- am: "утра"
- pm: "вечера"
-
- number:
- format:
- separator: "."
- delimiter: " "
- precision: 3
- significant: false
- strip_insignificant_zeros: false
-
- currency:
- format:
- format: "%n %u"
- unit: "руб."
- separator: "."
- delimiter: " "
- precision: 2
- significant: false
- strip_insignificant_zeros: false
-
- percentage:
- format:
- delimiter: ""
-
- precision:
- format:
- delimiter: ""
-
- human:
- format:
- delimiter: ""
- precision: 1
- significant: false
- strip_insignificant_zeros: false
-
- # Rails 2.2
- # storage_units: [байт, КБ, МБ, ГБ, ТБ]
-
- # Rails 2.3
- storage_units:
- # Storage units output formatting.
- # %u is the storage unit, %n is the number (default: 2 MB)
- format: "%n %u"
- units:
- byte:
- one: "байт"
- few: "байта"
- many: "байт"
- other: "байта"
- kb: "КБ"
- mb: "МБ"
- gb: "ГБ"
- tb: "ТБ"
-
- # Rails 3
- decimal_units:
- format: "%n %u"
- units:
- unit: ""
- thousand:
- one: "тысяча"
- few: "тысяч"
- many: "тысяч"
- other: "тысяч"
- million:
- one: "миллион"
- few: "миллионов"
- many: "миллионов"
- other: "миллионов"
- billion:
- one: "миллиард"
- few: "миллиардов"
- many: "миллиардов"
- other: "миллиардов"
- trillion:
- one: "триллион"
- few: "триллионов"
- many: "триллионов"
- other: "триллионов"
- quadrillion:
- one: "квадриллион"
- few: "квадриллионов"
- many: "квадриллионов"
- other: "квадриллионов"
-
- datetime:
- distance_in_words:
- half_a_minute: "меньше минуты"
- less_than_x_seconds:
- one: "меньше %{count} секунды"
- few: "меньше %{count} секунд"
- many: "меньше %{count} секунд"
- other: "меньше %{count} секунды"
- x_seconds:
- one: "%{count} секунда"
- few: "%{count} секунды"
- many: "%{count} секунд"
- other: "%{count} секунды"
- less_than_x_minutes:
- one: "меньше %{count} минуты"
- few: "меньше %{count} минут"
- many: "меньше %{count} минут"
- other: "меньше %{count} минуты"
- x_minutes:
- one: "%{count} минуту"
- few: "%{count} минуты"
- many: "%{count} минут"
- other: "%{count} минуты"
- about_x_hours:
- one: "около %{count} часа"
- few: "около %{count} часов"
- many: "около %{count} часов"
- other: "около %{count} часа"
- x_days:
- one: "%{count} день"
- few: "%{count} дня"
- many: "%{count} дней"
- other: "%{count} дня"
- about_x_months:
- one: "около %{count} месяца"
- few: "около %{count} месяцев"
- many: "около %{count} месяцев"
- other: "около %{count} месяца"
- x_months:
- one: "%{count} месяц"
- few: "%{count} месяца"
- many: "%{count} месяцев"
- other: "%{count} месяца"
- about_x_years:
- one: "около %{count} года"
- few: "около %{count} лет"
- many: "около %{count} лет"
- other: "около %{count} лет"
- over_x_years:
- one: "больше %{count} года"
- few: "больше %{count} лет"
- many: "больше %{count} лет"
- other: "больше %{count} лет"
- almost_x_years:
- one: "почти 1 год"
- other: "почти %{count} лет"
-
- prompts:
- year: "Год"
- month: "Месяц"
- day: "День"
- hour: "Часов"
- minute: "Минут"
- second: "Секунд"
-
- helpers:
- select:
- # Default value for :prompt => true in FormOptionsHelper
- prompt: "Выберите: "
-
- # Default translation keys for submit FormHelper
- submit:
- create: 'Создать %{model}'
- update: 'Сохранить %{model}'
- submit: 'Сохранить %{model}'
-
- # In rails 3 errors is top-level namespace
- errors:
- format: "%{attribute} %{message}"
-
- messages: &errors_messages
- inclusion: "имеет непредусмотренное значение"
- exclusion: "имеет зарезервированное значение"
- invalid: "имеет неверное значение"
- confirmation: "не совпадает с подтверждением"
- accepted: "нужно подтвердить"
- empty: "не может быть пустым"
- blank: "не может быть пустым"
- too_long:
- one: "слишком большой длины (не может быть больше чем %{count} символ)"
- few: "слишком большой длины (не может быть больше чем %{count} символа)"
- many: "слишком большой длины (не может быть больше чем %{count} символов)"
- other: "слишком большой длины (не может быть больше чем %{count} символа)"
- too_short:
- one: "недостаточной длины (не может быть меньше %{count} символа)"
- few: "недостаточной длины (не может быть меньше %{count} символов)"
- many: "недостаточной длины (не может быть меньше %{count} символов)"
- other: "недостаточной длины (не может быть меньше %{count} символа)"
- wrong_length:
- one: "неверной длины (может быть длиной ровно %{count} символ)"
- few: "неверной длины (может быть длиной ровно %{count} символа)"
- many: "неверной длины (может быть длиной ровно %{count} символов)"
- other: "неверной длины (может быть длиной ровно %{count} символа)"
- taken: "уже существует"
- not_a_number: "не является числом"
- not_an_integer: "не является целым числом"
- greater_than: "может иметь значение большее %{count}"
- greater_than_or_equal_to: "может иметь значение большее или равное %{count}"
- equal_to: "может иметь лишь значение, равное %{count}"
- less_than: "может иметь значение меньшее чем %{count}"
- less_than_or_equal_to: "может иметь значение меньшее или равное %{count}"
- odd: "может иметь лишь четное значение"
- even: "может иметь лишь нечетное значение"
- record_invalid: "Возникли ошибки: %{errors}"
- template: &errors_template
- header:
- one: "%{model}: сохранение не удалось из-за %{count} ошибки"
- few: "%{model}: сохранение не удалось из-за %{count} ошибок"
- many: "%{model}: сохранение не удалось из-за %{count} ошибок"
- other: "%{model}: сохранение не удалось из-за %{count} ошибки"
- body: "Проблемы возникли со следующими полями:"
-
- activerecord:
- errors:
- messages:
- <<: *errors_messages
- template:
- <<: *errors_template
- full_messages:
- format: "%{attribute} %{message}"
-
-
- support:
- select:
- prompt: "Выберите: "
-
- array:
- words_connector: ", "
- two_words_connector: " и "
- last_word_connector: " и "
+++ /dev/null
-# Slovak translations for Ruby on Rails (inspired by the Czech localization - thanx to Karel Minařík)
-# by Jozef Fulop (jofi-rails@silake.com)
-# edit by Ivan Stana (stiipa@centrum.sk)
-
-"sk":
- # Date
- date:
- formats:
- default: "%d.%m.%Y"
- short: "%d %b"
- long: "%d. %B %Y"
-
- day_names:
- - Nedeľa
- - Pondelok
- - Utorok
- - Streda
- - Štvrtok
- - Piatok
- - Sobota
- abbr_day_names:
- - Ne
- - Po
- - Ut
- - St
- - Št
- - Pi
- - So
-
- month_names:
- - ~
- - Január
- - Február
- - Marec
- - Apríl
- - Máj
- - Jún
- - Júl
- - August
- - September
- - Október
- - November
- - December
- abbr_month_names:
- - ~
- - Jan
- - Feb
- - Mar
- - Apr
- - Máj
- - Jún
- - Júl
- - Aug
- - Sep
- - Okt
- - Nov
- - Dec
- order:
- - :day
- - :month
- - :year
-
- # Time
- time:
- formats:
- default: "%a %d. %B %Y %H:%M %z"
- short: "%d.%m. %H:%M"
- long: "%A %d. %B %Y %H:%M"
- am: "dopoludnia"
- pm: "popoludní"
-
- # ActiveSupport
- support:
- array:
- words_connector: ", "
- two_words_connector: " a "
- last_word_connector: " a "
- select:
- prompt: "Prosím vyberte si"
-
- # Numbers
- number:
- format:
- precision: 3
- separator: ","
- delimiter: " "
- significant: false
- strip_insignificant_zeros: false
-
- currency:
- format:
- unit: "€"
- precision: 2
- format: "%n %u"
- separator: ","
- delimiter: " "
- significant: false
- strip_insignificant_zeros: false
-
- percentage:
- format:
- delimiter: " "
-
- precision:
- format:
- delimiter: ""
-
- human:
- format:
- precision: 1
- delimiter: ""
- significant: false
- strip_insignificant_zeros: false
-
- storage_units:
- format: "%n %u"
- units:
- byte:
- other: "B"
- one: "B"
- kb: "KB"
- mb: "MB"
- gb: "GB"
- tb: "TB"
- decimal_units:
- format: "%n %u"
- units:
- unit: ""
- thousand: Tisíc
- million: Milión
- billion: Miliarda
- trillion: Bilión
- quadrillion: Biliarda
-
- # Distance of time ... helper
- datetime:
- prompts:
- second: "Sekunda"
- minute: "Minúta"
- hour: "Hodina"
- day: "Deň"
- month: "Mesiac"
- year: "Rok"
- distance_in_words:
- half_a_minute: 'pol minútou'
- less_than_x_seconds:
- one: 'asi pred sekundou'
- other: 'asi pred %{count} sekundami'
- x_seconds:
- one: 'sekundou'
- other: '%{count} sekundami'
- less_than_x_minutes:
- one: 'pred necelou minútou'
- other: 'pred ani nie %{count} minútami'
- x_minutes:
- one: 'minútou'
- other: '%{count} minútami'
- about_x_hours:
- one: 'asi hodinou'
- other: 'asi %{count} hodinami'
- x_days:
- one: '24 hodinami'
- other: '%{count} dňami'
- about_x_months:
- one: 'asi mesiacom'
- other: 'asi %{count} mesiacmi'
- x_months:
- one: 'mesiacom'
- other: '%{count} mesiacmi'
- about_x_years:
- one: 'asi rokom'
- other: 'asi %{count} rokmi'
- over_x_years:
- one: 'pred viac ako rokom'
- other: 'viac ako %{count} rokmi'
- almost_x_years:
- one: "takmer pred rokom"
- other: "takmer pred %{count} rokmi"
-
- helpers:
- select:
- prompt: "Prosím vyberte si"
-
- submit:
- create: 'Vytvoriť %{model}'
- update: 'Aktualizovať %{model}'
- submit: 'Uložiť %{model}'
-
- errors:
- format: "%{attribute} %{message}"
- messages: &errors_messages
- inclusion: "nie je v zozname povolených hodnôt"
- exclusion: "je vyhradené pre iný účel"
- invalid: "nie je platná hodnota"
- confirmation: "nebolo potvrdené"
- accepted: "musí byť potvrdené"
- empty: "nesmie byť prázdny/e"
- blank: "je povinná položka"
- too_long: "je príliš dlhá/ý (max. %{count} znakov)"
- too_short: "je príliš krátky/a (min. %{count} znakov)"
- wrong_length: "nemá správnu dĺžku (očakáva sa %{count} znakov)"
- taken: "sa už nachádza v databáze"
- not_a_number: "nie je číslo"
- not_an_integer: "musí byť celé číslo"
- greater_than: "musí byť väčšie ako %{count}"
- greater_than_or_equal_to: "musí byť väčšie alebo rovné %{count}"
- equal_to: "sa musí rovnať %{count}"
- less_than: "musí byť menšie ako %{count}"
- less_than_or_equal_to: "musí byť menšie alebo rovné %{count}"
- odd: "musí byť nepárne číslo"
- even: "musí byť párne číslo"
- taken: "ste už použili"
- record_invalid: "Validácia neúspešná: %{errors}"
- template: &errors_template
- header:
- one: "Pri ukladaní objektu %{model} došlo k chybám a nebolo ho možné uložiť"
- other: "Pri ukladaní objektu %{model} došlo k %{count} chybám a nebolo ho možné uložiť"
- body: "Nasledujúce polia obsahujú chybne vyplnené údaje:"
-
- # ActiveRecord validation messages
- activerecord:
- errors:
- messages:
- <<: *errors_messages
- template:
- <<: *errors_template
-
- full_messages:
- format: "%{attribute} %{message}"
+++ /dev/null
-# Slovenian language localization (sl-sl)
-# by Miha Rebernik <miha@rebernik.info>
-sl:
- date:
- formats:
- default: "%d.%m.%Y"
- short: "%d. %b"
- long: "%d. %b %Y"
-
- day_names:
- - nedelja
- - ponedeljek
- - torek
- - sreda
- - četrtek
- - petek
- - sobota
- abbr_day_names:
- - ned
- - pon
- - tor
- - sre
- - čet
- - pet
- - sob
-
- month_names:
- - ~
- - januar
- - februar
- - marec
- - april
- - maj
- - junij
- - julij
- - avgust
- - september
- - oktober
- - november
- - december
- abbr_month_names:
- - ~
- - jan
- - feb
- - mar
- - apr
- - maj
- - jun
- - jul
- - avg
- - sep
- - okt
- - nov
- - dec
- order:
- - :day
- - :month
- - :year
-
- time:
- formats:
- default: "%A, %d %b %Y ob %H:%M:%S"
- short: "%d. %b ob %H:%M"
- long: "%d. %B, %Y ob %H:%M"
-
- am: "dopoldan"
- pm: "popoldan"
-
- # Used in array.to_sentence.
- support:
- array:
- words_connector: ", "
- two_words_connector: " in "
- last_word_connector: " in "
-
- errors:
- format: "%{attribute} %{message}"
- messages: &errors_messages
- inclusion: "ni vključeno v seznam"
- exclusion: "je rezervirano"
- invalid: "je nepravilno"
- confirmation: "se ne ujema s potrditvijo"
- accepted: "mora biti sprejeto"
- empty: "ne sme biti prazno"
- blank: "ne sme biti prazno"
- too_long: "je predolgo (dovoljeno je do %{count} znakov)"
- too_short: "je prekratko (zahtevano je najmanj %{count} znakov)"
- wrong_length: "je napačne dolžine (mora biti natančno %{count} znakov)"
- taken: "je že zasedeno"
- not_a_number: "ni številka"
- greater_than: "mora biti večje kot %{count}"
- greater_than_or_equal_to: "mora biti večje ali enako %{count}"
- equal_to: "mora biti enako %{count}"
- less_than: "mora biti manj kot %{count}"
- less_than_or_equal_to: "mora biti manj ali enako %{count}"
- odd: "mora biti liho"
- even: "mora biti sodo"
- record_invalid: ""
- template: &errors_template
- header:
- one: "Ena napaka preprečuje, da bi shranili %{model}"
- two: "Dve napaki preprečujeta, da bi shranili %{model}"
- few: "%{count} napake preprečujejo, da bi shranili %{model}"
- other: "%{count} napak preprečuje, da bi shranili %{model}"
- body: "Napačno izpolnjena polja:"
-
- activerecord:
- errors:
- messages:
- <<: *errors_messages
- template:
- <<: *errors_template
- full_messages:
- format: "%{attribute} %{message}"
-
-
- number:
- # Used in number_with_delimiter()
- # These are also the defaults for 'currency', 'percentage', 'precision', and 'human'
- format:
- # Sets the separator between the units, for more precision (e.g. 1.0 / 2.0 == 0.5)
- separator: ","
- # Delimets thousands (e.g. 1,000,000 is a million) (always in groups of three)
- delimiter: "."
- # Number of decimals, behind the separator (the number 1 with a precision of 2 gives: 1.00)
- precision: 2
- significant: false
- strip_insignificant_zeros: false
-
- # Used in number_to_currency()
- currency:
- format:
- # Where is the currency sign? %u is the currency unit, %n the number (default: $5.00)
- format: "%u%n"
- unit: "€"
- # These three are to override number.format and are optional
- separator: ","
- delimiter: "."
- precision: 2
- significant: false
- strip_insignificant_zeros: false
-
- # Used in number_to_percentage()
- percentage:
- format:
- # These three are to override number.format and are optional
- # separator:
- delimiter: ""
- # precision:
-
- # Used in number_to_precision()
- precision:
- format:
- # These three are to override number.format and are optional
- # separator:
- delimiter: ""
- # precision:
-
- # Used in number_to_human_size()
- human:
- format:
- # These three are to override number.format and are optional
- # separator:
- delimiter: ""
- precision: 1
- significant: true
- strip_insignificant_zeros: true
- storage_units:
- # Storage units output formatting.
- # %u is the storage unit, %n is the number (default: 2 MB)
- format: "%n %u"
- units:
- byte:
- one: "Byte"
- other: "Bytes"
- kb: "KB"
- mb: "MB"
- gb: "GB"
- tb: "TB"
- decimal_units:
- format: "%n %u"
- units:
- unit: ""
-
- # Used in distance_of_time_in_words(), distance_of_time_in_words_to_now(), time_ago_in_words()
- datetime:
- distance_in_words:
- half_a_minute: "pol minute"
- less_than_x_seconds:
- one: "manj kot 1 sekunda"
- two: "manj kot 2 sekundi"
- few: "manj kot %{count} sekunde"
- other: "manj kot %{count} sekund"
- x_seconds:
- one: "1 sekunda"
- two: "2 sekundi"
- few: "%{count} sekunde"
- other: "%{count} sekund"
- less_than_x_minutes:
- one: "manj kot ena minuta"
- two: "manj kot dve minuti"
- few: "manj kot %{count} minute"
- other: "manj kot %{count} minut"
- x_minutes:
- one: "1 minuta"
- two: "2 minuti"
- few: "%{count} minute"
- other: "%{count} minut"
- about_x_hours:
- one: "okoli 1 ura"
- two: "okoli 2 uri"
- few: "okoli %{count} ure"
- other: "okoli %{count} ur"
- x_days:
- one: "1 dan"
- two: "2 dneva"
- few: "%{count} dnevi"
- other: "%{count} dni"
- about_x_months:
- one: "okoli 1 mesec"
- two: "okoli 2 meseca"
- few: "okoli %{count} mesece"
- other: "okoli %{count} mesecev"
- x_months:
- one: "1 mesec"
- two: "2 meseca"
- few: "%{count} mesece"
- other: "%{count} mesecev"
- almost_x_years:
- one: "skoraj 1 leto"
- two: "skoraj 2 leti"
- few: "skoraj %{count} leta"
- other: "skoraj %{count} let"
- about_x_years:
- one: "okoli 1 leto"
- two: "okoli 2 leti"
- few: "okoli %{count} leta"
- other: "okoli %{count} let"
- over_x_years:
- one: "več kot 1 leto"
- two: "več kot 2 leti"
- few: "več kot %{count} leta"
- other: "več kot %{count} let"
- prompts:
- year: "Leto"
- month: "Mesec"
- day: "Dan"
- hour: "Ura"
- minute: "Minute"
- second: "Sekunde"
+++ /dev/null
-# Serbian (Latin) translations for Ruby on Rails
-# by Dejan Dimić (dejan.dimic@gmail.com)
-
-"sr-Latn":
- date:
- formats:
- default: "%d/%m/%Y"
- short: "%e %b"
- long: "%B %e, %Y"
- day_names:
- - Nedelja
- - Ponedeljak
- - Utorak
- - Sreda
- - Četvrtak
- - Petak
- - Subota
- abbr_day_names:
- - Ned
- - Pon
- - Uto
- - Sre
- - Čet
- - Pet
- - Sub
- month_names:
- - ~
- - Januar
- - Februar
- - Mart
- - April
- - Maj
- - Jun
- - Jul
- - Avgust
- - Septembar
- - Oktobar
- - Novembar
- - Decembar
- abbr_month_names:
- - ~
- - Jan
- - Feb
- - Mar
- - Apr
- - Maj
- - Jun
- - Jul
- - Avg
- - Sep
- - Okt
- - Nov
- - Dec
- order:
- - :day
- - :month
- - :year
-
- time:
- formats:
- default: "%a %b %d %H:%M:%S %Z %Y"
- short: "%d %b %H:%M"
- long: "%B %d, %Y %H:%M"
- am: 'AM'
- pm: 'PM'
-
- datetime:
- distance_in_words:
- half_a_minute: 'pola minute'
- less_than_x_seconds:
- zero: 'manje od 1 sekunde'
- one: 'manje od 1 sekund'
- few: 'manje od %{count} sekunde'
- other: 'manje od %{count} sekundi'
- x_seconds:
- one: '1 sekunda'
- few: '%{count} sekunde'
- other: '%{count} sekundi'
- less_than_x_minutes:
- zero: 'manje od minuta'
- one: 'manje od 1 minut'
- other: 'manje od %{count} minuta'
- x_minutes:
- one: '1 minut'
- other: '%{count} minuta'
- about_x_hours:
- one: 'oko 1 sat'
- few: 'oko %{count} sata'
- other: 'oko %{count} sati'
- x_days:
- one: '1 dan'
- other: '%{count} dana'
- about_x_months:
- one: 'oko 1 mesec'
- few: 'oko %{count} meseca'
- other: 'oko %{count} meseci'
- x_months:
- one: '1 mesec'
- few: '%{count} meseca'
- other: '%{count} meseci'
- about_x_years:
- one: 'oko 1 godine'
- other: 'oko %{count} godine'
- over_x_years:
- one: 'preko 1 godine'
- other: 'preko %{count} godine'
-
- number:
- format:
- precision: 3
- separator: ','
- delimiter: '.'
- significant: false
- strip_insignificant_zeros: false
- currency:
- format:
- unit: 'DIN'
- precision: 2
- format: '%n %u'
- separator: "."
- delimiter: ","
- significant: false
- strip_insignificant_zeros: false
- percentage:
- format:
- delimiter: ""
- precision:
- format:
- delimiter: ""
- human:
- format:
- delimiter: ""
- precision: 3
- significant: true
- strip_insignificant_zeros: true
- storage_units:
- format: "%n %u"
- decimal_units:
- format: "%n %u"
- units:
- unit: ""
-
- errors:
- format: "%{attribute} %{message}"
- messages: &errors_messages
- inclusion: "nije u listi"
- exclusion: "nije dostupno"
- invalid: "nije ispravan"
- confirmation: "se ne slaže sa svojom potvrdom"
- accepted: "mora biti prihvaćen"
- empty: "mora biti dat"
- blank: "mora biti dat"
- too_long: "je predugačak (ne više od %{count} karaktera)"
- too_short: "je prekratak (ne manje od %{count} karaktera)"
- wrong_length: "nije odgovarajuće dužine (mora imati %{count} karaktera)"
- taken: "je zauzeto"
- not_a_number: "nije broj"
- greater_than: "mora biti veće od %{count}"
- greater_than_or_equal_to: "mora biti veće ili jednako %{count}"
- equal_to: "mora biti jednako %{count}"
- less_than: "mora biti manje od %{count}"
- less_than_or_equal_to: "mora biti manje ili jednako %{count}"
- odd: "mora biti neparno"
- even: "mora biti parno"
- template: &errors_template
- header:
- one: 'Nisam uspeo sačuvati %{model}: 1 greška'
- few: 'Nisam uspeo sačuvati %{model}: %{count} greške.'
- other: 'Nisam uspeo sačuvati %{model}: %{count} greški.'
- body: "Molim Vas proverite sledeća polja:"
-
- activerecord:
- errors:
- messages:
- <<: *errors_messages
- template:
- <<: *errors_template
- full_messages:
- format: "%{attribute} %{message}"
\ No newline at end of file
+++ /dev/null
-# Serbian default (Cyrillic) translations for Ruby on Rails
-# by Dejan Dimić (dejan.dimic@gmail.com)
-
-"sr":
- date:
- formats:
- default: "%d/%m/%Y"
- short: "%e %b"
- long: "%B %e, %Y"
- day_names:
- - Недеља
- - Понедељак
- - Уторак
- - Среда
- - Четвртак
- - Петак
- - Субота
- abbr_day_names:
- - Нед
- - Пон
- - Уто
- - Сре
- - Чет
- - Пет
- - Суб
- month_names:
- - ~
- - Јануар
- - Фабруар
- - Март
- - Април
- - Мај
- - Јун
- - Јул
- - Август
- - Септембар
- - Октобар
- - Новембар
- - Децембар
- abbr_month_names:
- - ~
- - Јан
- - Феб
- - Мар
- - Апр
- - Мај
- - Јун
- - Јул
- - Авг
- - Сеп
- - Окт
- - Нов
- - Дец
- order:
- - :day
- - :month
- - :year
-
- time:
- formats:
- default: "%a %b %d %H:%M:%S %Z %Y"
- short: "%d %b %H:%M"
- long: "%B %d, %Y %H:%M"
- am: 'АМ'
- pm: 'ПМ'
-
- datetime:
- distance_in_words:
- half_a_minute: 'пола минуте'
- less_than_x_seconds:
- zero: 'мање од 1 секунде'
- one: 'мање од 1 секунд'
- few: 'мање од %{count} секунде'
- other: 'мање од %{count} секунди'
- x_seconds:
- one: '1 секунда'
- few: '%{count} секунде'
- other: '%{count} секунди'
- less_than_x_minutes:
- zero: 'мање од минута'
- one: 'мање од 1 минут'
- other: 'мање од %{count} минута'
- x_minutes:
- one: '1 минут'
- other: '%{count} минута'
- about_x_hours:
- one: 'око 1 сат'
- few: 'око %{count} сата'
- other: 'око %{count} сати'
- x_days:
- one: '1 дан'
- other: '%{count} дана'
- about_x_months:
- one: 'око 1 месец'
- few: 'око %{count} месеца'
- other: 'око %{count} месеци'
- x_months:
- one: '1 месец'
- few: '%{count} месеца'
- other: '%{count} месеци'
- about_x_years:
- one: 'око 1 године'
- other: 'око %{count} године'
- over_x_years:
- one: 'преко 1 године'
- other: 'преко %{count} године'
-
- number:
- format:
- precision: 3
- separator: ','
- delimiter: '.'
- significant: false
- strip_insignificant_zeros: false
- currency:
- format:
- unit: 'ДИН'
- precision: 2
- format: '%n %u'
- separator: "."
- delimiter: ","
- significant: false
- strip_insignificant_zeros: false
- percentage:
- format:
- delimiter: ""
- precision:
- format:
- delimiter: ""
- human:
- format:
- delimiter: ""
- precision: 3
- significant: true
- strip_insignificant_zeros: true
- storage_units:
- format: "%n %u"
- decimal_units:
- format: "%n %u"
- units:
- unit: ""
-
- errors:
- format: "%{attribute} %{message}"
- messages: &errors_messages
- inclusion: "није у листи"
- exclusion: "није доступно"
- invalid: "није исправан"
- confirmation: "се не слаже са својом потврдом"
- accepted: "мора бити прихваћено"
- empty: "мора бити дат"
- blank: "мора бити дат"
- too_long: "је предугачак (не више од %{count} карактера)"
- too_short: "је прекратак (не мање од %{count} карактера)"
- wrong_length: "није одговарајуће дужине (мора имати %{count} карактера)"
- taken: "је заузето"
- not_a_number: "није број"
- greater_than: "мора бити веће од %{count}"
- greater_than_or_equal_to: "мора бити веће или једнако %{count}"
- equal_to: "мора бити једнако %{count}"
- less_than: "мора бити мање од %{count}"
- less_than_or_equal_to: "мора бити мање или једнако %{count}"
- odd: "мора бити непарно"
- even: "мора бити парно"
- template: &errors_template
- header:
- one: 'Нисам успео сачувати %{model}: 1 грешка.'
- few: 'Нисам успео сачувати %{model}: %{count} грешке.'
- other: 'Нисам успео сачувати %{model}: %{count} грешки.'
- body: "Молим Вас да проверите следећа поља:"
-
- activerecord:
- errors:
- messages:
- <<: *errors_messages
- template:
- <<: *errors_template
- full_messages:
- format: "%{attribute} %{message}"
+++ /dev/null
-# Swedish translation.
-# By Johan Lundström (johanlunds@gmail.com) with parts taken from http://github.com/daniel/swe_rails.
-# With contributions by:
-# * Sven Dahlstrand (sven.dahlstrand@gmail.com)
-# * Henrik Nyh (henrik@nyh.se)
-# * Magnus Bergmark (magnus.bergmark@gmail.com)
-# * Carl Åkerlindh (carl.akerlindh@gmail.com)
-
-"sv-SE":
- number:
- # Used in number_with_delimiter()
- # These are also the defaults for 'currency', 'percentage', 'precision', and 'human'
- format:
- # Sets the separator between the units, for more precision (e.g. 1.0 / 2.0 == 0.5)
- separator: ","
- # Delimits thousands (e.g. 1,000,000 is a million) (always in groups of three)
- delimiter: " " # non-breaking space
- # Number of decimals after the separator (the number 1 with a precision of 2 gives: 1.00)
- precision: 2
- significant: false
- strip_insignificant_zeros: false
-
- # Used in number_to_currency()
- currency:
- format:
- # Where is the currency sign? %u is the currency unit, %n the number (default: $5.00)
- format: "%n %u"
- unit: "kr"
- separator: "."
- delimiter: ","
- precision: 2
- significant: false
- strip_insignificant_zeros: false
- percentage:
- format:
- delimiter: ""
- precision:
- format:
- delimiter: ""
- # Used in number_to_human_size()
- human:
- format:
- delimiter: ""
- precision: 1
- significant: true
- strip_insignificant_zeros: true
- storage_units:
- # Storage units output formatting.
- # %u is the storage unit, %n is the number (default: 2 MB)
- format: "%n %u"
- units:
- byte:
- one: "Byte"
- other: "Bytes"
- kb: "KB"
- mb: "MB"
- gb: "GB"
- tb: "TB"
- decimal_units:
- format: "%n %u"
- units:
- unit: ""
- thousand: "Tusen"
- million: "Miljon"
- billion: "Miljard"
- trillion: "Biljon"
- quadrillion: "Biljard"
-
- # Used in distance_of_time_in_words(), distance_of_time_in_words_to_now(), time_ago_in_words()
- datetime:
- distance_in_words:
- half_a_minute: "en halv minut"
- less_than_x_seconds:
- one: "mindre än en sekund"
- other: "mindre än %{count} sekunder"
- x_seconds:
- one: "en sekund"
- other: "%{count} sekunder"
- less_than_x_minutes:
- one: "mindre än en minut"
- other: "mindre än %{count} minuter"
- x_minutes:
- one: "en minut"
- other: "%{count} minuter"
- about_x_hours:
- one: "ungefär en timme"
- other: "ungefär %{count} timmar"
- x_days:
- one: "en dag"
- other: "%{count} dagar"
- about_x_months:
- one: "ungefär en månad"
- other: "ungefär %{count} månader"
- x_months:
- one: "en månad"
- other: "%{count} månader"
- about_x_years:
- one: "ungefär ett år"
- other: "ungefär %{count} år"
- over_x_years:
- one: "mer än ett år"
- other: "mer än %{count} år"
- almost_x_years:
- one: "nästan ett år"
- other: "nästan %{count} år"
-
- prompts:
- year: "År"
- month: "Månad"
- day: "Dag"
- hour: "Timme"
- minute: "Minut"
- second: "Sekund"
-
- helpers:
- select:
- prompt: "Välj"
-
- submit:
- create: "Skapa %{model}"
- update: "Ändra %{model}"
- submit: "Spara %{model}"
-
- errors:
- format: "%{attribute} %{message}"
-
- messages: &errors_messages
- inclusion: "finns inte i listan"
- exclusion: "är reserverat"
- invalid: "har fel format"
- confirmation: "stämmer inte överens"
- accepted: "måste vara accepterad"
- empty: "får ej vara tom"
- blank: "måste anges"
- too_long: "är för lång (maximum är %{count} tecken)"
- too_short: "är för kort (minimum är %{count} tecken)"
- wrong_length: "har fel längd (ska vara %{count} tecken)"
- taken: "har redan tagits"
- not_a_number: "är inte ett nummer"
- not_an_integer: "måste vara ett heltal"
- greater_than: "måste vara större än %{count}"
- greater_than_or_equal_to: "måste vara större än eller lika med %{count}"
- equal_to: "måste vara samma som"
- less_than: "måste vara mindre än %{count}"
- less_than_or_equal_to: "måste vara mindre än eller lika med %{count}"
- odd: "måste vara udda"
- even: "måste vara jämnt"
- record_invalid: "Ett fel uppstod: %{errors}"
- template: &errors_template
- header:
- one: "Ett fel förhindrade denna %{model} från att sparas"
- other: "%{count} fel förhindrade denna %{model} från att sparas"
- body: "Det var problem med följande fält:"
-
- activerecord:
- errors:
- messages:
- <<: *errors_messages
- template:
- <<: *errors_template
-
- full_messages:
- format: "%{attribute} %{message}"
-
- # The values :model, :attribute and :value are always available for interpolation
- # The value :count is available when applicable. Can be used for pluralization.
- # Append your own errors here or at the model/attributes scope.
-
- # You can define own errors for models or model attributes.
- # The values :model, :attribute and :value are always available for interpolation.
- #
- # For example,
- # models:
- # user:
- # blank: "This is a custom blank message for %{model}: %{attribute}"
- # attributes:
- # login:
- # blank: "This is a custom blank message for User login"
- # Will define custom blank validation message for User model and
- # custom blank validation message for login attribute of User model.
- # models:
-
- # Translate model names. Used in Model.human_name().
- #models:
- # For example,
- # user: "Dude"
- # will translate User model name to "Dude"
-
- # Translate model attribute names. Used in Model.human_attribute_name(attribute).
- #attributes:
- # For example,
- # user:
- # login: "Handle"
- # will translate User attribute "login" as "Handle"
-
- date:
- formats:
- # Use the strftime parameters for formats.
- # When no format has been given, it uses default.
- # You can provide other formats here if you like!
- default: "%Y-%m-%d"
- short: "%e %b"
- long: "%e %B %Y"
-
- day_names:
- - söndag
- - måndag
- - tisdag
- - onsdag
- - torsdag
- - fredag
- - lördag
- abbr_day_names:
- - sön
- - mån
- - tis
- - ons
- - tor
- - fre
- - lör
-
- # Don't forget the nil at the beginning; there's no such thing as a 0th month
- month_names:
- - ~
- - januari
- - februari
- - mars
- - april
- - maj
- - juni
- - juli
- - augusti
- - september
- - oktober
- - november
- - december
- abbr_month_names:
- - ~
- - jan
- - feb
- - mar
- - apr
- - maj
- - jun
- - jul
- - aug
- - sep
- - okt
- - nov
- - dec
- # Used in date_select and datime_select.
- order:
- - :day
- - :month
- - :year
-
- time:
- formats:
- default: "%a, %e %b %Y %H:%M:%S %z"
- short: "%e %b %H:%M"
- long: "%e %B %Y %H:%M"
- am: ""
- pm: ""
-
- # Used in array.to_sentence.
- support:
- array:
- words_connector: ", "
- two_words_connector: " och "
- last_word_connector: " och "
- select:
- # default value for :prompt => true in FormOptionsHelper
- prompt: "Välj"
+++ /dev/null
-# Swahili translations for Ruby on Rails
-# - Initially sketched by Joachim Mangilima (joachimm3@gmail.com) and Matthew Todd (http://matthewtodd.org)
-# - Vastly improved by Joram (namtih58@gmail.com)
-
-sw:
- date:
- formats:
- default: '%d-%m-%Y'
- short: '%e %b'
- long: '%e %B, %Y'
-
- day_names:
- - Jumpili
- - Jumatatu
- - Jumanne
- - Jumatano
- - Alhamisi
- - Ijumaa
- - Jumamosi
- abbr_day_names:
- - J2
- - J3
- - J4
- - J5
- - Al
- - Ij
- - J1
-
- month_names:
- - ~
- - Mwezi wa kwanza
- - Mwezi wa pili
- - Mwezi wa tatu
- - Mwezi wa nne
- - Mwezi wa tano
- - Mwezi wa sita
- - Mwezi wa saba
- - Mwezi wa nane
- - Mwezi wa tisa
- - Mwezi wa kumi
- - Mwezi wa kumi na moja
- - Mwezi wa kumi na mbili
- abbr_month_names:
- - ~
- - Jan
- - Feb
- - Mac
- - Apr
- - Mei
- - Jun
- - Jul
- - Ago
- - Sep
- - Okt
- - Nov
- - Des
- order:
- - :day
- - :month
- - :year
-
- time:
- formats:
- default: '%a, %d %b %Y %H:%M:%S'
- short: '%e %b %Y %H:%M'
- long: '%A, %e. %B %Y, %H:%M:%S'
- am: 'am'
- pm: 'pm'
-
- support:
- array:
- words_connector: ', '
- two_words_connector: ' na '
- last_word_connector: ', na '
-
- select:
- prompt: 'Tafadhali teua'
-
- number:
- format:
- separator: ','
- delimiter: '.'
- precision: 2
- significant: false
- strip_insignificant_zeros: false
-
- currency:
- format:
- format: '%n%u'
- unit: '/='
- separator: ','
- delimiter: '.'
- precision: 2
- significant: false
- strip_insignificant_zeros: false
-
- percentage:
- format:
- delimiter: ''
-
- precision:
- format:
- delimiter: ''
-
- human:
- format:
- delimiter: ''
- precision: 3
- significant: true
- strip_insignificant_zeros: true
- storage_units:
- format: '%n %u'
- units:
- byte:
- one: 'Byte'
- other: 'Bytes'
- kb: 'KB'
- mb: 'MB'
- gb: 'GB'
- tb: 'TB'
- decimal_units:
- format: '%n %u'
- units:
- unit: ''
- thousand: Elfu
- million: Milioni
- billion: Bilioni
- trillion: Trilioni
- quadrillion: Quadrillion
-
- datetime:
- distance_in_words:
- half_a_minute: 'nusu dakika'
- less_than_x_seconds:
- one: 'chini ya sekunde 1'
- other: 'chini ya sekunde %{count}'
- x_seconds:
- one: 'sekunde 1'
- other: 'sekunde %{count}'
- less_than_x_minutes:
- one: 'chini ya dakika 1'
- other: 'chini ya dakika %{count}'
- x_minutes:
- one: 'dakika 1'
- other: 'dakika %{count}'
- about_x_hours:
- one: 'kama saa limoja'
- other: 'kama masaa %{count}'
- x_days:
- one: 'siku 1'
- other: 'siku %{count}'
- about_x_months:
- one: 'kama mwezi 1'
- other: 'kama miezi %{count}'
- x_months:
- one: 'mwezi 1'
- other: 'miezi %{count}'
- about_x_years:
- one: 'kama mwaka 1'
- other: 'kama miaka %{count}'
- over_x_years:
- one: 'zaidi ya mwaka 1'
- other: 'zaidi ya miaka %{count}'
- almost_x_years:
- one: 'karibia mwaka'
- other: 'karibia miaka %{count}'
- prompts:
- year: 'Mwaka'
- month: 'Mwezi'
- day: 'Siku'
- hour: 'Saa'
- minute: 'Dakika'
- second: 'Sekunde'
-
- helpers:
- select:
- prompt: 'Tafadhali teua'
-
- submit:
- create: 'Unda %{model}'
- update: 'Sasaisha %{model}'
- submit: 'Akibisha %{model}'
-
- errors:
- format: '%{attribute} %{message}'
-
- messages: &errors_messages
- inclusion: 'haipo kwenye orodha'
- exclusion: 'haiwezi kutumika'
- invalid: 'haifai'
- confirmation: 'haifanani na hapo chini'
- accepted: 'lazima ikubaliwe'
- empty: 'haitakiwi kuwa tupu'
- blank: 'haitakiwi kuwa wazi'
- too_long: 'ndefu sana (isizidi herufi %{count})'
- too_short: 'fupi mno (isipungue herufi %{count})'
- wrong_length: 'idadi ya herufi hazilingani (inatakiwa %{count})'
- not_a_number: 'inaruhusiwa namba tu'
- not_an_integer: 'inaruhusiwa namba tu'
- greater_than: 'z/iwe zaidi ya {{count}}'
- greater_than_or_equal_to: 'z/iwe sawa ama zaidi ya {{count}}'
- equal_to: 'z/iwe sawa na {{count}}'
- less_than: 'z/isizidi {{count}}'
- less_than_or_equal_to: 'z/iwe sawa na, ama chini ya {{count}}'
- odd: 'z/iwe witiri'
- even: 'z/iwe shufwa'
- taken: 'imesajiliwa'
- record_invalid: "Uhalalishaji umeshindikana: %{errors}"
- template: &errors_template
- header:
- one: '%{model} haikuhifadhiwa kwa sababu moja.'
- other: '%{model} haikuhifadhiwa kwa sababu %{count}.'
- body: 'Tafadhali kagua sehemu zifuatazo:'
-
- activerecord:
- errors:
- messages:
- <<: *errors_messages
- template:
- <<: *errors_template
-
- full_messages:
- format: '%{attribute}%{message}'
+++ /dev/null
-# Thai translation for Ruby on Rails
-# original by Prem Sichanugrist (s@sikachu.com/sikandsak@gmail.com)
-# activerecord keys fixed by Jittat Fakcharoenphol (jittat@gmail.com)
-#
-# Note: You must install i18n gem in order to use this language pack.
-
-th:
- date:
- formats:
- default: "%d-%m-%Y"
- short: "%d %b"
- long: "%d %B %Y"
-
- day_names:
- - อาทิตย์
- - จันทร์
- - อังคาร
- - พุธ
- - พฤหัสบดี
- - ศุกร์
- - เสาร์
- abbr_day_names:
- - อา
- - จ
- - อ
- - พ
- - พฤ
- - ศ
- - ส
- month_names:
- - ~
- - มกราคม
- - กุมภาพันธ์
- - มีนาคม
- - เมษายน
- - พฤษภาคม
- - มิถุนายน
- - กรกฎาคม
- - สิงหาคม
- - กันยายน
- - ตุลาคม
- - พฤศจิกายน
- - ธันวาคม
- abbr_month_names:
- - ~
- - ม.ค.
- - ก.พ.
- - มี.ค.
- - เม.ย.
- - พ.ค.
- - มิ.ย.
- - ก.ค.
- - ส.ค.
- - ก.ย.
- - ต.ค.
- - พ.ย.
- - ธ.ค.
- order:
- - :day
- - :month
- - :year
-
- time:
- formats:
- default: "%a %d %b %Y %H:%M:%S %z"
- short: "%d %b %H:%M น."
- long: "%d %B %Y %H:%M น."
- am: "ก่อนเที่ยง"
- pm: "หลังเที่ยง"
-
- support:
- array:
- words_connector: ", "
- two_words_connector: " และ "
- last_word_connector: ", และ "
-
- select:
- prompt: "โปรดเลือก"
-
- number:
- format:
- separator: "."
- delimiter: ","
- precision: 3
- significant: false
- strip_insignificant_zeros: false
-
- currency:
- format:
- format: "%n %u"
- unit: "บาท"
- separator: "."
- delimiter: ","
- precision: 2
- significant: false
- strip_insignificant_zeros: false
-
- percentage:
- format:
- delimiter: ""
-
- precision:
- format:
- delimiter: ""
-
- human:
- format:
- delimiter: ""
- precision: 3
- significant: true
- strip_insignificant_zeros: true
- storage_units:
- format: "%n %u"
- units:
- byte: "ไบต์"
- kb: "กิโลไบต์"
- mb: "เมกะไบต์"
- gb: "จิกะไบต์"
- tb: "เทระไบต์"
-
- decimal_units:
- format: "%n %u"
- units:
- unit: ""
- thousand: "พัน"
- million: "ล้าน"
- billion: "พันล้าน"
- trillion: "ล้านล้าน"
- quadrillion: "พันล้านล้าน"
-
- datetime:
- distance_in_words:
- half_a_minute: "ครึ่งนาที"
- less_than_x_seconds: "น้อยกว่า %{count} วินาที"
- x_seconds: "%{count} วินาที"
- less_than_x_minutes: "น้อยกว่า %{count} นาที"
- x_minutes: "%{count} นาที"
- about_x_hours: "ประมาณ %{count} ชั่วโมง"
- x_days: "%{count} วัน"
- about_x_months: "ประมาณ %{count} เดือน"
- x_months: "%{count} เดือน"
- about_x_years: "ประมาณ %{count} ปี"
- over_x_years: "มากกว่า %{count} ปี"
- almost_x_years: "เกือบ %{count} ปี"
- prompts:
- year: "ปี"
- month: "เดือน"
- day: "วัน"
- hour: "ชั่วโมง"
- minute: "นาที"
- second: "วินาที"
-
- helpers:
- select:
- prompt: "โปรดเลือก"
-
- submit:
- create: "สร้าง%{model}"
- update: "ปรับปรุง%{model}"
- submit: "บันทึก%{model}"
-
- errors:
- format: "%{attribute} %{message}"
- messages: &errors_messages
- inclusion: "ไม่ได้อยู่ในรายการ"
- exclusion: "ไม่ได้รับอนุญาตให้ใช้"
- invalid: "ไม่ถูกต้อง"
- confirmation: "ไม่ตรงกับการยืนยัน"
- accepted: "ต้องถูกยอมรับ"
- empty: "ต้องไม่เว้นว่างเอาไว้"
- blank: "ต้องไม่เว้นว่างเอาไว้"
- too_long: "ยาวเกินไป (ต้องไม่เกิน %{count} ตัวอักษร)"
- too_short: "สั้นเกินไป (ต้องยาวกว่า %{count} ตัวอักษร)"
- wrong_length: "มีความยาวไม่ถูกต้อง (ต้องมีความยาว %{count} ตัวอักษร)"
- not_a_number: "ไม่ใช่ตัวเลข"
- not_an_integer: "ไม่ใช่จำนวนเต็ม"
- greater_than: "ต้องมากกว่า %{count}"
- greater_than_or_equal_to: "ต้องมากกว่าหรือเท่ากับ %{count}"
- equal_to: "ต้องมีค่าเท่ากับ %{count}"
- less_than: "ต้องมีค่าน้อยกว่า %{count}"
- less_than_or_equal_to: "ต้องมีค่าน้อยกว่าหรือเท่ากับ %{count}"
- odd: "ต้องเป็นจำนวนคี่"
- even: "ต้องเป็นจำนวนคู่"
- taken: "ถูกใช้ไปแล้ว"
- record_invalid: "ไม่ผ่านการตรวจสอบ: %{errors}"
- template: &errors_template
- header: "พบข้อผิดพลาด %{count} ประการ ทำให้ไม่สามารถบันทึก%{model}ได้"
- body: "โปรดตรวจสอบข้อมูลในช่องต่อไปนี้:"
-
- activerecord:
- errors:
- messages:
- <<: *errors_messages
- template:
- <<: *errors_template
-
- full_messages:
- format: "%{attribute} %{message}"
+++ /dev/null
-# Turkish translations for Ruby on Rails
-# by Ozgun Ataman (ozataman@gmail.com)
-
-tr:
- date:
- formats:
- default: "%d.%m.%Y"
- short: "%e %b"
- long: "%e %B %Y, %A"
- day_names:
- - Pazar
- - Pazartesi
- - Salı
- - Çarşamba
- - Perşembe
- - Cuma
- - Cumartesi
- abbr_day_names:
- - Pzr
- - Pzt
- - Sal
- - Çrş
- - Prş
- - Cum
- - Cts
- month_names:
- - ~
- - Ocak
- - Şubat
- - Mart
- - Nisan
- - Mayıs
- - Haziran
- - Temmuz
- - Ağustos
- - Eylül
- - Ekim
- - Kasım
- - Aralık
- abbr_month_names:
- - ~
- - Oca
- - Şub
- - Mar
- - Nis
- - May
- - Haz
- - Tem
- - Ağu
- - Eyl
- - Eki
- - Kas
- - Ara
- order:
- - :day
- - :month
- - :year
-
- time:
- formats:
- default: "%a %d.%b.%y %H:%M"
- short: "%e %B, %H:%M"
- long: "%e %B %Y, %A, %H:%M"
-
- am: "öğleden önce"
- pm: "öğleden sonra"
-
- datetime:
- distance_in_words:
- half_a_minute: 'yarım dakika'
- less_than_x_seconds:
- zero: '1 saniyeden az'
- one: '1 saniyeden az'
- other: '%{count} saniyeden az'
- x_seconds:
- one: '1 saniye'
- other: '%{count} saniye'
- less_than_x_minutes:
- zero: '1 dakikadan az'
- one: '1 dakikadan az'
- other: '%{count} dakikadan az'
- x_minutes:
- one: '1 dakika'
- other: '%{count} dakika'
- about_x_hours:
- one: 'yaklaşık 1 saat'
- other: 'yaklaşık %{count} saat'
- x_days:
- one: '1 gün'
- other: '%{count} gün'
- about_x_months:
- one: 'yaklaşık 1 ay'
- other: 'yaklaşık %{count} ay'
- x_months:
- one: '1 ay'
- other: '%{count} ay'
- about_x_years:
- one: 'yaklaşık 1 yıl'
- other: 'yaklaşık %{count} yıl'
- over_x_years:
- one: '1 yıldan fazla'
- other: '%{count} yıldan fazla'
- almost_x_years:
- one: "neredeyse 1 yıl"
- other: "neredeyse %{count} yıl"
-
- number:
- format:
- precision: 2
- separator: ','
- delimiter: '.'
- significant: false
- strip_insignificant_zeros: false
- currency:
- format:
- unit: 'TL'
- format: '%n %u'
- separator: ','
- delimiter: '.'
- precision: 2
- significant: false
- strip_insignificant_zeros: false
- percentage:
- format:
- delimiter: '.'
- precision:
- format:
- delimiter: '.'
- human:
- format:
- delimiter: '.'
- precision: 2
- significant: true
- strip_insignificant_zeros: true
- storage_units:
- format: "%n %u"
- decimal_units:
- format: "%n %u"
- units:
- unit: ""
-
- support:
- select:
- # default value for :prompt => true in FormOptionsHelper
- prompt: "Lütfen seçiniz"
- array:
- words_connector: ", "
- two_words_connector: " ve "
- last_word_connector: " ve "
-
- errors:
- format: "%{attribute} %{message}"
- messages: &errors_messages
- inclusion: "kabul edilen bir kelime değil"
- exclusion: "kullanılamaz"
- invalid: "geçersiz"
- confirmation: "teyidiyle uyuşmamakta"
- accepted: "kabul edilmeli"
- empty: "doldurulmalı"
- blank: "doldurulmalı"
- too_long: "çok uzun (en fazla %{count} karakter)"
- too_short: "çok kısa (en az %{count} karakter)"
- wrong_length: "yanlış uzunlukta (tam olarak %{count} karakter olmalı)"
- taken: "hali hazırda kullanılmakta"
- not_a_number: "geçerli bir sayı değil"
- greater_than: "%{count} sayısından büyük olmalı"
- greater_than_or_equal_to: "%{count} sayısına eşit veya büyük olmalı"
- equal_to: "tam olarak %{count} olmalı"
- less_than: "%{count} sayısından küçük olmalı"
- less_than_or_equal_to: "%{count} sayısına eşit veya küçük olmalı"
- odd: "tek olmalı"
- even: "çift olmalı"
- record_invalid: "Doğrulama başarısız oldu: %{errors}"
- template: &errors_template
- header:
- one: "%{model} girişi kaydedilemedi: 1 hata."
- other: "%{model} girişi kadedilemedi: %{count} hata."
- body: "Lütfen aşağıdaki hataları düzeltiniz:"
-
- activerecord:
- errors:
- messages:
- <<: *errors_messages
- template:
- <<: *errors_template
- full_messages:
- format: "%{attribute} %{message}"
\ No newline at end of file
+++ /dev/null
-# Ukrainian translations for Ruby on Rails
-# by Andrii Ponomarov (http://github.com/andrii)
-# improved (I hope) by Iwakura Taro
-# it is recomended to use russian rubygem to make i18n of your app
-
-uk:
- number:
- # Used in number_with_delimiter()
- # These are also the defaults for 'currency', 'percentage', 'precision', and 'human'
- format:
- # Sets the separator between the units, for more precision (e.g. 1.0 / 2.0 == 0.5)
- separator: ","
- # Delimets thousands (e.g. 1,000,000 is a million) (always in groups of three)
- delimiter: " "
- # Number of decimals, behind the separator (the number 1 with a precision of 2 gives: 1.00)
- precision: 3
- significant: false
- strip_insignificant_zeros: false
-
- # Used in number_to_currency()
- currency:
- format:
- # Where is the currency sign? %u is the currency unit, %n the number (default: $5.00)
- format: "%n %u"
- unit: "грн."
- # These three are to override number.format and are optional
- separator: ","
- delimiter: " "
- precision: 2
- significant: false
- strip_insignificant_zeros: false
-
- # Used in number_to_percentage()
- percentage:
- format:
- # These three are to override number.format and are optional
- # separator:
- delimiter: ""
- # precision:
-
- # Used in number_to_precision()
- precision:
- format:
- # These three are to override number.format and are optional
- # separator:
- delimiter: ""
- # precision:
-
- # Used in number_to_human_size()
- human:
- format:
- # These three are to override number.format and are optional
- # separator:
- delimiter: ""
- precision: 1
- significant: false
- strip_insignificant_zeros: false
-
- storage_units:
- # Storage units output formatting.
- # %u is the storage unit, %n is the number (default: 2 MB)
- format: "%n %u"
- units:
- byte:
- one: "байт"
- few: "байти"
- many: "байтів"
- other: "байту"
- kb: "кБ"
- mb: "МБ"
- gb: "ГБ"
- tb: "ТБ"
- # Rails 3
- decimal_units:
- format: "%n %u"
- units:
- unit: ""
- thousand:
- one: "Тисяча"
- few: "Тисяч"
- many: "Тисяч"
- other: "Тисяч"
- million:
- one: "Мільйон"
- few: "Мільйонів"
- many: "Мільйонів"
- other: "Мільйонів"
- billion:
- one: "Мільярд"
- few: "Мільярдів"
- many: "Мільярдів"
- other: "Мільярдів"
- trillion:
- one: "Трильйон"
- few: "Трильйонів"
- many: "Трильйонів"
- other: "Трильйонів"
- quadrillion:
- one: "Кквадрильйон"
- few: "Квадрильйонів"
- many: "Квадрильйонів"
- other: "Квадрильйонів"
-
- # Used in distance_of_time_in_words(), distance_of_time_in_words_to_now(), time_ago_in_words()
- datetime:
- distance_in_words:
- half_a_minute: "півхвилини"
- less_than_x_seconds:
- one: "менше %{count} секунди"
- few: "менше %{count} секунд"
- many: "менше %{count} секунд"
- other: "менше %{count} секунди"
- x_seconds:
- one: "%{count} секунда"
- few: "%{count} секунди"
- many: "%{count} секунд"
- other: "%{count} секунди"
- less_than_x_minutes:
- one: "менше %{count} хвилини"
- few: "менше %{count} хвилин"
- many: "менше %{count} хвилин"
- other: "менше %{count} хвилини"
- x_minutes:
- one: "%{count} хвилина"
- few: "%{count} хвилини"
- many: "%{count} хвилин"
- other: "%{count} хвилини"
- about_x_hours:
- one: "близько %{count} година"
- few: "близько %{count} години"
- many: "близько %{count} годин"
- other: "близько %{count} години"
- x_days:
- one: "%{count} день"
- few: "%{count} дні"
- many: "%{count} днів"
- other: "%{count} дня"
- about_x_months:
- one: "близько %{count} місяця"
- few: "близько %{count} місяців"
- many: "близько %{count} місяців"
- other: "близько %{count} місяця"
- x_months:
- one: "%{count} місяць"
- few: "%{count} місяці"
- many: "%{count} місяців"
- other: "%{count} місяця"
- about_x_years:
- one: "близько %{count} року"
- few: "близько %{count} років"
- many: "близько %{count} років"
- other: "близько %{count} року"
- over_x_years:
- one: "більше %{count} року"
- few: "більше %{count} років"
- many: "більше %{count} років"
- other: "більше %{count} року"
- almost_x_years:
- one: "майже %{count} роки"
- few: "майже %{count} років"
- many: "майже %{count} років"
- other: "майже %{count} років"
-
- prompts:
- year: "Рік"
- month: "Місяць"
- day: "День"
- hour: "Година"
- minute: "Хвилина"
- second: "Секунда"
-
- helpers:
- select:
- # Default value for :prompt => true in FormOptionsHelper
- prompt: "Оберіть: "
-
- # Default translation keys for submit FormHelper
- submit:
- create: 'Створити %{model}'
- update: 'Зберегти %{model}'
- submit: 'Зберегти %{model}'
-
-
- errors:
- format: "%{attribute} %{message}"
- # The values :model, :attribute and :value are always available for interpolation
- # The value :count is available when applicable. Can be used for pluralization.
- messages: &errors_messages
- inclusion: "не включено до переліку"
- exclusion: "зарезервовано"
- invalid: "недійсний"
- confirmation: "не збігається з підтвердженням"
- accepted: "має бути прийнятий"
- empty: "не може бути порожнім"
- blank: "не може бути пустим"
- too_long:
- one: "занадто довгий (максимум %{count} знак)"
- few: "занадто довгий (максимум %{count} знаки)"
- many: "занадто довгий (максимум %{count} знаків)"
- other: "занадто довгий (максимум %{count} знаку)"
- too_short:
- one: "занадто короткий (мінімум %{count} знак)"
- few: "занадто короткий (мінімум %{count} знаки)"
- many: "занадто короткий (мінімум %{count} знаків)"
- other: "занадто короткий (мінімум %{count} знаку)"
- wrong_length:
- one: "неправильна довжина (має бути %{count} знак)"
- few: "неправильна довжина (має бути %{count} знаки)"
- many: "неправильна довжина (має бути %{count} знаків)"
- other: "неправильна довжина (має бути %{count} знаку)"
- taken: "вже зайнятий"
- not_a_number: "не число"
- not_an_integer: "не э цілим числом"
- greater_than: "має бути більше ніж %{count}"
- greater_than_or_equal_to: "має бути більше ніж або дорівнювати %{count}"
- equal_to: "має дорівнювати %{count}"
- less_than: "має бути менше ніж %{count}"
- less_than_or_equal_to: "має бути менше ніж або дорівнювати %{count}"
- odd: "має бути непарним"
- even: "має бути парним"
- record_invalid: "Виникли помилки: %{errors}"
- template: &errors_template
- header:
- one: "%{model} не збережено через %{count} помилку"
- few: "%{model} не збережено через %{count} помилки"
- many: "%{model} не збережено через %{count} помилок"
- other: "%{model} не збережено через %{count} помилки"
- body: "Помилки виявлено в таких полях:"
-
- activerecord:
- errors:
- full_messages:
- format: "%{attribute} %{message}"
- messages:
- <<: *errors_messages
- template:
- <<: *errors_template
-
- date:
- formats:
- # Use the strftime parameters for formats.
- # When no format has been given, it uses default.
- # You can provide other formats here if you like!
- default: "%d.%m.%Y"
- short: "%d %b"
- long: "%d %B %Y"
-
- day_names:
- - неділя
- - понеділок
- - вівторок
- - середа
- - четвер
- - "п'ятниця"
- - субота
- abbr_day_names:
- - нд.
- - пн.
- - вт.
- - ср.
- - чт.
- - пт.
- - сб.
-
- # Don't forget the nil at the beginning; there's no such thing as a 0th month
- month_names:
- - ~
- - Січень
- - Лютий
- - Березень
- - Квітень
- - Травень
- - Червень
- - Липень
- - Серпень
- - Вересень
- - Жовтень
- - Листопад
- - Грудень
- abbr_month_names:
- - ~
- - січ.
- - лют.
- - бер.
- - квіт.
- - трав.
- - черв.
- - лип.
- - серп.
- - вер.
- - жовт.
- - лист.
- - груд.
- # Used in date_select and datime_select.
- order:
- - :day
- - :month
- - :year
-
- time:
- formats:
- default: "%a, %d %b %Y, %H:%M:%S %z"
- short: "%d %b, %H:%M"
- long: "%d %B %Y, %H:%M"
- am: "до полудня"
- pm: "по полудні"
-
- # Used in array.to_sentence.
- support:
- select:
- prompt: "Оберіть:"
- array:
- words_connector: ", "
- two_words_connector: " і "
- last_word_connector: " та "
-
+++ /dev/null
-# Vietnamese translation for Ruby on Rails
-# by
-# Do Hai Bac (dohaibac@gmail.com)
-# Dao Thanh Ngoc (ngocdaothanh@gmail.com, http://github.com/ngocdaothanh/rails-i18n/tree/master)
-
-vi:
- number:
- # Used in number_with_delimiter()
- # These are also the defaults for 'currency', 'percentage', 'precision', and 'human'
- format:
- # Sets the separator between the units, for more precision (e.g. 1.0 / 2.0 == 0.5)
- separator: ","
- # Delimets thousands (e.g. 1,000,000 is a million) (always in groups of three)
- delimiter: "."
- # Number of decimals, behind the separator (1 with a precision of 2 gives: 1.00)
- precision: 3
- significant: false
- strip_insignificant_zeros: false
-
- # Used in number_to_currency()
- currency:
- format:
- # Where is the currency sign? %u is the currency unit, %n the number (default: $5.00)
- format: "%n %u"
- unit: "đồng"
- # These three are to override number.format and are optional
- separator: ","
- delimiter: "."
- precision: 2
- significant: false
- strip_insignificant_zeros: false
-
- # Used in number_to_percentage()
- percentage:
- format:
- # These three are to override number.format and are optional
- # separator:
- delimiter: ""
- # precision:
-
- # Used in number_to_precision()
- precision:
- format:
- # These three are to override number.format and are optional
- # separator:
- delimiter: ""
- # precision:
-
- # Used in number_to_human_size()
- human:
- format:
- # These three are to override number.format and are optional
- # separator:
- delimiter: ""
- precision: 1
- significant: true
- strip_insignificant_zeros: true
- storage_units:
- # Storage units output formatting.
- # %u is the storage unit, %n is the number (default: 2 MB)
- format: "%n %u"
- units:
- byte:
- one: "Byte"
- other: "Byte"
- kb: "KB"
- mb: "MB"
- gb: "GB"
- tb: "TB"
- decimal_units:
- format: "%n %u"
- units:
- unit: ""
-
- # Used in distance_of_time_in_words(), distance_of_time_in_words_to_now(), time_ago_in_words()
- datetime:
- distance_in_words:
- half_a_minute: "30 giây"
- less_than_x_seconds:
- one: "chưa tới 1 giây"
- other: "chưa tới %{count} giây"
- x_seconds:
- one: "1 giây"
- other: "%{count} giây"
- less_than_x_minutes:
- one: "chưa tới 1 phút"
- other: "chưa tới %{count} phút"
- x_minutes:
- one: "1 phút"
- other: "%{count} phút"
- about_x_hours:
- one: "khoảng 1 giờ"
- other: "khoảng %{count} giờ"
- x_days:
- one: "1 ngày"
- other: "%{count} ngày"
- about_x_months:
- one: "khoảng 1 tháng"
- other: "khoảng %{count} tháng"
- x_months:
- one: "1 tháng"
- other: "%{count} tháng"
- about_x_years:
- one: "khoảng 1 năm"
- other: "khoảng %{count} năm"
- over_x_years:
- one: "hơn 1 năm"
- other: "hơn %{count} năm"
- prompts:
- year: "Năm"
- month: "Tháng"
- day: "Ngày"
- hour: "Giờ"
- minute: "Phút"
- second: "Giây"
-
- errors:
- format: "%{attribute} %{message}"
- messages: &errors_messages
- inclusion: "không có trong danh sách"
- exclusion: "đã được giành trước"
- invalid: "không hợp lệ"
- confirmation: "không khớp với xác nhận"
- accepted: "phải được đồng ý"
- empty: "không thể rỗng"
- blank: "không thể để trắng"
- too_long: "quá dài (tối đa %{count} ký tự)"
- too_short: "quá ngắn (tối thiểu %{count} ký tự)"
- wrong_length: "độ dài không đúng (phải là %{count} ký tự)"
- taken: "đã có"
- not_a_number: "không phải là số"
- greater_than: "phải lớn hơn %{count}"
- greater_than_or_equal_to: "phải lớn hơn hoặc bằng %{count}"
- equal_to: "phải bằng %{count}"
- less_than: "phải nhỏ hơn %{count}"
- less_than_or_equal_to: "phải nhỏ hơn hoặc bằng %{count}"
- odd: "phải là số chẵn"
- even: "phải là số lẻ"
- template: &errors_template
- header:
- one: "1 lỗi ngăn không cho lưu %{model} này"
- other: "%{count} lỗi ngăn không cho lưu %{model} này"
- body: "Có lỗi với các mục sau:"
-
- activerecord:
- errors:
- messages:
- <<: *errors_messages
- template:
- <<: *errors_template
- full_messages:
- format: "%{attribute} %{message}"
-
- date:
- formats:
- # Use the strftime parameters for formats.
- # When no format has been given, it uses default.
- # You can provide other formats here if you like!
- default: "%d-%m-%Y"
- short: "%d %b"
- long: "%d %B, %Y"
-
- day_names:
- - "Chủ nhật"
- - "Thứ hai"
- - "Thứ ba"
- - "Thứ tư"
- - "Thứ năm"
- - "Thứ sáu"
- - "Thứ bảy"
- abbr_day_names:
- - "Chủ nhật"
- - "Thứ hai"
- - "Thứ ba"
- - "Thứ tư"
- - "Thứ năm"
- - "Thứ sáu"
- - "Thứ bảy"
-
- # Don't forget the nil at the beginning; there's no such thing as a 0th month
- month_names:
- - ~
- - "Tháng một"
- - "Tháng hai"
- - "Tháng ba"
- - "Tháng tư"
- - "Tháng năm"
- - "Tháng sáu"
- - "Tháng bảy"
- - "Tháng tám"
- - "Tháng chín"
- - "Tháng mười"
- - "Tháng mười một"
- - "Tháng mười hai"
- abbr_month_names:
- - ~
- - "Tháng một"
- - "Tháng hai"
- - "Tháng ba"
- - "Tháng tư"
- - "Tháng năm"
- - "Tháng sáu"
- - "Tháng bảy"
- - "Tháng tám"
- - "Tháng chín"
- - "Tháng mười"
- - "Tháng mười một"
- - "Tháng mười hai"
- # Used in date_select and datime_select.
- order:
- - :day
- - :month
- - :year
-
- time:
- formats:
- default: "%a, %d %b %Y %H:%M:%S %z"
- short: "%d %b %H:%M"
- long: "%d %B, %Y %H:%M"
- am: "sáng"
- pm: "chiều"
-
- # Used in array.to_sentence.
- support:
- array:
- words_connector: ", "
- two_words_connector: " và "
- last_word_connector: ", và "
+++ /dev/null
-# Chinese (China) translations for Ruby on Rails
-# by tsechingho (http://github.com/tsechingho)
-
-zh-CN:
- date:
- formats:
- default: "%Y-%m-%d"
- short: "%b%d日"
- long: "%Y年%b%d日"
- day_names:
- - 星期日
- - 星期一
- - 星期二
- - 星期三
- - 星期四
- - 星期五
- - 星期六
- abbr_day_names:
- - 日
- - 一
- - 二
- - 三
- - 四
- - 五
- - 六
- month_names:
- - ~
- - 一月
- - 二月
- - 三月
- - 四月
- - 五月
- - 六月
- - 七月
- - 八月
- - 九月
- - 十月
- - 十一月
- - 十二月
- abbr_month_names:
- - ~
- - 1月
- - 2月
- - 3月
- - 4月
- - 5月
- - 6月
- - 7月
- - 8月
- - 9月
- - 10月
- - 11月
- - 12月
- order:
- - :year
- - :month
- - :day
-
- time:
- formats:
- default: "%Y年%b%d日 %A %H:%M:%S %Z"
- short: "%b%d日 %H:%M"
- long: "%Y年%b%d日 %H:%M"
- am: "上午"
- pm: "下午"
-
- datetime:
- distance_in_words:
- half_a_minute: "半分钟"
- less_than_x_seconds:
- one: "不到一秒"
- other: "不到 %{count} 秒"
- x_seconds:
- one: "一秒"
- other: "%{count} 秒"
- less_than_x_minutes:
- one: "不到一分钟"
- other: "不到 %{count} 分钟"
- x_minutes:
- one: "一分钟"
- other: "%{count} 分钟"
- about_x_hours:
- one: "大约一小时"
- other: "大约 %{count} 小时"
- x_days:
- one: "一天"
- other: "%{count} 天"
- about_x_months:
- one: "大约一个月"
- other: "大约 %{count} 个月"
- x_months:
- one: "一个月"
- other: "%{count} 个月"
- about_x_years:
- one: "大约一年"
- other: "大约 %{count} 年"
- over_x_years:
- one: "一年多"
- other: "%{count} 年多"
- almost_x_years:
- one: "接近一年"
- other: "接近 %{count} 年"
- prompts:
- year: "年"
- month: "月"
- day: "日"
- hour: "时"
- minute: "分"
- second: "秒"
-
- number:
- format:
- separator: "."
- delimiter: ","
- precision: 3
- significant: false
- strip_insignificant_zeros: false
- currency:
- format:
- format: "%u %n"
- unit: "CN¥"
- separator: "."
- delimiter: ","
- precision: 2
- significant: false
- strip_insignificant_zeros: false
- percentage:
- format:
- delimiter: ""
- precision:
- format:
- delimiter: ""
- human:
- format:
- delimiter: ""
- precision: 1
- significant: false
- strip_insignificant_zeros: false
- storage_units:
- format: "%n %u"
- units:
- byte:
- one: "Byte"
- other: "Bytes"
- kb: "KB"
- mb: "MB"
- gb: "GB"
- tb: "TB"
- decimal_units:
- format: "%n %u"
- units:
- unit: ""
- thousand: "千" # 10^3 kilo
- million: "百万" # 10^6 mega
- billion: "十亿" # 10^9 giga
- trillion: "兆" # 10^12 tera
- quadrillion: "千兆" # 10^15 peta
- # 10^18 exa, 10^21 zetta, 10^24 yotta
-
- support:
- array:
- words_connector: ", "
- two_words_connector: " 和 "
- last_word_connector: ", 和 "
- select:
- prompt: "请选择"
-
- errors:
- format: "%{attribute} %{message}"
- messages: &errors_messages
- inclusion: "不包含于列表中"
- exclusion: "是保留关键字"
- invalid: "是无效的"
- confirmation: "与确认值不匹配"
- accepted: "必须是可被接受的"
- empty: "不能留空"
- blank: "不能为空字符"
- too_long: "过长(最长为 %{count} 个字符)"
- too_short: "过短(最短为 %{count} 个字符)"
- wrong_length: "长度非法(必须为 %{count} 个字符)"
- not_a_number: "不是数字"
- not_an_integer: "必须是整数"
- greater_than: "必须大于 %{count}"
- greater_than_or_equal_to: "必须大于或等于 %{count}"
- equal_to: "必须等于 %{count}"
- less_than: "必须小于 %{count}"
- less_than_or_equal_to: "必须小于或等于 %{count}"
- odd: "必须为单数"
- even: "必须为双数"
- taken: "已经被使用"
- record_invalid: "验证失败: %{errors}"
- template: &errors_template
- header:
- one: "有 1 个错误发生导致「%{model}」无法被保存。"
- other: "有 %{count} 个错误发生导致「%{model}」无法被保存。"
- body: "如下字段出现错误:"
-
- activerecord:
- errors:
- full_messages:
- format: "%{attribute} %{message}"
- messages:
- <<: *errors_messages
- template:
- <<: *errors_template
-
- helpers:
- select:
- prompt: "请选择"
- submit:
- create: "新增%{model}"
- update: "更新%{model}"
- submit: "储存%{model}"
+++ /dev/null
-
-# Chinese (Taiwan) translations for Ruby on Rails
-# by tsechingho (http://github.com/tsechingho)
-
-zh-TW:
- date:
- formats:
- default: "%Y-%m-%d"
- short: "%b%d日"
- long: "%Y年%b%d日"
- day_names:
- - 星期日
- - 星期一
- - 星期二
- - 星期三
- - 星期四
- - 星期五
- - 星期六
- abbr_day_names:
- - 日
- - 一
- - 二
- - 三
- - 四
- - 五
- - 六
- month_names:
- - ~
- - 一月
- - 二月
- - 三月
- - 四月
- - 五月
- - 六月
- - 七月
- - 八月
- - 九月
- - 十月
- - 十一月
- - 十二月
- abbr_month_names:
- - ~
- - 1月
- - 2月
- - 3月
- - 4月
- - 5月
- - 6月
- - 7月
- - 8月
- - 9月
- - 10月
- - 11月
- - 12月
- order:
- - :year
- - :month
- - :day
-
- time:
- formats:
- default: "%Y年%b%d日 %A %H:%M:%S %Z"
- short: "%b%d日 %H:%M"
- long: "%Y年%b%d日 %H:%M"
- am: "上午"
- pm: "下午"
-
- datetime:
- distance_in_words:
- half_a_minute: "半分鐘"
- less_than_x_seconds:
- one: "不到一秒"
- other: "不到 %{count} 秒"
- x_seconds:
- one: "一秒"
- other: "%{count} 秒"
- less_than_x_minutes:
- one: "不到一分鐘"
- other: "不到 %{count} 分鐘"
- x_minutes:
- one: "一分鐘"
- other: "%{count} 分鐘"
- about_x_hours:
- one: "大約一小時"
- other: "大約 %{count} 小時"
- x_days:
- one: "一天"
- other: "%{count} 天"
- about_x_months:
- one: "大約一個月"
- other: "大約 %{count} 個月"
- x_months:
- one: "一個月"
- other: "%{count} 個月"
- about_x_years:
- one: "大約一年"
- other: "大約 %{count} 年"
- over_x_years:
- one: "一年多"
- other: "%{count} 年多"
- almost_x_years:
- one: "接近一年"
- other: "接近 %{count} 年"
- prompts:
- year: "年"
- month: "月"
- day: "日"
- hour: "時"
- minute: "分"
- second: "秒"
-
- number:
- format:
- separator: "."
- delimiter: ","
- precision: 3
- significant: false
- strip_insignificant_zeros: false
- currency:
- format:
- format: "%u %n"
- unit: "NT$"
- separator: "."
- delimiter: ","
- precision: 2
- significant: false
- strip_insignificant_zeros: false
- percentage:
- format:
- delimiter: ""
- precision:
- format:
- delimiter: ""
- human:
- format:
- delimiter: ""
- precision: 1
- significant: false
- strip_insignificant_zeros: false
- storage_units:
- format: "%n %u"
- units:
- byte:
- one: "Byte"
- other: "Bytes"
- kb: "KB"
- mb: "MB"
- gb: "GB"
- tb: "TB"
- decimal_units:
- format: "%n %u"
- units:
- unit: ""
- thousand: "千" # 10^3 kilo
- million: "百萬" # 10^6 mega
- billion: "十億" # 10^9 giga
- trillion: "兆" # 10^12 tera
- quadrillion: "千兆" # 10^15 peta
- # 10^18 exa, 10^21 zetta, 10^24 yotta
-
- support:
- array:
- words_connector: ", "
- two_words_connector: " 和 "
- last_word_connector: ", 和 "
- select:
- prompt: "請選擇"
-
- errors:
- format: "%{attribute} %{message}"
- messages: &errors_messages
- inclusion: "沒有包含在列表中"
- exclusion: "是被保留的關鍵字"
- invalid: "是無效的"
- confirmation: "不符合確認值"
- accepted: "必須是可被接受的"
- empty: "不能留空"
- blank: "不能是空白字元"
- too_long: "過長(最長是 %{count} 個字)"
- too_short: "過短(最短是 %{count} 個字)"
- wrong_length: "字數錯誤(必須是 %{count} 個字)"
- not_a_number: "不是數字"
- not_an_integer: "必須是整數"
- greater_than: "必須大於 %{count}"
- greater_than_or_equal_to: "必須大於或等於 %{count}"
- equal_to: "必須等於 %{count}"
- less_than: "必須小於 %{count}"
- less_than_or_equal_to: "必須小於或等於 %{count}"
- odd: "必須是奇數"
- even: "必須是偶數"
- taken: "已經被使用"
- record_invalid: "校驗失敗: %{errors}"
- template: &errors_template
- header:
- one: "有 1 個錯誤發生使得「%{model}」無法被儲存。"
- other: "有 %{count} 個錯誤發生使得「%{model}」無法被儲存。"
- body: "以下欄位發生問題:"
-
- activerecord:
- errors:
- messages:
- <<: *errors_messages
- template:
- <<: *errors_template
- full_messages:
- format: "%{attribute} %{message}"
-
- helpers:
- select:
- prompt: "請選擇"
- submit:
- create: "新增%{model}"
- update: "更新%{model}"
- submit: "儲存%{model}"