r101319 MediaWiki - Code Review archive

Repository:MediaWiki
Revision:r101318‎ | r101319 | r101320 >
Date:22:21, 30 October 2011
Author:foxtrott
Status:deferred
Tags:
Comment:
release version 0.1
Modified paths:
  • /tags/extensions/SemanticGlossary/REL_0_1 (added) (history)

Diff [purge]

Index: tags/extensions/SemanticGlossary/REL_0_1/SemanticGlossaryBackend.php
@@ -0,0 +1,99 @@
 2+<?php
 3+
 4+/**
 5+ * File holding the SemanticGlossaryBackend class
 6+ *
 7+ * @author Stephan Gambke
 8+ * @file
 9+ * @ingroup SemanticGlossary
 10+ */
 11+if ( !defined( 'SG_VERSION' ) ) {
 12+ die( 'This file is part of the SemanticGlossary extension, it is not a valid entry point.' );
 13+}
 14+
 15+/**
 16+ * The SemanticGlossaryBackend class.
 17+ *
 18+ * @ingroup SemanticGlossary
 19+ */
 20+class SemanticGlossaryBackend extends LingoBackend {
 21+
 22+ protected $mQueryResult;
 23+
 24+ public function __construct( LingoMessageLog &$messages = null ) {
 25+
 26+ parent::__construct( $messages );
 27+
 28+ // get the store
 29+ $store = smwfGetStore();
 30+
 31+ // Create query
 32+ $desc = new SMWSomeProperty( new SMWDIProperty( '___glt' ), new SMWThingDescription() );
 33+ $desc->addPrintRequest( new SMWPrintRequest( SMWPrintRequest::PRINT_PROP, null, SMWPropertyValue::makeProperty( '___glt' ) ) );
 34+ $desc->addPrintRequest( new SMWPrintRequest( SMWPrintRequest::PRINT_PROP, null, SMWPropertyValue::makeProperty( '___gld' ) ) );
 35+ $desc->addPrintRequest( new SMWPrintRequest( SMWPrintRequest::PRINT_PROP, null, SMWPropertyValue::makeProperty( '___gll' ) ) );
 36+
 37+ $query = new SMWQuery( $desc, false, false );
 38+ $query->sort = true;
 39+ $query->sortkeys['___glt'] = 'ASC';
 40+
 41+ // get the query result
 42+ $this->mQueryResult = $store->getQueryResult( $query );
 43+ }
 44+
 45+ /**
 46+ * This function returns the next element. The element is an array of four
 47+ * strings: Term, Definition, Link, Source. If there is no next element the
 48+ * function returns null.
 49+ *
 50+ * @return the next element or null
 51+ */
 52+ public function next() {
 53+
 54+ $ret = null;
 55+
 56+ // find next line
 57+ while ( !$ret && ( $resultline = $this->mQueryResult->getNext() ) ) {
 58+
 59+ $term = $resultline[0]->getNextText( SMW_OUTPUT_WIKI );
 60+ $definition = $resultline[1]->getNextText( SMW_OUTPUT_WIKI );
 61+ $link = $resultline[2]->getNextText( SMW_OUTPUT_WIKI );
 62+
 63+ // FIXME: By not checking for 2nd term defined on the same page some
 64+ // time could be saved. However, no message could then be generated.
 65+ // Introduce a setting?
 66+ $nextTerm = $resultline[0]->getNextText( SMW_OUTPUT_WIKI );
 67+ $nextDefinition = $resultline[1]->getNextText( SMW_OUTPUT_WIKI );
 68+ $nextLink = $resultline[2]->getNextText( SMW_OUTPUT_WIKI );
 69+
 70+
 71+ // FIXME: SMW has a bug that right after storing data this data
 72+ // might be available twice. The workaround here is to compare the
 73+ // first and second result and if they are identical assume that
 74+ // it is because of the bug. (2nd condition in the if below)
 75+ // skip if more then one term or more than one definition present
 76+ if ( ( $nextTerm || $nextDefinition || $nextLink ) &&
 77+ !( $nextTerm == $term && $nextDefinition == $definition && $nextLink == $link ) ) {
 78+
 79+ if ( $ml = $this->getMessageLog() ) {
 80+ $ml->addMessage(
 81+ wfMsg( 'semanticglossary-termdefinedtwice',
 82+ array($resultline[0]->getResultSubject()->getTitle()->getPrefixedText()) ),
 83+ LingoMessageLog::MESSAGE_WARNING );
 84+ }
 85+
 86+ continue;
 87+ }
 88+
 89+ $ret = array(
 90+ LingoElement::ELEMENT_TERM => $term,
 91+ LingoElement::ELEMENT_DEFINITION => $definition,
 92+ LingoElement::ELEMENT_LINK => $link,
 93+ LingoElement::ELEMENT_SOURCE => $resultline[0]->getResultSubject()
 94+ );
 95+ }
 96+
 97+ return $ret;
 98+ }
 99+
 100+}
Property changes on: tags/extensions/SemanticGlossary/REL_0_1/SemanticGlossaryBackend.php
___________________________________________________________________
Added: svn:eol-style
1101 + native
Index: tags/extensions/SemanticGlossary/REL_0_1/COPYING
@@ -0,0 +1,350 @@
 2+The license text below "----" applies to all files within this distribution,
 3+other than those that are in a directory which contains files named "LICENSE"
 4+or "COPYING", or a subdirectory thereof. For those files, the license text
 5+contained in said file overrides any license information contained in
 6+directories of smaller depth. Alternative licenses are typically used for
 7+software that is provided by external parties, and merely packaged with this
 8+software for convenience.
 9+
 10+----
 11+
 12+ GNU GENERAL PUBLIC LICENSE
 13+ Version 2, June 1991
 14+
 15+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.
 16+ 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
 17+ Everyone is permitted to copy and distribute verbatim copies
 18+ of this license document, but changing it is not allowed.
 19+
 20+ Preamble
 21+
 22+ The licenses for most software are designed to take away your
 23+freedom to share and change it. By contrast, the GNU General Public
 24+License is intended to guarantee your freedom to share and change free
 25+software--to make sure the software is free for all its users. This
 26+General Public License applies to most of the Free Software
 27+Foundation's software and to any other program whose authors commit to
 28+using it. (Some other Free Software Foundation software is covered by
 29+the GNU Library General Public License instead.) You can apply it to
 30+your programs, too.
 31+
 32+ When we speak of free software, we are referring to freedom, not
 33+price. Our General Public Licenses are designed to make sure that you
 34+have the freedom to distribute copies of free software (and charge for
 35+this service if you wish), that you receive source code or can get it
 36+if you want it, that you can change the software or use pieces of it
 37+in new free programs; and that you know you can do these things.
 38+
 39+ To protect your rights, we need to make restrictions that forbid
 40+anyone to deny you these rights or to ask you to surrender the rights.
 41+These restrictions translate to certain responsibilities for you if you
 42+distribute copies of the software, or if you modify it.
 43+
 44+ For example, if you distribute copies of such a program, whether
 45+gratis or for a fee, you must give the recipients all the rights that
 46+you have. You must make sure that they, too, receive or can get the
 47+source code. And you must show them these terms so they know their
 48+rights.
 49+
 50+ We protect your rights with two steps: (1) copyright the software, and
 51+(2) offer you this license which gives you legal permission to copy,
 52+distribute and/or modify the software.
 53+
 54+ Also, for each author's protection and ours, we want to make certain
 55+that everyone understands that there is no warranty for this free
 56+software. If the software is modified by someone else and passed on, we
 57+want its recipients to know that what they have is not the original, so
 58+that any problems introduced by others will not reflect on the original
 59+authors' reputations.
 60+
 61+ Finally, any free program is threatened constantly by software
 62+patents. We wish to avoid the danger that redistributors of a free
 63+program will individually obtain patent licenses, in effect making the
 64+program proprietary. To prevent this, we have made it clear that any
 65+patent must be licensed for everyone's free use or not licensed at all.
 66+
 67+ The precise terms and conditions for copying, distribution and
 68+modification follow.
 69+
 70+ GNU GENERAL PUBLIC LICENSE
 71+ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
 72+
 73+ 0. This License applies to any program or other work which contains
 74+a notice placed by the copyright holder saying it may be distributed
 75+under the terms of this General Public License. The "Program", below,
 76+refers to any such program or work, and a "work based on the Program"
 77+means either the Program or any derivative work under copyright law:
 78+that is to say, a work containing the Program or a portion of it,
 79+either verbatim or with modifications and/or translated into another
 80+language. (Hereinafter, translation is included without limitation in
 81+the term "modification".) Each licensee is addressed as "you".
 82+
 83+Activities other than copying, distribution and modification are not
 84+covered by this License; they are outside its scope. The act of
 85+running the Program is not restricted, and the output from the Program
 86+is covered only if its contents constitute a work based on the
 87+Program (independent of having been made by running the Program).
 88+Whether that is true depends on what the Program does.
 89+
 90+ 1. You may copy and distribute verbatim copies of the Program's
 91+source code as you receive it, in any medium, provided that you
 92+conspicuously and appropriately publish on each copy an appropriate
 93+copyright notice and disclaimer of warranty; keep intact all the
 94+notices that refer to this License and to the absence of any warranty;
 95+and give any other recipients of the Program a copy of this License
 96+along with the Program.
 97+
 98+You may charge a fee for the physical act of transferring a copy, and
 99+you may at your option offer warranty protection in exchange for a fee.
 100+
 101+ 2. You may modify your copy or copies of the Program or any portion
 102+of it, thus forming a work based on the Program, and copy and
 103+distribute such modifications or work under the terms of Section 1
 104+above, provided that you also meet all of these conditions:
 105+
 106+ a) You must cause the modified files to carry prominent notices
 107+ stating that you changed the files and the date of any change.
 108+
 109+ b) You must cause any work that you distribute or publish, that in
 110+ whole or in part contains or is derived from the Program or any
 111+ part thereof, to be licensed as a whole at no charge to all third
 112+ parties under the terms of this License.
 113+
 114+ c) If the modified program normally reads commands interactively
 115+ when run, you must cause it, when started running for such
 116+ interactive use in the most ordinary way, to print or display an
 117+ announcement including an appropriate copyright notice and a
 118+ notice that there is no warranty (or else, saying that you provide
 119+ a warranty) and that users may redistribute the program under
 120+ these conditions, and telling the user how to view a copy of this
 121+ License. (Exception: if the Program itself is interactive but
 122+ does not normally print such an announcement, your work based on
 123+ the Program is not required to print an announcement.)
 124+
 125+These requirements apply to the modified work as a whole. If
 126+identifiable sections of that work are not derived from the Program,
 127+and can be reasonably considered independent and separate works in
 128+themselves, then this License, and its terms, do not apply to those
 129+sections when you distribute them as separate works. But when you
 130+distribute the same sections as part of a whole which is a work based
 131+on the Program, the distribution of the whole must be on the terms of
 132+this License, whose permissions for other licensees extend to the
 133+entire whole, and thus to each and every part regardless of who wrote it.
 134+
 135+Thus, it is not the intent of this section to claim rights or contest
 136+your rights to work written entirely by you; rather, the intent is to
 137+exercise the right to control the distribution of derivative or
 138+collective works based on the Program.
 139+
 140+In addition, mere aggregation of another work not based on the Program
 141+with the Program (or with a work based on the Program) on a volume of
 142+a storage or distribution medium does not bring the other work under
 143+the scope of this License.
 144+
 145+ 3. You may copy and distribute the Program (or a work based on it,
 146+under Section 2) in object code or executable form under the terms of
 147+Sections 1 and 2 above provided that you also do one of the following:
 148+
 149+ a) Accompany it with the complete corresponding machine-readable
 150+ source code, which must be distributed under the terms of Sections
 151+ 1 and 2 above on a medium customarily used for software interchange; or,
 152+
 153+ b) Accompany it with a written offer, valid for at least three
 154+ years, to give any third party, for a charge no more than your
 155+ cost of physically performing source distribution, a complete
 156+ machine-readable copy of the corresponding source code, to be
 157+ distributed under the terms of Sections 1 and 2 above on a medium
 158+ customarily used for software interchange; or,
 159+
 160+ c) Accompany it with the information you received as to the offer
 161+ to distribute corresponding source code. (This alternative is
 162+ allowed only for noncommercial distribution and only if you
 163+ received the program in object code or executable form with such
 164+ an offer, in accord with Subsection b above.)
 165+
 166+The source code for a work means the preferred form of the work for
 167+making modifications to it. For an executable work, complete source
 168+code means all the source code for all modules it contains, plus any
 169+associated interface definition files, plus the scripts used to
 170+control compilation and installation of the executable. However, as a
 171+special exception, the source code distributed need not include
 172+anything that is normally distributed (in either source or binary
 173+form) with the major components (compiler, kernel, and so on) of the
 174+operating system on which the executable runs, unless that component
 175+itself accompanies the executable.
 176+
 177+If distribution of executable or object code is made by offering
 178+access to copy from a designated place, then offering equivalent
 179+access to copy the source code from the same place counts as
 180+distribution of the source code, even though third parties are not
 181+compelled to copy the source along with the object code.
 182+
 183+ 4. You may not copy, modify, sublicense, or distribute the Program
 184+except as expressly provided under this License. Any attempt
 185+otherwise to copy, modify, sublicense or distribute the Program is
 186+void, and will automatically terminate your rights under this License.
 187+However, parties who have received copies, or rights, from you under
 188+this License will not have their licenses terminated so long as such
 189+parties remain in full compliance.
 190+
 191+ 5. You are not required to accept this License, since you have not
 192+signed it. However, nothing else grants you permission to modify or
 193+distribute the Program or its derivative works. These actions are
 194+prohibited by law if you do not accept this License. Therefore, by
 195+modifying or distributing the Program (or any work based on the
 196+Program), you indicate your acceptance of this License to do so, and
 197+all its terms and conditions for copying, distributing or modifying
 198+the Program or works based on it.
 199+
 200+ 6. Each time you redistribute the Program (or any work based on the
 201+Program), the recipient automatically receives a license from the
 202+original licensor to copy, distribute or modify the Program subject to
 203+these terms and conditions. You may not impose any further
 204+restrictions on the recipients' exercise of the rights granted herein.
 205+You are not responsible for enforcing compliance by third parties to
 206+this License.
 207+
 208+ 7. If, as a consequence of a court judgment or allegation of patent
 209+infringement or for any other reason (not limited to patent issues),
 210+conditions are imposed on you (whether by court order, agreement or
 211+otherwise) that contradict the conditions of this License, they do not
 212+excuse you from the conditions of this License. If you cannot
 213+distribute so as to satisfy simultaneously your obligations under this
 214+License and any other pertinent obligations, then as a consequence you
 215+may not distribute the Program at all. For example, if a patent
 216+license would not permit royalty-free redistribution of the Program by
 217+all those who receive copies directly or indirectly through you, then
 218+the only way you could satisfy both it and this License would be to
 219+refrain entirely from distribution of the Program.
 220+
 221+If any portion of this section is held invalid or unenforceable under
 222+any particular circumstance, the balance of the section is intended to
 223+apply and the section as a whole is intended to apply in other
 224+circumstances.
 225+
 226+It is not the purpose of this section to induce you to infringe any
 227+patents or other property right claims or to contest validity of any
 228+such claims; this section has the sole purpose of protecting the
 229+integrity of the free software distribution system, which is
 230+implemented by public license practices. Many people have made
 231+generous contributions to the wide range of software distributed
 232+through that system in reliance on consistent application of that
 233+system; it is up to the author/donor to decide if he or she is willing
 234+to distribute software through any other system and a licensee cannot
 235+impose that choice.
 236+
 237+This section is intended to make thoroughly clear what is believed to
 238+be a consequence of the rest of this License.
 239+
 240+ 8. If the distribution and/or use of the Program is restricted in
 241+certain countries either by patents or by copyrighted interfaces, the
 242+original copyright holder who places the Program under this License
 243+may add an explicit geographical distribution limitation excluding
 244+those countries, so that distribution is permitted only in or among
 245+countries not thus excluded. In such case, this License incorporates
 246+the limitation as if written in the body of this License.
 247+
 248+ 9. The Free Software Foundation may publish revised and/or new versions
 249+of the General Public License from time to time. Such new versions will
 250+be similar in spirit to the present version, but may differ in detail to
 251+address new problems or concerns.
 252+
 253+Each version is given a distinguishing version number. If the Program
 254+specifies a version number of this License which applies to it and "any
 255+later version", you have the option of following the terms and conditions
 256+either of that version or of any later version published by the Free
 257+Software Foundation. If the Program does not specify a version number of
 258+this License, you may choose any version ever published by the Free Software
 259+Foundation.
 260+
 261+ 10. If you wish to incorporate parts of the Program into other free
 262+programs whose distribution conditions are different, write to the author
 263+to ask for permission. For software which is copyrighted by the Free
 264+Software Foundation, write to the Free Software Foundation; we sometimes
 265+make exceptions for this. Our decision will be guided by the two goals
 266+of preserving the free status of all derivatives of our free software and
 267+of promoting the sharing and reuse of software generally.
 268+
 269+ NO WARRANTY
 270+
 271+ 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
 272+FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
 273+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
 274+PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
 275+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
 276+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
 277+TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
 278+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
 279+REPAIR OR CORRECTION.
 280+
 281+ 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
 282+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
 283+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
 284+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
 285+OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
 286+TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
 287+YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
 288+PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
 289+POSSIBILITY OF SUCH DAMAGES.
 290+
 291+ END OF TERMS AND CONDITIONS
 292+
 293+ How to Apply These Terms to Your New Programs
 294+
 295+ If you develop a new program, and you want it to be of the greatest
 296+possible use to the public, the best way to achieve this is to make it
 297+free software which everyone can redistribute and change under these terms.
 298+
 299+ To do so, attach the following notices to the program. It is safest
 300+to attach them to the start of each source file to most effectively
 301+convey the exclusion of warranty; and each file should have at least
 302+the "copyright" line and a pointer to where the full notice is found.
 303+
 304+ <one line to give the program's name and a brief idea of what it does.>
 305+ Copyright (C) <year> <name of author>
 306+
 307+ This program is free software; you can redistribute it and/or modify
 308+ it under the terms of the GNU General Public License as published by
 309+ the Free Software Foundation; either version 2 of the License, or
 310+ (at your option) any later version.
 311+
 312+ This program is distributed in the hope that it will be useful,
 313+ but WITHOUT ANY WARRANTY; without even the implied warranty of
 314+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
 315+ GNU General Public License for more details.
 316+
 317+ You should have received a copy of the GNU General Public License
 318+ along with this program; if not, write to the Free Software
 319+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
 320+
 321+
 322+Also add information on how to contact you by electronic and paper mail.
 323+
 324+If the program is interactive, make it output a short notice like this
 325+when it starts in an interactive mode:
 326+
 327+ Gnomovision version 69, Copyright (C) year name of author
 328+ Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
 329+ This is free software, and you are welcome to redistribute it
 330+ under certain conditions; type `show c' for details.
 331+
 332+The hypothetical commands `show w' and `show c' should show the appropriate
 333+parts of the General Public License. Of course, the commands you use may
 334+be called something other than `show w' and `show c'; they could even be
 335+mouse-clicks or menu items--whatever suits your program.
 336+
 337+You should also get your employer (if you work as a programmer) or your
 338+school, if any, to sign a "copyright disclaimer" for the program, if
 339+necessary. Here is a sample; alter the names:
 340+
 341+ Yoyodyne, Inc., hereby disclaims all copyright interest in the program
 342+ `Gnomovision' (which makes passes at compilers) written by James Hacker.
 343+
 344+ <signature of Ty Coon>, 1 April 1989
 345+ Ty Coon, President of Vice
 346+
 347+This General Public License does not permit incorporating your program into
 348+proprietary programs. If your program is a subroutine library, you may
 349+consider it more useful to permit linking proprietary applications with the
 350+library. If this is what you want to do, use the GNU Library General
 351+Public License instead of this License.
Property changes on: tags/extensions/SemanticGlossary/REL_0_1/COPYING
___________________________________________________________________
Added: svn:eol-style
1352 + native
Index: tags/extensions/SemanticGlossary/REL_0_1/SemanticGlossary.i18n.php
@@ -0,0 +1,669 @@
 2+<?php
 3+/**
 4+ * Language file for Semantic Glossary
 5+ */
 6+
 7+$messages = array();
 8+
 9+/** English
 10+ * @author F.trott
 11+ */
 12+$messages['en'] = array(
 13+ 'semanticglossary-desc' => 'A glossary extension with a [http://semantic-mediawiki.org Semantic MediaWiki] backend',
 14+
 15+ 'semanticglossary-termdefinedtwice' => 'The page [[$1]] contains more than one term and/or more than one definition. The entries will not be available for the glossary.',
 16+
 17+ 'semanticglossary-prop-glt' => 'Glossary-Term',
 18+ 'semanticglossary-prop-gld' => 'Glossary-Definition',
 19+ 'semanticglossary-prop-gll' => 'Glossary-Link',
 20+
 21+);
 22+
 23+/** Message documentation (Message documentation)
 24+ * @author EugeneZelenko
 25+ * @author F.trott
 26+ * @author Purodha
 27+ */
 28+$messages['qqq'] = array(
 29+ 'semanticglossary-desc' => '{{desc}}',
 30+
 31+ 'semanticglossary-prop-glt' => 'This is the name of a [http://semantic-mediawiki.org/wiki/Property property] in the sense of [http://semantic-mediawiki.org/ Semantic MediaWiki].',
 32+ 'semanticglossary-prop-gld' => 'This is the name of a [http://semantic-mediawiki.org/wiki/Property property] in the sense of [http://semantic-mediawiki.org/ Semantic MediaWiki].',
 33+ 'semanticglossary-prop-gll' => 'This is the name of a [http://semantic-mediawiki.org/wiki/Property property] in the sense of [http://semantic-mediawiki.org/ Semantic MediaWiki].',
 34+);
 35+
 36+/** Old English (Ænglisc)
 37+ * @author Gott wisst
 38+ */
 39+$messages['ang'] = array(
 40+ 'semanticglossary-desc' => 'Ȝetæl ƿorda mid [http://semantic-mediawiki.org Semantic MediaǷiki] bæcende',
 41+ 'semanticglossary-browsertitle' => 'Ȝetæl ƿorda',
 42+ 'semanticglossary-deleteselected' => 'Forlēos þā ȝecorenan',
 43+ 'semanticglossary-savechanges' => 'Horda hƿearfunȝa',
 44+ 'semanticglossary-createnew' => 'Sciepp nīƿe ƿord',
 45+ 'semanticglossary-termsdefined' => 'Þās sind þā amearcodan ƿord on þissus ƿiki:',
 46+ 'semanticglossary-notermsdefined' => 'Þǣr sind nū nǣnȝu amearcod ƿord on þissum ƿiki.',
 47+ 'semanticglossary-enternewterm' => 'Þū mōst inƿrītan nīƿe ƿord and amearcunȝe hēr:',
 48+ 'semanticglossary-messageheader' => 'Ǣrendȝeƿritu:',
 49+ 'semanticglossary-storedtermdefinedinarticle' => 'Þæt ƿord "$1" ƿæs ǣrost amearcod on þǣm [[$2]] tramete. Sēo amearcunȝ ƿæs āƿend sƿā nū is þearf. Þēahhƿæðere, sōna se ǣra tramet sīe eft āƿend, sēo amearcunȝ bēo hefiȝre.',
 50+ 'semanticglossary-deletedtermdefinedinarticle' => 'Þæt ƿord "$1" ƿæs ǣrost amearcod on þǣm [[$2]] tramete. Sēo amearcunȝ ƿæs forloren sƿā is nū þearf. Þēahhƿæðere, sōna se ǣra tramet sīe eft āƿend, sēo amearcunȝ þǣr bēo hefiȝre.',
 51+ 'semanticglossary-termdeleted' => 'Forlēas $1.',
 52+ 'semanticglossary-termchanged' => 'Āƿende $1.',
 53+ 'semanticglossary-termadded' => 'Ēacnode mid $1.',
 54+ 'semanticglossary-storedtermdefinedtwice' => 'Se tramet [[$1]] innaþ mā þonne ān þāra ƿeorða mid þǣm naman $2. Ne hordaþ ȝeƿitnesse þæs ƿordes "$3".',
 55+ 'semanticglossary-termdefinedtwice' => 'Se tramet [[$1]] innaþ mā þonne ān ƿord oþþe mā þonne āne amearcunȝe. Þā ȝeƿritu ne bēoþ ȝearu on þǣm ȝetæle ƿorda.',
 56+ 'semanticglossary-brokensession' => 'Dǣd nis alȳfedlīc. Ȝebrocen tīman ȝeƿitness.',
 57+ 'semanticglossary-norights' => 'Dǣd nis alȳfedlīc. Ne sind ȝenōh riht.',
 58+ 'semanticglossary-prop-glt' => 'Ƿordȝetælƿord',
 59+ 'semanticglossary-prop-gld' => 'Ƿordȝetælamearcunȝ',
 60+ 'semanticglossary-prop-gll' => 'Ƿordȝetælhlence',
 61+);
 62+
 63+/** Arabic (العربية)
 64+ * @author OsamaK
 65+ */
 66+$messages['ar'] = array(
 67+ 'semanticglossary-savechanges' => 'احفظ التغييرات',
 68+ 'semanticglossary-createnew' => 'أنشئ مصطلحا جديدا',
 69+);
 70+
 71+/** Azerbaijani (Azərbaycanca)
 72+ * @author Cekli829
 73+ */
 74+$messages['az'] = array(
 75+ 'semanticglossary-messageheader' => 'Mesajlar:',
 76+);
 77+
 78+/** Belarusian (Taraškievica orthography) (‪Беларуская (тарашкевіца)‬)
 79+ * @author EugeneZelenko
 80+ * @author Jim-by
 81+ */
 82+$messages['be-tarask'] = array(
 83+ 'semanticglossary-desc' => 'Пашырэньне-глясарый з выкарыстаньнем [http://semantic-mediawiki.org Semantic MediaWiki]',
 84+ 'semanticglossary-browsertitle' => 'Глясарый',
 85+ 'semanticglossary-deleteselected' => 'Выдаліць выбраныя',
 86+ 'semanticglossary-savechanges' => 'Захаваць зьмены',
 87+ 'semanticglossary-createnew' => 'Стварыць новы тэрмін',
 88+ 'semanticglossary-termsdefined' => 'Гэта тэрміны, вызначаныя ў {{GRAMMAR:месны|{{SITENAME}}}}:',
 89+ 'semanticglossary-notermsdefined' => 'Няма тэрмінаў вызначаных у {{GRAMMAR:месны|{{SITENAME}}}}.',
 90+ 'semanticglossary-enternewterm' => 'Тут Вы можаце ўвесьці новы тэрмін і вызначэньне:',
 91+ 'semanticglossary-messageheader' => 'Паведамленьні:',
 92+ 'semanticglossary-storedtermdefinedinarticle' => 'Тэрмін «$1» першапачаткова быў вызначаны на старонцы [[$2]]. Вызначэньне было зьмененае ў адпаведнасьці з цяперашнімі ўмовамі. Тым ня менш, пасьля новага рэдагаваньня пачатковай старонкі, вызначэньне будзе прыярытэтным.',
 93+ 'semanticglossary-deletedtermdefinedinarticle' => 'Тэрмін «$1» першапачаткова быў вызначаны на старонцы [[$2]]. Вызначэньне было выдаленае ў адпаведнасьці з цяперашнімі ўмовамі. Тым ня менш, пасьля новага рэдагаваньня пачатковай старонкі, вызначэньне будзе прыярытэтным.',
 94+ 'semanticglossary-termdeleted' => '$1 выдалены.',
 95+ 'semanticglossary-termchanged' => '$1 зьменены.',
 96+ 'semanticglossary-termadded' => '$1 дададзены.',
 97+ 'semanticglossary-storedtermdefinedtwice' => 'Старонка [[$1]] утрымлівае больш чым адну ўласьцівасьць з назвай $2. Зьвесткі для тэрміну «$3» ня будуць захаваныя.',
 98+ 'semanticglossary-termdefinedtwice' => 'Старонка [[$1]] утрымлівае больш чым адзін тэрмін і/ці больш чым адно вызначэньне. Уведзеныя зьвесткі ня будуць даступныя для глясарыя.',
 99+ 'semanticglossary-brokensession' => 'Дзеяньне не дазволенае. Пашкоджаныя зьвесткі пра сэсію.',
 100+ 'semanticglossary-norights' => 'Дзеяньне не дазволенае. Недастаткова правоў.',
 101+ 'semanticglossary-prop-glt' => 'Глясарый-Тэрмін',
 102+ 'semanticglossary-prop-gld' => 'Глясарый-Вызначэньне',
 103+ 'semanticglossary-prop-gll' => 'Глясарый-Спасылка',
 104+);
 105+
 106+/** Bengali (বাংলা)
 107+ * @author Wikitanvir
 108+ */
 109+$messages['bn'] = array(
 110+ 'semanticglossary-browsertitle' => 'শব্দকোষ',
 111+ 'semanticglossary-deleteselected' => 'নির্বাচিত গুলো মুছে ফেলো',
 112+ 'semanticglossary-savechanges' => 'পরিবর্তন সংরক্ষণ',
 113+ 'semanticglossary-createnew' => 'নতুন পরিভাষা তৈরি করো',
 114+ 'semanticglossary-termdeleted' => '$1 অপসারিত হয়েছে',
 115+ 'semanticglossary-termchanged' => '$1 পরিবর্তিত হয়েছে।',
 116+ 'semanticglossary-termadded' => '$1 যোগ করা হয়েছে।',
 117+);
 118+
 119+/** Breton (Brezhoneg)
 120+ * @author Fulup
 121+ */
 122+$messages['br'] = array(
 123+ 'semanticglossary-desc' => 'Un astenn geriaoueg diazezet war [http://semantic-mediawiki.org Semantic MediaWiki]',
 124+ 'semanticglossary-browsertitle' => 'Geriaoueg',
 125+ 'semanticglossary-deleteselected' => 'Dilemel ar re diuzet',
 126+ 'semanticglossary-savechanges' => "Enrollañ ar c'hemmoù",
 127+ 'semanticglossary-createnew' => 'Krouiñ un termen nevez',
 128+ 'semanticglossary-termsdefined' => 'Setu aze an termenoù termenet er wiki :',
 129+ 'semanticglossary-notermsdefined' => "N'eus bet termenet termen ebet er wiki evit poent.",
 130+ 'semanticglossary-enternewterm' => 'Gallout a rit merkañ un termen nevez gant e dermandur amañ :',
 131+ 'semanticglossary-messageheader' => 'Kemennadennoù :',
 132+ 'semanticglossary-termdeleted' => 'Diverket $1',
 133+ 'semanticglossary-termchanged' => 'Kemmet $1.',
 134+ 'semanticglossary-termadded' => 'Ouzhpennet $1.',
 135+ 'semanticglossary-storedtermdefinedtwice' => 'Meur a berzh anvet $2 zo er bajenn [[$1]]. Ne vo ket stoket ar roadennoù evit an termen "$3".',
 136+ 'semanticglossary-termdefinedtwice' => "Muioc'h eget un termen ha/pe un termenadur zo er bajenn [[$1]]. N'hallo ket ar pennger-se bezañ implijet er c'heriaoueg.",
 137+ 'semanticglossary-brokensession' => "Difennet eo an ober-mañ. Torret eo roadennoù an dalc'h.",
 138+ 'semanticglossary-norights' => "N'eo ket aotreet an ober-mañ. Re skort eo ho gwirioù.",
 139+ 'semanticglossary-prop-glt' => 'Geriaoueg-Termen',
 140+ 'semanticglossary-prop-gld' => 'Geriaoueg-Termenadur',
 141+ 'semanticglossary-prop-gll' => "Liamm eus ar c'heriaoueg",
 142+);
 143+
 144+/** Bosnian (Bosanski)
 145+ * @author CERminator
 146+ */
 147+$messages['bs'] = array(
 148+ 'semanticglossary-browsertitle' => 'Rječnik',
 149+ 'semanticglossary-deleteselected' => 'Obriši označeno',
 150+ 'semanticglossary-savechanges' => 'Spremi izmjene',
 151+ 'semanticglossary-createnew' => 'Napravi novi pojam',
 152+ 'semanticglossary-messageheader' => 'Poruke:',
 153+ 'semanticglossary-termdeleted' => 'Obrisano $1.',
 154+ 'semanticglossary-norights' => 'Akcija nije dopuštena. Nemate dovoljno prava.',
 155+ 'semanticglossary-prop-glt' => 'Rječnički-Pojam',
 156+ 'semanticglossary-prop-gld' => 'Rječnička-Definicija',
 157+);
 158+
 159+/** Catalan (Català)
 160+ * @author Dvdgmz
 161+ */
 162+$messages['ca'] = array(
 163+ 'semanticglossary-desc' => 'Una extensió de glossari sobre la base de [http://semantic-mediawiki.org Semantic MediaWiki]',
 164+ 'semanticglossary-browsertitle' => 'Glossari',
 165+ 'semanticglossary-deleteselected' => 'Esborrar seleccionat',
 166+ 'semanticglossary-savechanges' => 'Desar canvis',
 167+ 'semanticglossary-createnew' => 'Crear un nou terme',
 168+ 'semanticglossary-termsdefined' => 'Aquests són els termes definits al wiki:',
 169+ 'semanticglossary-notermsdefined' => 'Ara per ara no hi ha cap terme definit al wiki.',
 170+ 'semanticglossary-enternewterm' => 'Pots entrar un nou terme i la seva definició aquí:',
 171+ 'semanticglossary-messageheader' => 'Missatges:',
 172+ 'semanticglossary-termdeleted' => 'Esborrat $1.',
 173+ 'semanticglossary-termchanged' => 'Modificat $1.',
 174+ 'semanticglossary-termadded' => 'Afegit $1.',
 175+ 'semanticglossary-storedtermdefinedtwice' => 'La pàgina [[$1]] conté més d\'una propietat anomenada $2. No s\'enregistraran dades per al terme "$3".',
 176+ 'semanticglossary-termdefinedtwice' => "La pàgina [[$1]] conté més d'un terme i/o més d'una definició. Les entrades no estaran disponibles per el glossari.",
 177+ 'semanticglossary-brokensession' => "Acció no permesa. S'han perdut les dades de la sessió.",
 178+ 'semanticglossary-norights' => 'Acció no permesa. Permisos insuficients.',
 179+ 'semanticglossary-prop-glt' => 'Terme de glossari',
 180+ 'semanticglossary-prop-gld' => 'Definició de glossari',
 181+ 'semanticglossary-prop-gll' => 'Enllaç de glossari',
 182+);
 183+
 184+/** German (Deutsch)
 185+ * @author F.trott
 186+ * @author Kghbln
 187+ */
 188+$messages['de'] = array(
 189+ 'semanticglossary-desc' => 'Ermöglicht die Erstellung und Nutzung eines Glossars mit [http://semantic-mediawiki.org/wiki/Semantic_MediaWiki_–_Startseite Semantic MediaWiki] als Basis',
 190+ 'semanticglossary-browsertitle' => 'Glossar',
 191+ 'semanticglossary-deleteselected' => 'Ausgewählte löschen',
 192+ 'semanticglossary-savechanges' => 'Änderungen speichern',
 193+ 'semanticglossary-createnew' => 'Neuen Begriff anlegen',
 194+ 'semanticglossary-termsdefined' => 'Diese Begriffe sind im Wiki definiert:',
 195+ 'semanticglossary-notermsdefined' => 'Es sind derzeit keine Begriffe im Wiki definiert.',
 196+ 'semanticglossary-enternewterm' => 'Hier kann ein neuer Begriff mit seiner Definition eingegeben werden:',
 197+ 'semanticglossary-messageheader' => 'Meldungen:',
 198+ 'semanticglossary-storedtermdefinedinarticle' => 'Der Begriff „$1“ wurde ursprünglich auf Seite [[$2]] definiert. Die Definition wurde vorerst entsprechend den Eingaben geändert. Allerdings wird, sobald die ursprüngliche Seite bearbeitet wird, die dort angegebene Definition wieder den Vorrang erhalten.',
 199+ 'semanticglossary-deletedtermdefinedinarticle' => 'Der Begriff „$1“ wurde ursprünglich auf Seite [[$2]] definiert. Die Definition wurde vorerst gelöscht. Allerdings wird, sobald die ursprüngliche Seite bearbeitet wird, die dort angegebene Definition wieder den Vorrang erhalten.',
 200+ 'semanticglossary-termdeleted' => 'Der Begriff „$1“ wurde gelöscht.',
 201+ 'semanticglossary-termchanged' => 'Der Begriff „$1“ wurde geändert.',
 202+ 'semanticglossary-termadded' => 'Der Begriff „$1“ wurde hinzugefügt.',
 203+ 'semanticglossary-storedtermdefinedtwice' => 'Die Seite [[$1]] enthält mehr als ein Attribut namens $2. Die Daten für den Begriff „$3“ werden nicht gespeichert.',
 204+ 'semanticglossary-termdefinedtwice' => 'Die Seite [[$1]] enthält mehr als einen Begriff und/oder mehr als eine Definition. Die Eingaben werden daher nicht im Glossar verfügbar sein.',
 205+ 'semanticglossary-brokensession' => 'Diese Aktion ist nicht zulässig: Abgelaufene Sitzungsdaten.',
 206+ 'semanticglossary-norights' => 'Diese Aktion ist nicht zulässig: Unzureichende Berechtigungen.',
 207+ 'semanticglossary-prop-glt' => 'Glossar (Begriff)',
 208+ 'semanticglossary-prop-gld' => 'Glossar (Definition)',
 209+ 'semanticglossary-prop-gll' => 'Glossar (Link)',
 210+);
 211+
 212+/** French (Français)
 213+ * @author IAlex
 214+ */
 215+$messages['fr'] = array(
 216+ 'semanticglossary-desc' => 'Une extension de glossaire utilisant [http://semantic-mediawiki.org Semantic MediaWiki]',
 217+ 'semanticglossary-browsertitle' => 'Glossaire',
 218+ 'semanticglossary-deleteselected' => 'Supprimer la sélection',
 219+ 'semanticglossary-savechanges' => 'Sauvegarder les modifications',
 220+ 'semanticglossary-createnew' => 'Créer un nouveau terme',
 221+ 'semanticglossary-termsdefined' => 'Voici les termes définis sur le wiki :',
 222+ 'semanticglossary-notermsdefined' => "Il n'y a actuellement aucun terme défini sur le wiki.",
 223+ 'semanticglossary-enternewterm' => 'Vous pouvez entrer un nouveau terme et sa définition ici :',
 224+ 'semanticglossary-messageheader' => 'Messages :',
 225+ 'semanticglossary-storedtermdefinedinarticle' => "Le terme « $1 » a été défini dans la page [[$2]]. La définition a été modifiée comme requis pour l'instant. Cependant, dès que la page originale sera modifiée à nouveau, la définition là-bas aura la priorité.",
 226+ 'semanticglossary-deletedtermdefinedinarticle' => "Le terme « $1 » a été défini dans la page [[$2]]. La définition a été supprimée comme requis pour l'instant. Cependant, dès que la page originale sera modifiée à nouveau, la définition là-bas aura la priorité.",
 227+ 'semanticglossary-termdeleted' => '$1 supprimé.',
 228+ 'semanticglossary-termchanged' => '$1 modifié.',
 229+ 'semanticglossary-termadded' => '$1 ajouté.',
 230+ 'semanticglossary-storedtermdefinedtwice' => "La page [[$1]] contient plus d'une propriété nommée $2. Les données pour le terme « $3 » ne seront pas stockées.",
 231+ 'semanticglossary-termdefinedtwice' => "La page [[$1]] contient plus d'un terme et/ou plus d'une définition. Les entrées ne seront pas disponibles pour le glossaire.",
 232+ 'semanticglossary-brokensession' => 'Action non autorisée. Données de session incorrectes.',
 233+ 'semanticglossary-norights' => 'Action non autorisée. Droits insuffisants.',
 234+ 'semanticglossary-prop-glt' => 'Terme du glossaire',
 235+ 'semanticglossary-prop-gld' => 'Définition du glossaire',
 236+ 'semanticglossary-prop-gll' => 'Lien du glossaire',
 237+);
 238+
 239+/** Franco-Provençal (Arpetan)
 240+ * @author ChrisPtDe
 241+ */
 242+$messages['frp'] = array(
 243+ 'semanticglossary-browsertitle' => 'Glossèro',
 244+ 'semanticglossary-deleteselected' => 'Suprimar lo chouèx',
 245+ 'semanticglossary-savechanges' => 'Sôvar los changements',
 246+ 'semanticglossary-createnew' => 'Fâre un mot novél',
 247+ 'semanticglossary-messageheader' => 'Mèssâjos :',
 248+ 'semanticglossary-termdeleted' => '$1 suprimâ.',
 249+ 'semanticglossary-termchanged' => '$1 changiê.',
 250+ 'semanticglossary-termadded' => '$1 apondu.',
 251+ 'semanticglossary-prop-glt' => 'Mot du glossèro',
 252+ 'semanticglossary-prop-gld' => 'Dèfinicion du glossèro',
 253+ 'semanticglossary-prop-gll' => 'Lim du glossèro',
 254+);
 255+
 256+/** Galician (Galego)
 257+ * @author Toliño
 258+ */
 259+$messages['gl'] = array(
 260+ 'semanticglossary-desc' => 'Unha extensión de glosario baseada en [http://semantic-mediawiki.org Semantic MediaWiki]',
 261+ 'semanticglossary-browsertitle' => 'Glosario',
 262+ 'semanticglossary-deleteselected' => 'Eliminar o seleccionado',
 263+ 'semanticglossary-savechanges' => 'Gardar os cambios',
 264+ 'semanticglossary-createnew' => 'Crear un novo termo',
 265+ 'semanticglossary-termsdefined' => 'Estes son os termos definidos no wiki:',
 266+ 'semanticglossary-notermsdefined' => 'Actualmente non existen termos definidos no wiki.',
 267+ 'semanticglossary-enternewterm' => 'Pode introducir un novo termo e definición aquí:',
 268+ 'semanticglossary-messageheader' => 'Mensaxes:',
 269+ 'semanticglossary-storedtermdefinedinarticle' => 'O termo "$1" conta coa definición orixinal na páxina "[[$2]]". A definición foi modificada conforme o necesitado polo de agora. Con todo, así como a páxina orixinal sufra unha nova edición, a definición alí terá prioridade.',
 270+ 'semanticglossary-deletedtermdefinedinarticle' => 'O termo "$1" conta coa definición orixinal na páxina "[[$2]]". A definición foi eliminada conforme o necesitado polo de agora. Con todo, así como a páxina orixinal sufra unha nova edición, a definición alí terá prioridade.',
 271+ 'semanticglossary-termdeleted' => '$1 borrado.',
 272+ 'semanticglossary-termchanged' => '$1 modificado.',
 273+ 'semanticglossary-termadded' => '$1 engadido.',
 274+ 'semanticglossary-storedtermdefinedtwice' => 'A páxina "[[$1]]" contén máis dunha propiedade chamada "$2". Non se han almacenar datos para o termo "$3".',
 275+ 'semanticglossary-termdefinedtwice' => 'A páxina "[[$1]]" contén máis dun termo e/ou máis dunha definición. As entradas non estarán dispoñibles para o glosario.',
 276+ 'semanticglossary-brokensession' => 'Acción non permitida. Datos de sesión incorrectos.',
 277+ 'semanticglossary-norights' => 'Acción non permitida. Dereitos insuficientes.',
 278+ 'semanticglossary-prop-glt' => 'Termo do glosario',
 279+ 'semanticglossary-prop-gld' => 'Definición do glosario',
 280+ 'semanticglossary-prop-gll' => 'Ligazón do glosario',
 281+);
 282+
 283+/** Hebrew (עברית)
 284+ * @author Amire80
 285+ */
 286+$messages['he'] = array(
 287+ 'semanticglossary-desc' => 'הרחבה ליצירת מונחון עם מנוע של [http://semantic-mediawiki.org מדיה־ויקי סמנטית]',
 288+ 'semanticglossary-browsertitle' => 'מונחון',
 289+ 'semanticglossary-deleteselected' => 'מחיקת הפריטים שנבחרו',
 290+ 'semanticglossary-savechanges' => 'שמירת שינויים',
 291+ 'semanticglossary-createnew' => 'יצירת מונח חדש',
 292+ 'semanticglossary-termsdefined' => 'אלה המונחים שהוגדרו בוייקי הזאת:',
 293+ 'semanticglossary-notermsdefined' => 'כעת אין מונחים שהוגדרו בוויקי הזה.',
 294+ 'semanticglossary-enternewterm' => 'אפשר להוסיף מונח חדש עם הגדרה כאן:',
 295+ 'semanticglossary-messageheader' => 'הודעות:',
 296+ 'semanticglossary-storedtermdefinedinarticle' => 'המונח "$1" הוגדר במקור בדף [[$2]]. ההגדרה שונתה כפי שנדרש עכשיו. אולם כאשר הדף המקורי ייערך שוב, ההגדרה שם תוחל.',
 297+ 'semanticglossary-deletedtermdefinedinarticle' => 'המונח "$1" הוגדר במקור בדף [[$2]]. ההגדרה נמחקה כפי שנדרש עכשיו. אולם כאשר הדף המקורי ייערך שוב, ההגדרה שם תוחל.',
 298+ 'semanticglossary-termdeleted' => '$1 נמחק.',
 299+ 'semanticglossary-termchanged' => '$1 שוּנה.',
 300+ 'semanticglossary-termadded' => '$1 נוסף.',
 301+ 'semanticglossary-storedtermdefinedtwice' => 'הדף [[$1]] מכיל יותר ממאפיין אחד בשם $2. נתונים על המונח "$3" לא יישמרו.',
 302+ 'semanticglossary-termdefinedtwice' => 'הדף [[$1]] מכיל יותר ממונח אחד או יותר מהגדרה אחת. הערכים לא יהיו זמינים למונחון.',
 303+ 'semanticglossary-brokensession' => 'פעולה לא מורשית. נתוני שיח מקולקלים.',
 304+ 'semanticglossary-norights' => 'פעולה לא מורשית. אין הרשאות מספיקות.',
 305+ 'semanticglossary-prop-glt' => 'מונח-במונחון',
 306+ 'semanticglossary-prop-gld' => 'הגדרה-במונחון',
 307+ 'semanticglossary-prop-gll' => 'קישור-במונחון',
 308+);
 309+
 310+/** Hungarian (Magyar)
 311+ * @author Dani
 312+ */
 313+$messages['hu'] = array(
 314+ 'semanticglossary-savechanges' => 'Változtatások mentése',
 315+ 'semanticglossary-termdeleted' => '$1 törölve.',
 316+ 'semanticglossary-termchanged' => '$1 módosítva.',
 317+ 'semanticglossary-termadded' => '$1 hozzáadva.',
 318+);
 319+
 320+/** Interlingua (Interlingua)
 321+ * @author McDutchie
 322+ */
 323+$messages['ia'] = array(
 324+ 'semanticglossary-desc' => 'Un extension pro glossarios a base de [http://semantic-mediawiki.org Semantic MediaWiki]',
 325+ 'semanticglossary-browsertitle' => 'Glossario',
 326+ 'semanticglossary-deleteselected' => 'Deler selection',
 327+ 'semanticglossary-savechanges' => 'Salveguardar modificationes',
 328+ 'semanticglossary-createnew' => 'Crear nove termino',
 329+ 'semanticglossary-termsdefined' => 'Istes es le terminos definite in iste wiki:',
 330+ 'semanticglossary-notermsdefined' => 'Actualmente il non ha terminos definite in le wiki.',
 331+ 'semanticglossary-enternewterm' => 'Tu pote entrar un nove termino e definition hic:',
 332+ 'semanticglossary-messageheader' => 'Messages:',
 333+ 'semanticglossary-storedtermdefinedinarticle' => 'Le termino "$1" esseva originalmente definite in le pagina [[$2]]. Le definition esseva cambiate como necessari pro le momento. Nonobstante, si tosto que le pagina original es modificate de novo, le definition de illo habera le precedentia.',
 334+ 'semanticglossary-deletedtermdefinedinarticle' => 'Le termino "$1" esseva originalmente definite in le pagina [[$2]]. Le definition esseva delite como necessari pro le momento. Nonobstante, si tosto que le pagina original es modificate de novo, le definition de illo habera le precedentia.',
 335+ 'semanticglossary-termdeleted' => '$1 delite.',
 336+ 'semanticglossary-termchanged' => '"$1" modificate.',
 337+ 'semanticglossary-termadded' => '"$1" addite.',
 338+ 'semanticglossary-storedtermdefinedtwice' => 'Le pagina [[$1]] contine plus de un proprietate con nomine $2. Le datos pro le termino "$3" non essera immagazinate.',
 339+ 'semanticglossary-termdefinedtwice' => 'Le pagina [[$1]] contine plus de un termino e/o plus de un definition. Le entratas non essera disponibile in le glossario.',
 340+ 'semanticglossary-brokensession' => 'Action non permittite. Datos de session defectuose.',
 341+ 'semanticglossary-norights' => 'Action non permittite. Derectos insufficiente.',
 342+ 'semanticglossary-prop-glt' => 'Termino de glossario',
 343+ 'semanticglossary-prop-gld' => 'Definition de glossario',
 344+ 'semanticglossary-prop-gll' => 'Ligamine-a-glossario',
 345+);
 346+
 347+/** Indonesian (Bahasa Indonesia)
 348+ * @author IvanLanin
 349+ */
 350+$messages['id'] = array(
 351+ 'semanticglossary-desc' => 'Ekstensi glosarium yang didukung oleh [http://semantic-mediawiki.org Semantic MediaWiki]',
 352+ 'semanticglossary-browsertitle' => 'Glosarium',
 353+ 'semanticglossary-deleteselected' => 'Hapus yang dipilih',
 354+ 'semanticglossary-savechanges' => 'Simpan perubahan',
 355+ 'semanticglossary-createnew' => 'Buat istilah baru',
 356+ 'semanticglossary-termsdefined' => 'Berikut istilah yang didefinisikan dalam wiki ini:',
 357+ 'semanticglossary-notermsdefined' => 'Saat ini tidak ada istilah yang didefinisikan dalam wiki ini.',
 358+ 'semanticglossary-enternewterm' => 'Anda dapat memasukkan istilah baru dan definisi di sini:',
 359+ 'semanticglossary-messageheader' => 'Pesan:',
 360+ 'semanticglossary-storedtermdefinedinarticle' => 'Istilah "$1" awalnya didefinisikan dalam halaman [[$2]]. Saat ini, definisi diubah sesuai permintaan. Namun, segera setelah halaman asli disunting lagi, definisi yang ada di sana akan diprioritaskan.',
 361+ 'semanticglossary-deletedtermdefinedinarticle' => 'Istilah "$1" awalnya didefinisikan dalam halaman [[$2]]. Saat ini, definisi dihapus sesuai permintaan. Namun, segera setelah halaman asli disunting lagi, definisi yang ada di sana akan diprioritaskan.',
 362+ 'semanticglossary-termdeleted' => 'Menghapus $1.',
 363+ 'semanticglossary-termchanged' => 'Mengubah $1.',
 364+ 'semanticglossary-termadded' => 'Menambah: $1.',
 365+ 'semanticglossary-storedtermdefinedtwice' => 'Halaman [[$1]] berisi lebih dari satu properti dengan nama $2. Data istilah "$3" tidak akan disimpan.',
 366+ 'semanticglossary-termdefinedtwice' => 'Halaman [[$1]] berisi lebih dari satu istilah dan/atau lebih dari satu definisi. Entri tersebut tidak akan tersedia untuk glosarium.',
 367+ 'semanticglossary-brokensession' => 'Tindakan tidak diizinkan. Data sesi rusak.',
 368+ 'semanticglossary-norights' => 'Tindakan tidak diizinkan. Hak akses tidak memadai.',
 369+ 'semanticglossary-prop-glt' => 'Glosarium-Istilah',
 370+ 'semanticglossary-prop-gld' => 'Glosarium-Definisi',
 371+ 'semanticglossary-prop-gll' => 'Glosarium-Tautan',
 372+);
 373+
 374+/** Japanese (日本語)
 375+ * @author Schu
 376+ */
 377+$messages['ja'] = array(
 378+ 'semanticglossary-desc' => '[http://semantic-mediawiki.org セマンティックMediaWiki] バックエンドでの用語集拡張機能',
 379+ 'semanticglossary-browsertitle' => '用語集',
 380+);
 381+
 382+/** Colognian (Ripoarisch)
 383+ * @author Purodha
 384+ */
 385+$messages['ksh'] = array(
 386+ 'semanticglossary-desc' => 'E Zohsazprojramm för e Verzeishneß met makeerte Bejreffe met [http://semantic-mediawiki.org Semantesch MediaWiki] dohenger.',
 387+ 'semanticglossary-browsertitle' => 'Wööterverzeischneß',
 388+ 'semanticglossary-deleteselected' => 'Donn de ußjewählte fottschmieße!',
 389+ 'semanticglossary-savechanges' => 'Änderunge faßhallde',
 390+ 'semanticglossary-createnew' => 'Donn ene neue Bejreff aanlääje',
 391+ 'semanticglossary-termsdefined' => 'Heh di Bejreffe sin em Wiki singem Wööterverzeischneß:',
 392+ 'semanticglossary-notermsdefined' => 'Em Momang sinn_er kein Bejreffe em Wiki singem Wööterverzeischneß faßjehallde.',
 393+ 'semanticglossary-enternewterm' => 'Heh kam_mer ne neuje Bejreff enjävve un ussenander possemänteere, wat dä bedügg:',
 394+ 'semanticglossary-messageheader' => 'Nohreschte:',
 395+ 'semanticglossary-storedtermdefinedinarticle' => 'Di Bedügdenis vun däm Bejreff „$1“ wood et eets op dä Sigg „[[$2]]“ ussenander possemänteert.
 396+Jäz eß di Bedüggdeneß wi nüüdesch aanjepaß woode.
 397+Allerdengs, wann di orschprönglesche Sigg norr_ens verändert weed, kritt dat, wat doh shtund, widder der Vörrang.',
 398+ 'semanticglossary-deletedtermdefinedinarticle' => 'Di Bedüggdeneß vun däm Bejreff „$1“ wood et eets op dä Sigg „[[$2]]“ ussenander possemänteert.
 399+Jäz eß di Bedüggdeneß wi nüüdesch fott jeschmeße woode.
 400+Allerdengs, esubalt di orschprönglesche Sigg norr_ens verändert weed, kritt dat, wat doh shtund, widder der Vörrang.',
 401+ 'semanticglossary-termdeleted' => '„$1“ es fottjeschmeße.',
 402+ 'semanticglossary-termchanged' => 'Dä Bejreff „$1“ es jeändert.',
 403+ 'semanticglossary-termadded' => 'Dä Bejreff „$1“ es dobei jekumme.',
 404+ 'semanticglossary-storedtermdefinedtwice' => 'En dä Sigg „[[$1]]“ es mieh wi ein Eijeschaff mem Naame „$2“ dren. Di Daate för dä Bejreff „$3“ wääde nit faßjehallde.',
 405+ 'semanticglossary-termdefinedtwice' => 'En dä Sigg „[[$1]]“ es mieh wie eine Bejreff, udder miehj wi ein Bedüggdeneß usseneijn possemänteert, udder beeds. Di wääde nit em Wööter_Verzeishneß faßjehallde.',
 406+ 'semanticglossary-brokensession' => 'Dat jeiht nit. Ding Daate fum Enlogge sin fott.',
 407+ 'semanticglossary-norights' => 'Dat es nit zohjelohße.
 408+Ding Zohjreffsrräschte ricke doh nit för.',
 409+ 'semanticglossary-prop-glt' => 'Bejreff em Wööterverzeijschneß',
 410+ 'semanticglossary-prop-gld' => 'Bedüggdeneß em Wööterverzeischneß',
 411+ 'semanticglossary-prop-gll' => 'Lenk en et Wööterverzeischneß',
 412+);
 413+
 414+/** Luxembourgish (Lëtzebuergesch)
 415+ * @author Robby
 416+ */
 417+$messages['lb'] = array(
 418+ 'semanticglossary-browsertitle' => 'Glossaire',
 419+ 'semanticglossary-deleteselected' => 'Ugewielt läschen',
 420+ 'semanticglossary-savechanges' => 'Ännerunge späicheren',
 421+ 'semanticglossary-createnew' => 'Neie Begrëff uleeën',
 422+ 'semanticglossary-termsdefined' => 'Dës Begrëffer sinn an dëser Wiki definéiert:',
 423+ 'semanticglossary-notermsdefined' => 'Et sinn elo keng Begrëffer an dëser Wiki definéiert.',
 424+ 'semanticglossary-enternewterm' => 'Dir kënnt en neie Begrëff mat senger Definitioun hei aginn:',
 425+ 'semanticglossary-messageheader' => 'Messagen:',
 426+ 'semanticglossary-storedtermdefinedinarticle' => 'De Begrëff "$1" gouf fir d\'éischt op der Säit [[$2]] definéiert. D\'Definitioun gouf elo emol esou geännert wéi et gefrot gouf. Allerdéngs gëtt d\'Definitioun vun der Säit [[$2]] nees iwwerholl esoubal déi Säit geännert gëtt.',
 427+ 'semanticglossary-termdeleted' => '$1 ass geläscht.',
 428+ 'semanticglossary-termchanged' => '$1 ass geännert.',
 429+ 'semanticglossary-termadded' => '$1 gouf derbäigesat.',
 430+ 'semanticglossary-brokensession' => 'Dës Aktioun ass net erlaabt. Date vun der Sessioun si futti.',
 431+ 'semanticglossary-norights' => 'Aktioun net erlaabt. Net genuch Rechter.',
 432+ 'semanticglossary-prop-glt' => 'Begrëff am Glossaire',
 433+ 'semanticglossary-prop-gld' => 'Glossaire-Definitioun',
 434+ 'semanticglossary-prop-gll' => 'Glossaire-Link',
 435+);
 436+
 437+/** Macedonian (Македонски)
 438+ * @author Bjankuloski06
 439+ */
 440+$messages['mk'] = array(
 441+ 'semanticglossary-desc' => 'Додаток со поимник за [http://semantic-mediawiki.org Семантички МедијаВики]',
 442+ 'semanticglossary-browsertitle' => 'Поимник',
 443+ 'semanticglossary-deleteselected' => 'Избриши одбрано',
 444+ 'semanticglossary-savechanges' => 'Зачувај промени',
 445+ 'semanticglossary-createnew' => 'Создај нова поим',
 446+ 'semanticglossary-termsdefined' => 'Еве ги поимите определени во викито:',
 447+ 'semanticglossary-notermsdefined' => 'Моментално нема поими определени во викито.',
 448+ 'semanticglossary-enternewterm' => 'Тука можете да внесете нов поим и значење:',
 449+ 'semanticglossary-messageheader' => 'Пораки:',
 450+ 'semanticglossary-storedtermdefinedinarticle' => 'Поимот „$1“ бил првично утврден на страницата [[$2]]. Толкувањето е сменето според тековните потреби. Но штом повторно ќе се уреди изворната страница, тамошното толкување добива предност.',
 451+ 'semanticglossary-deletedtermdefinedinarticle' => 'Поимот „$1“ бил првично утврден на страницата [[$2]]. Толкувањето е избришано според тековните потреби. Но штом повторно ќе се уреди изворната страница, тамошното толкување добива предност.',
 452+ 'semanticglossary-termdeleted' => 'Го избришав $1.',
 453+ 'semanticglossary-termchanged' => 'Изменето: $1.',
 454+ 'semanticglossary-termadded' => 'Додадено: $1.',
 455+ 'semanticglossary-storedtermdefinedtwice' => 'Страницата [[$1]] содржи повеќе од едно својство со име $2. Нема да зачувам податоци за поимот „$3“.',
 456+ 'semanticglossary-termdefinedtwice' => 'Оваа страница [[$1]] содржи повеќе од еден поим и/или повеќе од едно толкување. Овие записи нема да бидат достапни во поимникот.',
 457+ 'semanticglossary-brokensession' => 'Дејството не е допуштено. Сесиските податоци се расипани.',
 458+ 'semanticglossary-norights' => 'Дејството не е допуштено. Немате доволно права.',
 459+ 'semanticglossary-prop-glt' => 'Поимник-Поим',
 460+ 'semanticglossary-prop-gld' => 'Поимник-Толкување',
 461+ 'semanticglossary-prop-gll' => 'Поимник-Врска',
 462+);
 463+
 464+/** Dutch (Nederlands)
 465+ * @author Siebrand
 466+ */
 467+$messages['nl'] = array(
 468+ 'semanticglossary-desc' => 'Begrippenlijst die gebruik maakt van [http://semantic-mediawiki.org Semantic MediaWiki]',
 469+ 'semanticglossary-browsertitle' => 'Begrippenlijst',
 470+ 'semanticglossary-deleteselected' => 'Selectie verwijderen',
 471+ 'semanticglossary-savechanges' => 'Wijzigingen opslaan',
 472+ 'semanticglossary-createnew' => 'Nieuwe begrip aanmaken',
 473+ 'semanticglossary-termsdefined' => 'Dit zijn de in de wiki gedefinieerde begrippen:',
 474+ 'semanticglossary-notermsdefined' => 'Er zijn momenteel geen begrippen gedefinieerd in de wiki.',
 475+ 'semanticglossary-enternewterm' => 'U kunt hier een nieuw begrip met definitie hier invoeren:',
 476+ 'semanticglossary-messageheader' => 'Berichten:',
 477+ 'semanticglossary-storedtermdefinedinarticle' => 'Het begrip "$1" was oorspronkelijk gedefinieerd op de pagina [[$2]]. De definitie is gewijzigd. Echter, wanneer de oorspronkelijke pagina opnieuw wordt bewerkt, heeft die definitie weer voorrang.',
 478+ 'semanticglossary-deletedtermdefinedinarticle' => 'Het begrip "$1" was oorspronkelijk gedefinieerd op de pagina [[$2]]. De definitie is verwijderd. Echter, wanneer de oorspronkelijke pagina opnieuw wordt bewerkt, heeft die definitie weer voorrang.',
 479+ 'semanticglossary-termdeleted' => '"$1" verwijderd',
 480+ 'semanticglossary-termchanged' => '"$1" gewijzigd.',
 481+ 'semanticglossary-termadded' => '"$1" toegevoegd.',
 482+ 'semanticglossary-storedtermdefinedtwice' => 'De pagina [[$1]] bevat meerdere eigenschappen met de naam $2. De gegevens voor Het begrip "$3" worden niet opgeslagen.',
 483+ 'semanticglossary-termdefinedtwice' => 'De pagina [[$1]] bevat meerdere begrippen of definities van/voor hetzelfde. De gegevens zijn niet beschikbaar in de begrippenlijst.',
 484+ 'semanticglossary-brokensession' => 'De handeling is niet toegestaan. De sessie is afgebroken.',
 485+ 'semanticglossary-norights' => 'De handeling is niet toegestaan. Onvoldoende rechten.',
 486+ 'semanticglossary-prop-glt' => 'Begrippenlijstbegrip',
 487+ 'semanticglossary-prop-gld' => 'Begrippenlijstdefinitie',
 488+ 'semanticglossary-prop-gll' => 'Begrippenlijstverwijzing',
 489+);
 490+
 491+/** Piedmontese (Piemontèis)
 492+ * @author Borichèt
 493+ * @author Dragonòt
 494+ */
 495+$messages['pms'] = array(
 496+ 'semanticglossary-desc' => "N'estension ëd glossari ch'a deuvra [http://semantic-mediawiki.org Semantic MediaWiki]",
 497+ 'semanticglossary-browsertitle' => 'Glossari',
 498+ 'semanticglossary-deleteselected' => 'Scancelé la selession',
 499+ 'semanticglossary-savechanges' => 'Salvé ij cangiament',
 500+ 'semanticglossary-createnew' => 'Creé na paròla neuva',
 501+ 'semanticglossary-termsdefined' => 'Coste-sì a son le paròle definìe an sla wiki:',
 502+ 'semanticglossary-notermsdefined' => 'Al moment a-i é gnun-a espression definìa an sla wiki.',
 503+ 'semanticglossary-enternewterm' => 'A peul anserì na neuva espression e soa definission ambelessì:',
 504+ 'semanticglossary-messageheader' => 'Mëssagi:',
 505+ 'semanticglossary-storedtermdefinedinarticle' => 'L\'espression "$1" a l\'era originariament definìa ant la pàgina [[$2]]. La definission a l\'é stàita modificà com ciamà për adess. Comsëssìa, pen-a che la pàgina originaria a sarà torna modificà, la definission ambelelà a l\'avrà la precedensa.',
 506+ 'semanticglossary-deletedtermdefinedinarticle' => 'L\'espression "$1" a l\'era originariament definìa ant la pàgina [[$2]]. La definission a l\'é stàita scancelà com ciamà për adess. Comsëssìa, pen-a che la pàgina originaria a sarà torna modificà, la definission ambelelà a l\'avrà la precedensa.',
 507+ 'semanticglossary-termdeleted' => 'Scancelà $1.',
 508+ 'semanticglossary-termchanged' => 'Cangià $1.',
 509+ 'semanticglossary-termadded' => 'Giontà $1.',
 510+ 'semanticglossary-storedtermdefinedtwice' => 'La pàgina [[$1]] a conten pi che na proprietà ciamà $2. A memoriserà pa ëd dat për l\'espression "$3".',
 511+ 'semanticglossary-termdefinedtwice' => "La pàgina [[$1]] a conten pi che n'espresson e/o pi che na definission. Le vos a saran pa disponìbij për ël glossari.",
 512+ 'semanticglossary-brokensession' => 'Assion pa përmëttùa. Dat ëd session përdù.',
 513+ 'semanticglossary-norights' => 'Assion pa përmëttùa. Pa basta ëd drit.',
 514+ 'semanticglossary-prop-glt' => 'Espression dël glossari',
 515+ 'semanticglossary-prop-gld' => 'Glossari-Definission',
 516+ 'semanticglossary-prop-gll' => 'Liura dël glossari',
 517+);
 518+
 519+/** Pashto (پښتو)
 520+ * @author Ahmed-Najib-Biabani-Ibrahimkhel
 521+ */
 522+$messages['ps'] = array(
 523+ 'semanticglossary-browsertitle' => 'وييپانګه',
 524+ 'semanticglossary-deleteselected' => 'ټاکل شوی ړنګول',
 525+ 'semanticglossary-savechanges' => 'بدلونونه خوندي کول',
 526+ 'semanticglossary-messageheader' => 'پيغامونه:',
 527+);
 528+
 529+/** Portuguese (Português)
 530+ * @author Hamilton Abreu
 531+ */
 532+$messages['pt'] = array(
 533+ 'semanticglossary-desc' => 'Uma extensão de glossário com base no [http://semantic-mediawiki.org MediaWiki Semântico]',
 534+ 'semanticglossary-browsertitle' => 'Glossário',
 535+ 'semanticglossary-deleteselected' => 'Eliminar as seleccionadas',
 536+ 'semanticglossary-savechanges' => 'Gravar alterações',
 537+ 'semanticglossary-createnew' => 'Criar termo novo',
 538+ 'semanticglossary-termsdefined' => 'Os termos definidos na wiki são os seguintes:',
 539+ 'semanticglossary-notermsdefined' => 'Neste momento não existe nenhum termo definido na wiki.',
 540+ 'semanticglossary-enternewterm' => 'Pode introduzir um termo novo e a sua definição aqui:',
 541+ 'semanticglossary-messageheader' => 'Mensagens:',
 542+ 'semanticglossary-storedtermdefinedinarticle' => 'O termo "$1" foi definido originalmente na página [[$2]]. A definição foi alterada conforme pedido, por agora. No entanto, logo que a página original seja novamente editada, a definição da página original terá precedência.',
 543+ 'semanticglossary-deletedtermdefinedinarticle' => 'O termo "$1" foi definido originalmente na página [[$2]]. A definição foi eliminada conforme pedido, por agora. No entanto, logo que a página original seja novamente editada, a definição da página original terá precedência.',
 544+ 'semanticglossary-termdeleted' => '$1 foi eliminado.',
 545+ 'semanticglossary-termchanged' => '$1 foi alterado.',
 546+ 'semanticglossary-termadded' => '$1 foi adicionado.',
 547+ 'semanticglossary-storedtermdefinedtwice' => 'A página [[$1]] contém mais do que uma propriedade com o nome $2. Não serão armazenados dados para o termo "$3".',
 548+ 'semanticglossary-termdefinedtwice' => 'A página [[$1]] contém mais do que um termo ou definição. As entradas não ficarão disponíveis no glossário.',
 549+ 'semanticglossary-brokensession' => 'A operação não é permitida. Os dados da sessão estão danificados.',
 550+ 'semanticglossary-norights' => 'A operação não é permitida. Não tem a permissão necessária.',
 551+ 'semanticglossary-prop-glt' => 'Glossário-Termo',
 552+ 'semanticglossary-prop-gld' => 'Glossário-Definição',
 553+ 'semanticglossary-prop-gll' => 'Glossário-Link',
 554+);
 555+
 556+/** Russian (Русский)
 557+ * @author Lockal
 558+ * @author Александр Сигачёв
 559+ * @author Ичи
 560+ */
 561+$messages['ru'] = array(
 562+ 'semanticglossary-desc' => 'Расширение-глоссарий на основе [http://semantic-mediawiki.org Semantic MediaWiki]',
 563+ 'semanticglossary-browsertitle' => 'Глоссарий',
 564+ 'semanticglossary-deleteselected' => 'Удалить выбранные',
 565+ 'semanticglossary-savechanges' => 'Сохранить изменения',
 566+ 'semanticglossary-createnew' => 'Создать новый термин',
 567+ 'semanticglossary-termsdefined' => 'Это термины, определяемые в вики:',
 568+ 'semanticglossary-notermsdefined' => 'Сейчас в вики нет определений.',
 569+ 'semanticglossary-enternewterm' => 'Здесь вы можете ввести новый термин и определение:',
 570+ 'semanticglossary-messageheader' => 'Сообщения:',
 571+ 'semanticglossary-storedtermdefinedinarticle' => 'Термин «$1» был первоначально определён на странице [[$2]]. Определение было изменено в соответствии с текущими требованиями. Однако, после следующего редактирования, определение будет приоритетным.',
 572+ 'semanticglossary-deletedtermdefinedinarticle' => 'Термин «$1» был первоначально определён на странице [[$2]]. Определение было удалено в соответствии с текущими требованиями. Однако, после следующего редактирования исходной страницы, определение с той страницы снова станет приоритетным.',
 573+ 'semanticglossary-termdeleted' => 'Термин $1 удалён.',
 574+ 'semanticglossary-termchanged' => 'Термин $1 изменён.',
 575+ 'semanticglossary-termadded' => 'Добавлен термин $1.',
 576+ 'semanticglossary-storedtermdefinedtwice' => 'Страницы [[$1]] содержит более одного свойства с именем $2. Данные для термина «$3» не будут храниться.',
 577+ 'semanticglossary-termdefinedtwice' => 'Страница [[$1]] содержит более одного термина и/или более одного определения. Записи не будут доступны в глоссарии.',
 578+ 'semanticglossary-brokensession' => 'Действие не допускается. Данные сессии повреждены.',
 579+ 'semanticglossary-norights' => 'Действие не допускается. Недостаточно прав.',
 580+ 'semanticglossary-prop-glt' => 'Глоссарий-Термин',
 581+ 'semanticglossary-prop-gld' => 'Глоссарий-Определение',
 582+ 'semanticglossary-prop-gll' => 'Глоссарий-Ссылка',
 583+);
 584+
 585+/** Serbian Cyrillic ekavian (‪Српски (ћирилица)‬)
 586+ * @author Rancher
 587+ */
 588+$messages['sr-ec'] = array(
 589+ 'semanticglossary-browsertitle' => 'Речник',
 590+ 'semanticglossary-deleteselected' => 'Обриши изабрано',
 591+ 'semanticglossary-savechanges' => 'Сачувај измене',
 592+ 'semanticglossary-createnew' => 'Направи нови појам',
 593+ 'semanticglossary-termsdefined' => 'Ово су појмови одређени у викију:',
 594+ 'semanticglossary-notermsdefined' => 'Нема појмова одређених у викију.',
 595+ 'semanticglossary-enternewterm' => 'Можете унети нови појам и дефиницију овде:',
 596+ 'semanticglossary-messageheader' => 'Поруке:',
 597+ 'semanticglossary-storedtermdefinedinarticle' => 'Појам „$1“ је изворно одређен у страници [[$2]]. Дефиниција је промењена. Када се изворна страница поново измени, дефиниција ће стећи предност.',
 598+ 'semanticglossary-deletedtermdefinedinarticle' => 'Појам „$1“ је изворно одређен у страници [[$2]]. Дефиниција је обрисана. Када се изворна страница поново измени, дефиниција ће стећи предност.',
 599+ 'semanticglossary-termdeleted' => 'Обрисано $1.',
 600+ 'semanticglossary-storedtermdefinedtwice' => 'Страница [[$1]] садржи више од једног својства с називом $2. Она неће смештати податке за појам „$3“.',
 601+ 'semanticglossary-termdefinedtwice' => 'Страница [[$1]] садржи више од једног појма и дефиниције. Уноси неће бити доступни речнику.',
 602+ 'semanticglossary-brokensession' => 'Радња није дозвољена. Подаци о сесији су изгубљени.',
 603+ 'semanticglossary-norights' => 'Радња није дозвољена. Немате потребна права.',
 604+);
 605+
 606+/** Telugu (తెలుగు)
 607+ * @author Veeven
 608+ */
 609+$messages['te'] = array(
 610+ 'semanticglossary-browsertitle' => 'పదకోశం',
 611+ 'semanticglossary-deleteselected' => 'ఎంచుకున్నవాటిని తొలగించు',
 612+ 'semanticglossary-savechanges' => 'మార్పులను భద్రపరచు',
 613+ 'semanticglossary-createnew' => 'కొత్త పదాన్ని సృష్టించు',
 614+ 'semanticglossary-termsdefined' => 'ఈ వికీలో నిర్వచించిన పదాలు:',
 615+ 'semanticglossary-messageheader' => 'సందేశాలు:',
 616+ 'semanticglossary-termdeleted' => '$1ని తొలగించారు.',
 617+ 'semanticglossary-termchanged' => '$1ని మార్చారు.',
 618+ 'semanticglossary-termadded' => '$1ని చేర్చారు.',
 619+ 'semanticglossary-norights' => 'చర్యను అనుమతించము. తగినన్ని అధికారాలు లేవు.',
 620+);
 621+
 622+/** Tagalog (Tagalog)
 623+ * @author AnakngAraw
 624+ */
 625+$messages['tl'] = array(
 626+ 'semanticglossary-desc' => 'Isang dugtong ng glosaryo na may isang dulong panlikod na [http://semantic-mediawiki.org Semantikong MediaWiki]',
 627+ 'semanticglossary-browsertitle' => 'Glosaryo',
 628+ 'semanticglossary-deleteselected' => 'Burahin ang napili',
 629+ 'semanticglossary-savechanges' => 'Sagipin ang mga pagbabago',
 630+ 'semanticglossary-createnew' => 'Lumikha ng bagong kataga',
 631+ 'semanticglossary-termsdefined' => 'Ito ang mga katagang binigyan ng kahulugan sa loob ng wiki:',
 632+ 'semanticglossary-notermsdefined' => 'Pangkasalukuyang walang mga katagang binigyan ng kahulugan sa loob ng wiki.',
 633+ 'semanticglossary-enternewterm' => 'Makapagpapasok ka rito ng isang bagong kataga at kahulugan:',
 634+ 'semanticglossary-messageheader' => 'Mga mensahe:',
 635+ 'semanticglossary-storedtermdefinedinarticle' => 'Ang katagang "$1" ay orihinal na binigyan ng kahulugan sa pahinang [[$2]]. Binago ang kahulugan ayon sa pangangailangan para sa ngayon. Subalit, kapag nabago na ulit ang orihinal na pahina, ang kahulugan doon ang magkakamit ng mas mahigit na kahalagan.',
 636+ 'semanticglossary-deletedtermdefinedinarticle' => 'Ang katagang "$1" ay orihinal na nabigyan ng kahulugan sa pahina [[$2]]. Nabura ang kahulugan ayon sa pangangailangan sa ngayon. Subalit, kapag binago na ulit ang orihinal na pahina, ang kahulugan doon ang magkakamit ng mas mahigit na kahalagahan.',
 637+ 'semanticglossary-termdeleted' => 'Binura ang $1.',
 638+ 'semanticglossary-termchanged' => 'Binago ang $1.',
 639+ 'semanticglossary-termadded' => 'Idinagdag ang $1.',
 640+ 'semanticglossary-storedtermdefinedtwice' => 'Ang pahinang [[$1]] ay naglalaman ng mas mahigit kaysa isang ari-arian na pinangalanang $2. Hindi mag-iimbak ng dato para sa katagang "$3".',
 641+ 'semanticglossary-termdefinedtwice' => 'Ang pahinang [[$1]] ay naglalaman ng mas mahigit kaysa isang kataga at/o mas mahigit pa sa isang kahulugan. Ang mga pagpapasok ay hindi makukuha para sa glosaryo.',
 642+ 'semanticglossary-brokensession' => 'Hindi pinapayagan ang kilos. Sira ang dato ng inilaang panahon.',
 643+ 'semanticglossary-norights' => 'Hindi pinapahintulutan ang galaw. Hindi sapat ang mga karapatan.',
 644+ 'semanticglossary-prop-glt' => 'Kataga sa Glosaryo',
 645+ 'semanticglossary-prop-gld' => 'Kahulugan sa Glosaryo',
 646+ 'semanticglossary-prop-gll' => 'Kawing sa Glosaryo',
 647+);
 648+
 649+/** Vietnamese (Tiếng Việt)
 650+ * @author Minh Nguyen
 651+ */
 652+$messages['vi'] = array(
 653+ 'semanticglossary-desc' => 'Phần mở rộng bảng thuật ngữ dựa trên [http://semantic-mediawiki.org Semantic MediaWiki]',
 654+ 'semanticglossary-browsertitle' => 'Thuật ngữ',
 655+ 'semanticglossary-deleteselected' => 'Xóa lựa chọn',
 656+ 'semanticglossary-savechanges' => 'Lưu các thay đổi',
 657+ 'semanticglossary-createnew' => 'Tạo thuật ngữ mới',
 658+ 'semanticglossary-messageheader' => 'Thông điệp:',
 659+ 'semanticglossary-termdeleted' => 'Đã xóa “$1”.',
 660+ 'semanticglossary-termchanged' => 'Đã thay đổi “$1”.',
 661+ 'semanticglossary-termadded' => 'Đã thêm “$1”.',
 662+);
 663+
 664+/** Simplified Chinese (‪中文(简体)‬)
 665+ * @author Xiaomingyan
 666+ */
 667+$messages['zh-hans'] = array(
 668+ 'semanticglossary-messageheader' => '信息:',
 669+);
 670+
Property changes on: tags/extensions/SemanticGlossary/REL_0_1/SemanticGlossary.i18n.php
___________________________________________________________________
Added: svn:eol-style
1671 + native
Index: tags/extensions/SemanticGlossary/REL_0_1/SemanticGlossary.php
@@ -0,0 +1,81 @@
 2+<?php
 3+
 4+/**
 5+ * A terminology markup extension with a Semantic MediaWiki backend
 6+ *
 7+ * @defgroup SemanticGlossary Semantic Glossary
 8+ * @author Stephan Gambke
 9+ * @version 0.1
 10+ */
 11+
 12+/**
 13+ * The main file of the SemanticGlossary extension
 14+ *
 15+ * @author Stephan Gambke
 16+ *
 17+ * @file
 18+ * @ingroup SemanticGlossary
 19+ */
 20+
 21+
 22+if ( !defined( 'MEDIAWIKI' ) ) {
 23+ die( 'This file is part of a MediaWiki extension, it is not a valid entry point.' );
 24+}
 25+
 26+if ( !defined( 'SMW_VERSION' ) ) {
 27+ die( 'Semantic Glossary depends on the Semantic MediaWiki extension. You need to install Semantic MediaWiki first.' );
 28+}
 29+
 30+if ( !defined( 'LINGO_VERSION' ) ) {
 31+ die( 'Semantic Glossary depends on the Lingo extension. You need to install Lingo first.' );
 32+}
 33+
 34+/**
 35+ * The Semantic Glossary version
 36+ */
 37+define( 'SG_VERSION', '0.1' );
 38+
 39+// register the extension
 40+$wgExtensionCredits[defined( 'SEMANTIC_EXTENSION_TYPE' ) ? 'semantic' : 'other'][] = array(
 41+ 'path' => __FILE__,
 42+ 'name' => 'Semantic Glossary',
 43+ 'author' => '[http://www.mediawiki.org/wiki/User:F.trott Stephan Gambke]',
 44+ 'url' => 'http://www.mediawiki.org/wiki/Extension:Semantic_Glossary',
 45+ 'descriptionmsg' => 'semanticglossary-desc',
 46+ 'version' => SG_VERSION,
 47+);
 48+
 49+
 50+// set SemanticGlossaryBackend as the backend to access the glossary
 51+$wgexLingoBackend = 'SemanticGlossaryBackend';
 52+
 53+// server-local path to this file
 54+$dir = dirname( __FILE__ );
 55+
 56+// register message file
 57+$wgExtensionMessagesFiles['SemanticGlossary'] = $dir . '/SemanticGlossary.i18n.php';
 58+
 59+// register class files with the Autoloader
 60+$wgAutoloadClasses['SemanticGlossaryBackend'] = $dir . '/SemanticGlossaryBackend.php';
 61+
 62+// register hook handlers
 63+$wgHooks['smwInitProperties'][] = 'SemanticGlossaryRegisterProperties';
 64+$wgHooks['smwInitDatatypes'][] = 'SemanticGlossaryRegisterPropertyAliases';
 65+
 66+define( 'SG_PROP_GLT', 'Glossary-Term' );
 67+define( 'SG_PROP_GLD', 'Glossary-Definition' );
 68+define( 'SG_PROP_GLL', 'Glossary-Link' );
 69+
 70+function SemanticGlossaryRegisterProperties() {
 71+ SMWDIProperty::registerProperty( '___glt', '_str', SG_PROP_GLT, true );
 72+ SMWDIProperty::registerProperty( '___gld', '_txt', SG_PROP_GLD, true );
 73+ SMWDIProperty::registerProperty( '___gll', '_str', SG_PROP_GLL, true );
 74+ return true;
 75+}
 76+
 77+function SemanticGlossaryRegisterPropertyAliases() {
 78+ SMWDIProperty::registerPropertyAlias( '___glt', wfMsg( 'semanticglossary-prop-glt' ) );
 79+ SMWDIProperty::registerPropertyAlias( '___gld', wfMsg( 'semanticglossary-prop-gld' ) );
 80+ SMWDIProperty::registerPropertyAlias( '___gll', wfMsg( 'semanticglossary-prop-gll' ) );
 81+ return true;
 82+}
Property changes on: tags/extensions/SemanticGlossary/REL_0_1/SemanticGlossary.php
___________________________________________________________________
Added: svn:eol-style
183 + native