From 42e6ae2cdfa625a29111c3b314d2c9a5710ee90e Mon Sep 17 00:00:00 2001 From: Mateusz Uzdowski Date: Fri, 13 Apr 2012 16:18:06 +1200 Subject: [PATCH 01/23] APICHANGE: add validation extension hook to DataExtension --- model/DataExtension.php | 9 +++++++++ model/DataObject.php | 6 ++++-- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/model/DataExtension.php b/model/DataExtension.php index 4216c148f..d9c22d1d1 100644 --- a/model/DataExtension.php +++ b/model/DataExtension.php @@ -63,6 +63,15 @@ abstract class DataExtension extends Extension { public static function unload_extra_statics($class, $extension) { throw new Exception('unload_extra_statics gone'); } + + /** + * Hook for extension-specific validation. + * + * @param $validationResult Local validation result + * @throws ValidationException + */ + function validate(ValidationResult &$validationResult) { + } /** * Edit the given query object to support queries for this extension diff --git a/model/DataObject.php b/model/DataObject.php index 852ca21fd..fa6d0fe64 100644 --- a/model/DataObject.php +++ b/model/DataObject.php @@ -883,7 +883,7 @@ class DataObject extends ViewableData implements DataObjectInterface, i18nEntity * Validate the current object. * * By default, there is no validation - objects are always valid! However, you can overload this method in your - * DataObject sub-classes to specify custom validation. + * DataObject sub-classes to specify custom validation, or use the hook through DataExtension. * * Invalid objects won't be able to be written - a warning will be thrown and no write will occur. onBeforeWrite() * and onAfterWrite() won't get called either. @@ -894,7 +894,9 @@ class DataObject extends ViewableData implements DataObjectInterface, i18nEntity * @return A {@link ValidationResult} object */ protected function validate() { - return new ValidationResult(); + $result = new ValidationResult(); + $this->extend('validate', $result); + return $result; } /** From cc7a01213948b2cdb3ba59cab37cc8a1516f06e6 Mon Sep 17 00:00:00 2001 From: Sam Minnee Date: Wed, 18 Apr 2012 09:34:57 +1200 Subject: [PATCH 02/23] BUGFIX: Use the copy of symfony-yaml bundled with Zend_Translate to prevent class conflicts. Remove now-unnecessary symonfy-yaml thirdparty lib. --- core/manifest/ConfigManifest.php | 5 +- i18n/i18nTextCollector.php | 4 +- thirdparty/symfony-yaml/.piston.yml | 8 - thirdparty/symfony-yaml/LICENSE | 19 - thirdparty/symfony-yaml/README.markdown | 15 - .../symfony-yaml/doc/00-Introduction.markdown | 143 ---- thirdparty/symfony-yaml/doc/01-Usage.markdown | 110 ---- thirdparty/symfony-yaml/doc/02-YAML.markdown | 312 --------- .../symfony-yaml/doc/A-License.markdown | 108 --- thirdparty/symfony-yaml/lib/sfYaml.php | 135 ---- thirdparty/symfony-yaml/lib/sfYamlDumper.php | 60 -- thirdparty/symfony-yaml/lib/sfYamlInline.php | 442 ------------- thirdparty/symfony-yaml/lib/sfYamlParser.php | 622 ------------------ thirdparty/symfony-yaml/package.xml | 172 ----- 14 files changed, 4 insertions(+), 2151 deletions(-) delete mode 100644 thirdparty/symfony-yaml/.piston.yml delete mode 100644 thirdparty/symfony-yaml/LICENSE delete mode 100644 thirdparty/symfony-yaml/README.markdown delete mode 100644 thirdparty/symfony-yaml/doc/00-Introduction.markdown delete mode 100644 thirdparty/symfony-yaml/doc/01-Usage.markdown delete mode 100644 thirdparty/symfony-yaml/doc/02-YAML.markdown delete mode 100644 thirdparty/symfony-yaml/doc/A-License.markdown delete mode 100644 thirdparty/symfony-yaml/lib/sfYaml.php delete mode 100644 thirdparty/symfony-yaml/lib/sfYamlDumper.php delete mode 100644 thirdparty/symfony-yaml/lib/sfYamlInline.php delete mode 100644 thirdparty/symfony-yaml/lib/sfYamlParser.php delete mode 100644 thirdparty/symfony-yaml/package.xml diff --git a/core/manifest/ConfigManifest.php b/core/manifest/ConfigManifest.php index 2636a21d1..324b3f7d5 100644 --- a/core/manifest/ConfigManifest.php +++ b/core/manifest/ConfigManifest.php @@ -176,9 +176,8 @@ class SS_ConfigManifest { // Keep track of all the modules we've seen $this->addModule(dirname(dirname($pathname))); - // We use Symfony Yaml since it's the most complete. It still doesn't handle all of YAML, but it's better than - // nothing. - if(!class_exists('sfYamlParser', false)) require_once 'thirdparty/symfony-yaml/lib/sfYamlParser.php'; + // Use the Zend copy of this script to prevent class conflicts when RailsYaml is included + require_once 'thirdparty/zend_translate_railsyaml/library/Translate/Adapter/thirdparty/sfYaml/lib/sfYamlParser.php'; $parser = new sfYamlParser(); // The base header diff --git a/i18n/i18nTextCollector.php b/i18n/i18nTextCollector.php index b30db32f0..93de04415 100644 --- a/i18n/i18nTextCollector.php +++ b/i18n/i18nTextCollector.php @@ -495,8 +495,8 @@ class i18nTextCollector_Writer_RailsYaml implements i18nTextCollector_Writer { } public function getYaml($entities, $locale) { - // Check required because Zend_Translate_RailsYAML also includes the lib, from a different location - if(!class_exists('sfYamlDumper', false)) require_once 'thirdparty/symfony-yaml/lib/sfYamlDumper.php'; + // Use the Zend copy of this script to prevent class conflicts when RailsYaml is included + require_once 'thirdparty/zend_translate_railsyaml/library/Translate/Adapter/thirdparty/sfYaml/lib/sfYamlDumper.php'; // Unflatten array $entitiesNested = array(); diff --git a/thirdparty/symfony-yaml/.piston.yml b/thirdparty/symfony-yaml/.piston.yml deleted file mode 100644 index 59308518f..000000000 --- a/thirdparty/symfony-yaml/.piston.yml +++ /dev/null @@ -1,8 +0,0 @@ ---- -format: 1 -handler: - commit: 8a266aadcec878681ed458796b1ce792cc377f79 - branch: master -lock: false -repository_class: Piston::Git::Repository -repository_url: https://github.com/fabpot/yaml.git diff --git a/thirdparty/symfony-yaml/LICENSE b/thirdparty/symfony-yaml/LICENSE deleted file mode 100644 index 3cef85317..000000000 --- a/thirdparty/symfony-yaml/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (c) 2008-2009 Fabien Potencier - -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. diff --git a/thirdparty/symfony-yaml/README.markdown b/thirdparty/symfony-yaml/README.markdown deleted file mode 100644 index e4f80cfba..000000000 --- a/thirdparty/symfony-yaml/README.markdown +++ /dev/null @@ -1,15 +0,0 @@ -Symfony YAML: A PHP library that speaks YAML -============================================ - -Symfony YAML is a PHP library that parses YAML strings and converts them to -PHP arrays. It can also converts PHP arrays to YAML strings. Its official -website is at http://components.symfony-project.org/yaml/. - -The documentation is to be found in the `doc/` directory. - -Symfony YAML is licensed under the MIT license (see LICENSE file). - -The Symfony YAML library is developed and maintained by the -[symfony](http://www.symfony-project.org/) project team. It has been extracted -from symfony to be used as a standalone library. Symfony YAML is part of the -[symfony components project](http://components.symfony-project.org/). diff --git a/thirdparty/symfony-yaml/doc/00-Introduction.markdown b/thirdparty/symfony-yaml/doc/00-Introduction.markdown deleted file mode 100644 index e59275874..000000000 --- a/thirdparty/symfony-yaml/doc/00-Introduction.markdown +++ /dev/null @@ -1,143 +0,0 @@ -Introduction -============ - -This book is about *Symfony YAML*, a PHP library part of the Symfony -Components project. Its official website is at -http://components.symfony-project.org/yaml/. - ->**SIDEBAR** ->About the Symfony Components -> ->[Symfony Components](http://components.symfony-project.org/) are ->standalone PHP classes that can be easily used in any ->PHP project. Most of the time, they have been developed as part of the ->[Symfony framework](http://www.symfony-project.org/), and decoupled from the ->main framework later on. You don't need to use the Symfony MVC framework to use ->the components. - -What is it? ------------ - -Symfony YAML is a PHP library that parses YAML strings and converts them to -PHP arrays. It can also converts PHP arrays to YAML strings. - -[YAML](http://www.yaml.org/), YAML Ain't Markup Language, is a human friendly -data serialization standard for all programming languages. YAML is a great -format for your configuration files. YAML files are as expressive as XML files -and as readable as INI files. - -### Easy to use - -There is only one archive to download, and you are ready to go. No -configuration, No installation. Drop the files in a directory and start using -it today in your projects. - -### Open-Source - -Released under the MIT license, you are free to do whatever you want, even in -a commercial environment. You are also encouraged to contribute. - - -### Used by popular Projects - -Symfony YAML was initially released as part of the symfony framework, one of -the most popular PHP web framework. It is also embedded in other popular -projects like PHPUnit or Doctrine. - -### Documented - -Symfony YAML is fully documented, with a dedicated online book, and of course -a full API documentation. - -### Fast - -One of the goal of Symfony YAML is to find the right balance between speed and -features. It supports just the needed feature to handle configuration files. - -### Unit tested - -The library is fully unit-tested. With more than 400 unit tests, the library -is stable and is already used in large projects. - -### Real Parser - -It sports a real parser and is able to parse a large subset of the YAML -specification, for all your configuration needs. It also means that the parser -is pretty robust, easy to understand, and simple enough to extend. - -### Clear error messages - -Whenever you have a syntax problem with your YAML files, the library outputs a -helpful message with the filename and the line number where the problem -occurred. It eases the debugging a lot. - -### Dump support - -It is also able to dump PHP arrays to YAML with object support, and inline -level configuration for pretty outputs. - -### Types Support - -It supports most of the YAML built-in types like dates, integers, octals, -booleans, and much more... - - -### Full merge key support - -Full support for references, aliases, and full merge key. Don't repeat -yourself by referencing common configuration bits. - -### PHP Embedding - -YAML files are dynamic. By embedding PHP code inside a YAML file, you have -even more power for your configuration files. - -Installation ------------- - -Symfony YAML can be installed by downloading the source code as a -[tar](http://github.com/fabpot/yaml/tarball/master) archive or a -[zip](http://github.com/fabpot/yaml/zipball/master) one. - -To stay up-to-date, you can also use the official Subversion -[repository](http://svn.symfony-project.com/components/yaml/). - -If you are a Git user, there is an official -[mirror](http://github.com/fabpot/yaml), which is updated every 10 minutes. - -If you prefer to install the component globally on your machine, you can use -the symfony [PEAR](http://pear.symfony-project.com/) channel server. - -Support -------- - -Support questions and enhancements can be discussed on the -[mailing-list](http://groups.google.com/group/symfony-components). - -If you find a bug, you can create a ticket at the symfony -[trac](http://trac.symfony-project.org/newticket) under the *YAML* component. - -License -------- - -The Symfony YAML component is licensed under the *MIT license*: - ->Copyright (c) 2008-2009 Fabien Potencier -> ->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. diff --git a/thirdparty/symfony-yaml/doc/01-Usage.markdown b/thirdparty/symfony-yaml/doc/01-Usage.markdown deleted file mode 100644 index 644cf11e9..000000000 --- a/thirdparty/symfony-yaml/doc/01-Usage.markdown +++ /dev/null @@ -1,110 +0,0 @@ -Using Symfony YAML -================== - -The Symfony YAML library is very simple and consists of two main classes: one -to parse YAML strings (`sfYamlParser`), and the other to dump a PHP array to -a YAML string (`sfYamlDumper`). - -On top of these two core classes, the main `sfYaml` class acts as a thin -wrapper and simplifies common uses. - -Reading YAML Files ------------------- - -The `sfYamlParser::parse()` method parses a YAML string and converts it to a -PHP array: - - [php] - $yaml = new sfYamlParser(); - $value = $yaml->parse(file_get_contents('/path/to/file.yaml')); - -If an error occurs during parsing, the parser throws an exception indicating -the error type and the line in the original YAML string where the error -occurred: - - [php] - try - { - $value = $yaml->parse(file_get_contents('/path/to/file.yaml')); - } - catch (InvalidArgumentException $e) - { - // an error occurred during parsing - echo "Unable to parse the YAML string: ".$e->getMessage(); - } - ->**TIP** ->As the parser is reentrant, you can use the same parser object to load ->different YAML strings. - -When loading a YAML file, it is sometimes better to use the `sfYaml::load()` -wrapper method: - - [php] - $loader = sfYaml::load('/path/to/file.yml'); - -The `sfYaml::load()` static method takes a YAML string or a file containing -YAML. Internally, it calls the `sfYamlParser::parse()` method, but with some -added bonuses: - - * It executes the YAML file as if it was a PHP file, so that you can embed - PHP commands in YAML files; - - * When a file cannot be parsed, it automatically adds the file name to the - error message, simplifying debugging when your application is loading - several YAML files. - -Writing YAML Files ------------------- - -The `sfYamlDumper` dumps any PHP array to its YAML representation: - - [php] - $array = array('foo' => 'bar', 'bar' => array('foo' => 'bar', 'bar' => 'baz')); - - $dumper = new sfYamlDumper(); - $yaml = $dumper->dump($array); - file_put_contents('/path/to/file.yaml', $yaml); - ->**NOTE** ->Of course, the Symfony YAML dumper is not able to dump resources. Also, ->even if the dumper is able to dump PHP objects, it is to be considered ->an alpha feature. - -If you only need to dump one array, you can use the `sfYaml::dump()` static -method shortcut: - - [php] - $yaml = sfYaml::dump($array, $inline); - -The YAML format supports two kind of representation for arrays, the expanded -one, and the inline one. By default, the dumper uses the inline -representation: - - [yml] - { foo: bar, bar: { foo: bar, bar: baz } } - -The second argument of the `dump()` method customizes the level at which the -output switches from the expanded representation to the inline one: - - [php] - echo $dumper->dump($array, 1); - -- - - [yml] - foo: bar - bar: { foo: bar, bar: baz } - -- - - [php] - echo $dumper->dump($array, 2); - -- - - [yml] - foo: bar - bar: - foo: bar - bar: baz diff --git a/thirdparty/symfony-yaml/doc/02-YAML.markdown b/thirdparty/symfony-yaml/doc/02-YAML.markdown deleted file mode 100644 index a64c19e84..000000000 --- a/thirdparty/symfony-yaml/doc/02-YAML.markdown +++ /dev/null @@ -1,312 +0,0 @@ -The YAML Format -=============== - -According to the official [YAML](http://yaml.org/) website, YAML is "a human -friendly data serialization standard for all programming languages". - -Even if the YAML format can describe complex nested data structure, this -chapter only describes the minimum set of features needed to use YAML as a -configuration file format. - -YAML is a simple language that describes data. As PHP, it has a syntax for -simple types like strings, booleans, floats, or integers. But unlike PHP, it -makes a difference between arrays (sequences) and hashes (mappings). - -Scalars -------- - -The syntax for scalars is similar to the PHP syntax. - -### Strings - - [yml] - A string in YAML - -- - - [yml] - 'A singled-quoted string in YAML' - ->**TIP** ->In a single quoted string, a single quote `'` must be doubled: -> -> [yml] -> 'A single quote '' in a single-quoted string' - - [yml] - "A double-quoted string in YAML\n" - -Quoted styles are useful when a string starts or ends with one or more -relevant spaces. - ->**TIP** ->The double-quoted style provides a way to express arbitrary strings, by ->using `\` escape sequences. It is very useful when you need to embed a ->`\n` or a unicode character in a string. - -When a string contains line breaks, you can use the literal style, indicated -by the pipe (`|`), to indicate that the string will span several lines. In -literals, newlines are preserved: - - [yml] - | - \/ /| |\/| | - / / | | | |__ - -Alternatively, strings can be written with the folded style, denoted by `>`, -where each line break is replaced by a space: - - [yml] - > - This is a very long sentence - that spans several lines in the YAML - but which will be rendered as a string - without carriage returns. - ->**NOTE** ->Notice the two spaces before each line in the previous examples. They ->won't appear in the resulting PHP strings. - -### Numbers - - [yml] - # an integer - 12 - -- - - [yml] - # an octal - 014 - -- - - [yml] - # an hexadecimal - 0xC - -- - - [yml] - # a float - 13.4 - -- - - [yml] - # an exponential number - 1.2e+34 - -- - - [yml] - # infinity - .inf - -### Nulls - -Nulls in YAML can be expressed with `null` or `~`. - -### Booleans - -Booleans in YAML are expressed with `true` and `false`. - ->**NOTE** ->The symfony YAML parser also recognize `on`, `off`, `yes`, and `no` but ->it is strongly discouraged to use them as it has been removed from the ->1.2 YAML specifications. - -### Dates - -YAML uses the ISO-8601 standard to express dates: - - [yml] - 2001-12-14t21:59:43.10-05:00 - -- - - [yml] - # simple date - 2002-12-14 - -Collections ------------ - -A YAML file is rarely used to describe a simple scalar. Most of the time, it -describes a collection. A collection can be a sequence or a mapping of -elements. Both sequences and mappings are converted to PHP arrays. - -Sequences use a dash followed by a space (`- `): - - [yml] - - PHP - - Perl - - Python - -The previous YAML file is equivalent to the following PHP code: - - [php] - array('PHP', 'Perl', 'Python'); - -Mappings use a colon followed by a space (`: `) to mark each key/value pair: - - [yml] - PHP: 5.2 - MySQL: 5.1 - Apache: 2.2.20 - -which is equivalent to this PHP code: - - [php] - array('PHP' => 5.2, 'MySQL' => 5.1, 'Apache' => '2.2.20'); - ->**NOTE** ->In a mapping, a key can be any valid scalar. - -The number of spaces between the colon and the value does not matter: - - [yml] - PHP: 5.2 - MySQL: 5.1 - Apache: 2.2.20 - -YAML uses indentation with one or more spaces to describe nested collections: - - [yml] - "symfony 1.0": - PHP: 5.0 - Propel: 1.2 - "symfony 1.2": - PHP: 5.2 - Propel: 1.3 - -The following YAML is equivalent to the following PHP code: - - [php] - array( - 'symfony 1.0' => array( - 'PHP' => 5.0, - 'Propel' => 1.2, - ), - 'symfony 1.2' => array( - 'PHP' => 5.2, - 'Propel' => 1.3, - ), - ); - -There is one important thing you need to remember when using indentation in a -YAML file: *Indentation must be done with one or more spaces, but never with -tabulations*. - -You can nest sequences and mappings as you like: - - [yml] - 'Chapter 1': - - Introduction - - Event Types - 'Chapter 2': - - Introduction - - Helpers - -YAML can also use flow styles for collections, using explicit indicators -rather than indentation to denote scope. - -A sequence can be written as a comma separated list within square brackets -(`[]`): - - [yml] - [PHP, Perl, Python] - -A mapping can be written as a comma separated list of key/values within curly -braces (`{}`): - - [yml] - { PHP: 5.2, MySQL: 5.1, Apache: 2.2.20 } - -You can mix and match styles to achieve a better readability: - - [yml] - 'Chapter 1': [Introduction, Event Types] - 'Chapter 2': [Introduction, Helpers] - -- - - [yml] - "symfony 1.0": { PHP: 5.0, Propel: 1.2 } - "symfony 1.2": { PHP: 5.2, Propel: 1.3 } - -Comments --------- - -Comments can be added in YAML by prefixing them with a hash mark (`#`): - - [yml] - # Comment on a line - "symfony 1.0": { PHP: 5.0, Propel: 1.2 } # Comment at the end of a line - "symfony 1.2": { PHP: 5.2, Propel: 1.3 } - ->**NOTE** ->Comments are simply ignored by the YAML parser and do not need to be ->indented according to the current level of nesting in a collection. - -Dynamic YAML files ------------------- - -In symfony, a YAML file can contain PHP code that is evaluated just before the -parsing occurs: - - [php] - 1.0: - version: - 1.1: - version: "" - -Be careful to not mess up with the indentation. Keep in mind the following -simple tips when adding PHP code to a YAML file: - - * The `` statements must always start the line or be embedded in a - value. - - * If a `` statement ends a line, you need to explicitly output a new - line ("\n"). - -
- -A Full Length Example ---------------------- - -The following example illustrates most YAML notations explained in this -document: - - [yml] - "symfony 1.0": - end_of_maintainance: 2010-01-01 - is_stable: true - release_manager: "Grégoire Hubert" - description: > - This stable version is the right choice for projects - that need to be maintained for a long period of time. - latest_beta: ~ - latest_minor: 1.0.20 - supported_orms: [Propel] - archives: { source: [zip, tgz], sandbox: [zip, tgz] } - - "symfony 1.2": - end_of_maintainance: 2008-11-01 - is_stable: true - release_manager: 'Fabian Lange' - description: > - This stable version is the right choice - if you start a new project today. - latest_beta: null - latest_minor: 1.2.5 - supported_orms: - - Propel - - Doctrine - archives: - source: - - zip - - tgz - sandbox: - - zip - - tgz diff --git a/thirdparty/symfony-yaml/doc/A-License.markdown b/thirdparty/symfony-yaml/doc/A-License.markdown deleted file mode 100644 index 49cdd7c77..000000000 --- a/thirdparty/symfony-yaml/doc/A-License.markdown +++ /dev/null @@ -1,108 +0,0 @@ -Appendix A - License -==================== - -Attribution-Share Alike 3.0 Unported License --------------------------------------------- - -THE WORK (AS DEFINED BELOW) IS PROVIDED UNDER THE TERMS OF THIS CREATIVE COMMONS PUBLIC LICENSE ("CCPL" OR "LICENSE"). THE WORK IS PROTECTED BY COPYRIGHT AND/OR OTHER APPLICABLE LAW. ANY USE OF THE WORK OTHER THAN AS AUTHORIZED UNDER THIS LICENSE OR COPYRIGHT LAW IS PROHIBITED. - -BY EXERCISING ANY RIGHTS TO THE WORK PROVIDED HERE, YOU ACCEPT AND AGREE TO BE BOUND BY THE TERMS OF THIS LICENSE. TO THE EXTENT THIS LICENSE MAY BE CONSIDERED TO BE A CONTRACT, THE LICENSOR GRANTS YOU THE RIGHTS CONTAINED HERE IN CONSIDERATION OF YOUR ACCEPTANCE OF SUCH TERMS AND CONDITIONS. - -1. Definitions - - a. **"Adaptation"** means a work based upon the Work, or upon the Work and other pre-existing works, such as a translation, adaptation, derivative work, arrangement of music or other alterations of a literary or artistic work, or phonogram or performance and includes cinematographic adaptations or any other form in which the Work may be recast, transformed, or adapted including in any form recognizably derived from the original, except that a work that constitutes a Collection will not be considered an Adaptation for the purpose of this License. For the avoidance of doubt, where the Work is a musical work, performance or phonogram, the synchronization of the Work in timed-relation with a moving image ("synching") will be considered an Adaptation for the purpose of this License. - - b. **"Collection"** means a collection of literary or artistic works, such as encyclopedias and anthologies, or performances, phonograms or broadcasts, or other works or subject matter other than works listed in Section 1(f) below, which, by reason of the selection and arrangement of their contents, constitute intellectual creations, in which the Work is included in its entirety in unmodified form along with one or more other contributions, each constituting separate and independent works in themselves, which together are assembled into a collective whole. A work that constitutes a Collection will not be considered an Adaptation (as defined below) for the purposes of this License. - - c. **"Creative Commons Compatible License"** means a license that is listed at http://creativecommons.org/compatiblelicenses that has been approved by Creative Commons as being essentially equivalent to this License, including, at a minimum, because that license: (i) contains terms that have the same purpose, meaning and effect as the License Elements of this License; and, (ii) explicitly permits the relicensing of adaptations of works made available under that license under this License or a Creative Commons jurisdiction license with the same License Elements as this License. - - d. **"Distribute"** means to make available to the public the original and copies of the Work or Adaptation, as appropriate, through sale or other transfer of ownership. - - e. **"License Elements"** means the following high-level license attributes as selected by Licensor and indicated in the title of this License: Attribution, ShareAlike. - - f. **"Licensor"** means the individual, individuals, entity or entities that offer(s) the Work under the terms of this License. - - g. **"Original Author"** means, in the case of a literary or artistic work, the individual, individuals, entity or entities who created the Work or if no individual or entity can be identified, the publisher; and in addition (i) in the case of a performance the actors, singers, musicians, dancers, and other persons who act, sing, deliver, declaim, play in, interpret or otherwise perform literary or artistic works or expressions of folklore; (ii) in the case of a phonogram the producer being the person or legal entity who first fixes the sounds of a performance or other sounds; and, (iii) in the case of broadcasts, the organization that transmits the broadcast. - - h. **"Work"** means the literary and/or artistic work offered under the terms of this License including without limitation any production in the literary, scientific and artistic domain, whatever may be the mode or form of its expression including digital form, such as a book, pamphlet and other writing; a lecture, address, sermon or other work of the same nature; a dramatic or dramatico-musical work; a choreographic work or entertainment in dumb show; a musical composition with or without words; a cinematographic work to which are assimilated works expressed by a process analogous to cinematography; a work of drawing, painting, architecture, sculpture, engraving or lithography; a photographic work to which are assimilated works expressed by a process analogous to photography; a work of applied art; an illustration, map, plan, sketch or three-dimensional work relative to geography, topography, architecture or science; a performance; a broadcast; a phonogram; a compilation of data to the extent it is protected as a copyrightable work; or a work performed by a variety or circus performer to the extent it is not otherwise considered a literary or artistic work. - - i. **"You"** means an individual or entity exercising rights under this License who has not previously violated the terms of this License with respect to the Work, or who has received express permission from the Licensor to exercise rights under this License despite a previous violation. - - j. **"Publicly Perform"** means to perform public recitations of the Work and to communicate to the public those public recitations, by any means or process, including by wire or wireless means or public digital performances; to make available to the public Works in such a way that members of the public may access these Works from a place and at a place individually chosen by them; to perform the Work to the public by any means or process and the communication to the public of the performances of the Work, including by public digital performance; to broadcast and rebroadcast the Work by any means including signs, sounds or images. - - k. **"Reproduce"** means to make copies of the Work by any means including without limitation by sound or visual recordings and the right of fixation and reproducing fixations of the Work, including storage of a protected performance or phonogram in digital form or other electronic medium. - -2. Fair Dealing Rights - - Nothing in this License is intended to reduce, limit, or restrict any uses free from copyright or rights arising from limitations or exceptions that are provided for in connection with the copyright protection under copyright law or other applicable laws. - -3. License Grant - - Subject to the terms and conditions of this License, Licensor hereby grants You a worldwide, royalty-free, non-exclusive, perpetual (for the duration of the applicable copyright) license to exercise the rights in the Work as stated below: - - a. to Reproduce the Work, to incorporate the Work into one or more Collections, and to Reproduce the Work as incorporated in the Collections; - - b. to create and Reproduce Adaptations provided that any such Adaptation, including any translation in any medium, takes reasonable steps to clearly label, demarcate or otherwise identify that changes were made to the original Work. For example, a translation could be marked "The original work was translated from English to Spanish," or a modification could indicate "The original work has been modified."; - - c. to Distribute and Publicly Perform the Work including as incorporated in Collections; and, - - d. to Distribute and Publicly Perform Adaptations. - - e. For the avoidance of doubt: - - i. **Non-waivable Compulsory License Schemes**. In those jurisdictions in which the right to collect royalties through any statutory or compulsory licensing scheme cannot be waived, the Licensor reserves the exclusive right to collect such royalties for any exercise by You of the rights granted under this License; - - ii. **Waivable Compulsory License Schemes**. In those jurisdictions in which the right to collect royalties through any statutory or compulsory licensing scheme can be waived, the Licensor waives the exclusive right to collect such royalties for any exercise by You of the rights granted under this License; and, - - iii. **Voluntary License Schemes**. The Licensor waives the right to collect royalties, whether individually or, in the event that the Licensor is a member of a collecting society that administers voluntary licensing schemes, via that society, from any exercise by You of the rights granted under this License. - - The above rights may be exercised in all media and formats whether now known or hereafter devised. The above rights include the right to make such modifications as are technically necessary to exercise the rights in other media and formats. Subject to Section 8(f), all rights not expressly granted by Licensor are hereby reserved. - -4. Restrictions - - The license granted in Section 3 above is expressly made subject to and limited by the following restrictions: - - a. You may Distribute or Publicly Perform the Work only under the terms of this License. You must include a copy of, or the Uniform Resource Identifier (URI) for, this License with every copy of the Work You Distribute or Publicly Perform. You may not offer or impose any terms on the Work that restrict the terms of this License or the ability of the recipient of the Work to exercise the rights granted to that recipient under the terms of the License. You may not sublicense the Work. You must keep intact all notices that refer to this License and to the disclaimer of warranties with every copy of the Work You Distribute or Publicly Perform. When You Distribute or Publicly Perform the Work, You may not impose any effective technological measures on the Work that restrict the ability of a recipient of the Work from You to exercise the rights granted to that recipient under the terms of the License. This Section 4(a) applies to the Work as incorporated in a Collection, but this does not require the Collection apart from the Work itself to be made subject to the terms of this License. If You create a Collection, upon notice from any Licensor You must, to the extent practicable, remove from the Collection any credit as required by Section 4(c), as requested. If You create an Adaptation, upon notice from any Licensor You must, to the extent practicable, remove from the Adaptation any credit as required by Section 4(c), as requested. - - b. You may Distribute or Publicly Perform an Adaptation only under the terms of: (i) this License; (ii) a later version of this License with the same License Elements as this License; (iii) a Creative Commons jurisdiction license (either this or a later license version) that contains the same License Elements as this License (e.g., Attribution-ShareAlike 3.0 US)); (iv) a Creative Commons Compatible License. If you license the Adaptation under one of the licenses mentioned in (iv), you must comply with the terms of that license. If you license the Adaptation under the terms of any of the licenses mentioned in (i), (ii) or (iii) (the "Applicable License"), you must comply with the terms of the Applicable License generally and the following provisions: (I) You must include a copy of, or the URI for, the Applicable License with every copy of each Adaptation You Distribute or Publicly Perform; (II) You may not offer or impose any terms on the Adaptation that restrict the terms of the Applicable License or the ability of the recipient of the Adaptation to exercise the rights granted to that recipient under the terms of the Applicable License; (III) You must keep intact all notices that refer to the Applicable License and to the disclaimer of warranties with every copy of the Work as included in the Adaptation You Distribute or Publicly Perform; (IV) when You Distribute or Publicly Perform the Adaptation, You may not impose any effective technological measures on the Adaptation that restrict the ability of a recipient of the Adaptation from You to exercise the rights granted to that recipient under the terms of the Applicable License. This Section 4(b) applies to the Adaptation as incorporated in a Collection, but this does not require the Collection apart from the Adaptation itself to be made subject to the terms of the Applicable License. - - c. If You Distribute, or Publicly Perform the Work or any Adaptations or Collections, You must, unless a request has been made pursuant to Section 4(a), keep intact all copyright notices for the Work and provide, reasonable to the medium or means You are utilizing: (i) the name of the Original Author (or pseudonym, if applicable) if supplied, and/or if the Original Author and/or Licensor designate another party or parties (e.g., a sponsor institute, publishing entity, journal) for attribution ("Attribution Parties") in Licensor's copyright notice, terms of service or by other reasonable means, the name of such party or parties; (ii) the title of the Work if supplied; (iii) to the extent reasonably practicable, the URI, if any, that Licensor specifies to be associated with the Work, unless such URI does not refer to the copyright notice or licensing information for the Work; and (iv) , consistent with Ssection 3(b), in the case of an Adaptation, a credit identifying the use of the Work in the Adaptation (e.g., "French translation of the Work by Original Author," or "Screenplay based on original Work by Original Author"). The credit required by this Section 4(c) may be implemented in any reasonable manner; provided, however, that in the case of a Adaptation or Collection, at a minimum such credit will appear, if a credit for all contributing authors of the Adaptation or Collection appears, then as part of these credits and in a manner at least as prominent as the credits for the other contributing authors. For the avoidance of doubt, You may only use the credit required by this Section for the purpose of attribution in the manner set out above and, by exercising Your rights under this License, You may not implicitly or explicitly assert or imply any connection with, sponsorship or endorsement by the Original Author, Licensor and/or Attribution Parties, as appropriate, of You or Your use of the Work, without the separate, express prior written permission of the Original Author, Licensor and/or Attribution Parties. - - d. Except as otherwise agreed in writing by the Licensor or as may be otherwise permitted by applicable law, if You Reproduce, Distribute or Publicly Perform the Work either by itself or as part of any Adaptations or Collections, You must not distort, mutilate, modify or take other derogatory action in relation to the Work which would be prejudicial to the Original Author's honor or reputation. Licensor agrees that in those jurisdictions (e.g. Japan), in which any exercise of the right granted in Section 3(b) of this License (the right to make Adaptations) would be deemed to be a distortion, mutilation, modification or other derogatory action prejudicial to the Original Author's honor and reputation, the Licensor will waive or not assert, as appropriate, this Section, to the fullest extent permitted by the applicable national law, to enable You to reasonably exercise Your right under Section 3(b) of this License (right to make Adaptations) but not otherwise. - -5. Representations, Warranties and Disclaimer - - UNLESS OTHERWISE MUTUALLY AGREED TO BY THE PARTIES IN WRITING, LICENSOR OFFERS THE WORK AS-IS AND MAKES NO REPRESENTATIONS OR WARRANTIES OF ANY KIND CONCERNING THE WORK, EXPRESS, IMPLIED, STATUTORY OR OTHERWISE, INCLUDING, WITHOUT LIMITATION, WARRANTIES OF TITLE, MERCHANTIBILITY, FITNESS FOR A PARTICULAR PURPOSE, NONINFRINGEMENT, OR THE ABSENCE OF LATENT OR OTHER DEFECTS, ACCURACY, OR THE PRESENCE OF ABSENCE OF ERRORS, WHETHER OR NOT DISCOVERABLE. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OF IMPLIED WARRANTIES, SO SUCH EXCLUSION MAY NOT APPLY TO YOU. - -6. Limitation on Liability - - EXCEPT TO THE EXTENT REQUIRED BY APPLICABLE LAW, IN NO EVENT WILL LICENSOR BE LIABLE TO YOU ON ANY LEGAL THEORY FOR ANY SPECIAL, INCIDENTAL, CONSEQUENTIAL, PUNITIVE OR EXEMPLARY DAMAGES ARISING OUT OF THIS LICENSE OR THE USE OF THE WORK, EVEN IF LICENSOR HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. - -7. Termination - - a. This License and the rights granted hereunder will terminate automatically upon any breach by You of the terms of this License. Individuals or entities who have received Adaptations or Collections from You under this License, however, will not have their licenses terminated provided such individuals or entities remain in full compliance with those licenses. Sections 1, 2, 5, 6, 7, and 8 will survive any termination of this License. - - b. Subject to the above terms and conditions, the license granted here is perpetual (for the duration of the applicable copyright in the Work). Notwithstanding the above, Licensor reserves the right to release the Work under different license terms or to stop distributing the Work at any time; provided, however that any such election will not serve to withdraw this License (or any other license that has been, or is required to be, granted under the terms of this License), and this License will continue in full force and effect unless terminated as stated above. - -8. Miscellaneous - - a. Each time You Distribute or Publicly Perform the Work or a Collection, the Licensor offers to the recipient a license to the Work on the same terms and conditions as the license granted to You under this License. - - b. Each time You Distribute or Publicly Perform an Adaptation, Licensor offers to the recipient a license to the original Work on the same terms and conditions as the license granted to You under this License. - - c. If any provision of this License is invalid or unenforceable under applicable law, it shall not affect the validity or enforceability of the remainder of the terms of this License, and without further action by the parties to this agreement, such provision shall be reformed to the minimum extent necessary to make such provision valid and enforceable. - - d. No term or provision of this License shall be deemed waived and no breach consented to unless such waiver or consent shall be in writing and signed by the party to be charged with such waiver or consent. - - e. This License constitutes the entire agreement between the parties with respect to the Work licensed here. There are no understandings, agreements or representations with respect to the Work not specified here. Licensor shall not be bound by any additional provisions that may appear in any communication from You. This License may not be modified without the mutual written agreement of the Licensor and You. - - f. The rights granted under, and the subject matter referenced, in this License were drafted utilizing the terminology of the Berne Convention for the Protection of Literary and Artistic Works (as amended on September 28, 1979), the Rome Convention of 1961, the WIPO Copyright Treaty of 1996, the WIPO Performances and Phonograms Treaty of 1996 and the Universal Copyright Convention (as revised on July 24, 1971). These rights and subject matter take effect in the relevant jurisdiction in which the License terms are sought to be enforced according to the corresponding provisions of the implementation of those treaty provisions in the applicable national law. If the standard suite of rights granted under applicable copyright law includes additional rights not granted under this License, such additional rights are deemed to be included in the License; this License is not intended to restrict the license of any rights under applicable law. - ->**SIDEBAR** ->Creative Commons Notice -> ->Creative Commons is not a party to this License, and makes no warranty whatsoever in connection with the Work. Creative Commons will not be liable to You or any party on any legal theory for any damages whatsoever, including without limitation any general, special, incidental or consequential damages arising in connection to this license. Notwithstanding the foregoing two (2) sentences, if Creative Commons has expressly identified itself as the Licensor hereunder, it shall have all rights and obligations of Licensor. -> ->Except for the limited purpose of indicating to the public that the Work is licensed under the CCPL, Creative Commons does not authorize the use by either party of the trademark "Creative Commons" or any related trademark or logo of Creative Commons without the prior written consent of Creative Commons. Any permitted use will be in compliance with Creative Commons' then-current trademark usage guidelines, as may be published on its website or otherwise made available upon request from time to time. For the avoidance of doubt, this trademark restriction does not form part of the License. -> ->Creative Commons may be contacted at http://creativecommons.org/. diff --git a/thirdparty/symfony-yaml/lib/sfYaml.php b/thirdparty/symfony-yaml/lib/sfYaml.php deleted file mode 100644 index 1d89ccc97..000000000 --- a/thirdparty/symfony-yaml/lib/sfYaml.php +++ /dev/null @@ -1,135 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -/** - * sfYaml offers convenience methods to load and dump YAML. - * - * @package symfony - * @subpackage yaml - * @author Fabien Potencier - * @version SVN: $Id: sfYaml.class.php 8988 2008-05-15 20:24:26Z fabien $ - */ -class sfYaml -{ - static protected - $spec = '1.2'; - - /** - * Sets the YAML specification version to use. - * - * @param string $version The YAML specification version - */ - static public function setSpecVersion($version) - { - if (!in_array($version, array('1.1', '1.2'))) - { - throw new InvalidArgumentException(sprintf('Version %s of the YAML specifications is not supported', $version)); - } - - self::$spec = $version; - } - - /** - * Gets the YAML specification version to use. - * - * @return string The YAML specification version - */ - static public function getSpecVersion() - { - return self::$spec; - } - - /** - * Loads YAML into a PHP array. - * - * The load method, when supplied with a YAML stream (string or file), - * will do its best to convert YAML in a file into a PHP array. - * - * Usage: - * - * $array = sfYaml::load('config.yml'); - * print_r($array); - * - * - * @param string $input Path of YAML file or string containing YAML - * - * @return array The YAML converted to a PHP array - * - * @throws InvalidArgumentException If the YAML is not valid - */ - public static function load($input) - { - $file = ''; - - // if input is a file, process it - if (strpos($input, "\n") === false && is_file($input)) - { - $file = $input; - - ob_start(); - $retval = include($input); - $content = ob_get_clean(); - - // if an array is returned by the config file assume it's in plain php form else in YAML - $input = is_array($retval) ? $retval : $content; - } - - // if an array is returned by the config file assume it's in plain php form else in YAML - if (is_array($input)) - { - return $input; - } - - require_once dirname(__FILE__).'/sfYamlParser.php'; - - $yaml = new sfYamlParser(); - - try - { - $ret = $yaml->parse($input); - } - catch (Exception $e) - { - throw new InvalidArgumentException(sprintf('Unable to parse %s: %s', $file ? sprintf('file "%s"', $file) : 'string', $e->getMessage())); - } - - return $ret; - } - - /** - * Dumps a PHP array to a YAML string. - * - * The dump method, when supplied with an array, will do its best - * to convert the array into friendly YAML. - * - * @param array $array PHP array - * @param integer $inline The level where you switch to inline YAML - * - * @return string A YAML string representing the original PHP array - */ - public static function dump($array, $inline = 2) - { - require_once dirname(__FILE__).'/sfYamlDumper.php'; - - $yaml = new sfYamlDumper(); - - return $yaml->dump($array, $inline); - } -} - -/** - * Wraps echo to automatically provide a newline. - * - * @param string $string The string to echo with new line - */ -function echoln($string) -{ - echo $string."\n"; -} diff --git a/thirdparty/symfony-yaml/lib/sfYamlDumper.php b/thirdparty/symfony-yaml/lib/sfYamlDumper.php deleted file mode 100644 index 0ada2b37d..000000000 --- a/thirdparty/symfony-yaml/lib/sfYamlDumper.php +++ /dev/null @@ -1,60 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -require_once(dirname(__FILE__).'/sfYamlInline.php'); - -/** - * sfYamlDumper dumps PHP variables to YAML strings. - * - * @package symfony - * @subpackage yaml - * @author Fabien Potencier - * @version SVN: $Id: sfYamlDumper.class.php 10575 2008-08-01 13:08:42Z nicolas $ - */ -class sfYamlDumper -{ - /** - * Dumps a PHP value to YAML. - * - * @param mixed $input The PHP value - * @param integer $inline The level where you switch to inline YAML - * @param integer $indent The level o indentation indentation (used internally) - * - * @return string The YAML representation of the PHP value - */ - public function dump($input, $inline = 0, $indent = 0) - { - $output = ''; - $prefix = $indent ? str_repeat(' ', $indent) : ''; - - if ($inline <= 0 || !is_array($input) || empty($input)) - { - $output .= $prefix.sfYamlInline::dump($input); - } - else - { - $isAHash = array_keys($input) !== range(0, count($input) - 1); - - foreach ($input as $key => $value) - { - $willBeInlined = $inline - 1 <= 0 || !is_array($value) || empty($value); - - $output .= sprintf('%s%s%s%s', - $prefix, - $isAHash ? sfYamlInline::dump($key).':' : '-', - $willBeInlined ? ' ' : "\n", - $this->dump($value, $inline - 1, $willBeInlined ? 0 : $indent + 2) - ).($willBeInlined ? "\n" : ''); - } - } - - return $output; - } -} diff --git a/thirdparty/symfony-yaml/lib/sfYamlInline.php b/thirdparty/symfony-yaml/lib/sfYamlInline.php deleted file mode 100644 index a88cbb3d9..000000000 --- a/thirdparty/symfony-yaml/lib/sfYamlInline.php +++ /dev/null @@ -1,442 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -require_once dirname(__FILE__).'/sfYaml.php'; - -/** - * sfYamlInline implements a YAML parser/dumper for the YAML inline syntax. - * - * @package symfony - * @subpackage yaml - * @author Fabien Potencier - * @version SVN: $Id: sfYamlInline.class.php 16177 2009-03-11 08:32:48Z fabien $ - */ -class sfYamlInline -{ - const REGEX_QUOTED_STRING = '(?:"([^"\\\\]*(?:\\\\.[^"\\\\]*)*)"|\'([^\']*(?:\'\'[^\']*)*)\')'; - - /** - * Convert a YAML string to a PHP array. - * - * @param string $value A YAML string - * - * @return array A PHP array representing the YAML string - */ - static public function load($value) - { - $value = trim($value); - - if (0 == strlen($value)) - { - return ''; - } - - if (function_exists('mb_internal_encoding') && ((int) ini_get('mbstring.func_overload')) & 2) - { - $mbEncoding = mb_internal_encoding(); - mb_internal_encoding('ASCII'); - } - - switch ($value[0]) - { - case '[': - $result = self::parseSequence($value); - break; - case '{': - $result = self::parseMapping($value); - break; - default: - $result = self::parseScalar($value); - } - - if (isset($mbEncoding)) - { - mb_internal_encoding($mbEncoding); - } - - return $result; - } - - /** - * Dumps a given PHP variable to a YAML string. - * - * @param mixed $value The PHP variable to convert - * - * @return string The YAML string representing the PHP array - */ - static public function dump($value) - { - if ('1.1' === sfYaml::getSpecVersion()) - { - $trueValues = array('true', 'on', '+', 'yes', 'y'); - $falseValues = array('false', 'off', '-', 'no', 'n'); - } - else - { - $trueValues = array('true'); - $falseValues = array('false'); - } - - switch (true) - { - case is_resource($value): - throw new InvalidArgumentException('Unable to dump PHP resources in a YAML file.'); - case is_object($value): - return '!!php/object:'.serialize($value); - case is_array($value): - return self::dumpArray($value); - case null === $value: - return 'null'; - case true === $value: - return 'true'; - case false === $value: - return 'false'; - case ctype_digit($value): - return is_string($value) ? "'$value'" : (int) $value; - case is_numeric($value): - return is_infinite($value) ? str_ireplace('INF', '.Inf', strval($value)) : (is_string($value) ? "'$value'" : $value); - case false !== strpos($value, "\n") || false !== strpos($value, "\r"): - return sprintf('"%s"', str_replace(array('"', "\n", "\r"), array('\\"', '\n', '\r'), $value)); - case preg_match('/[ \s \' " \: \{ \} \[ \] , & \* \# \?] | \A[ - ? | < > = ! % @ ` ]/x', $value): - return sprintf("'%s'", str_replace('\'', '\'\'', $value)); - case '' == $value: - return "''"; - case preg_match(self::getTimestampRegex(), $value): - return "'$value'"; - case in_array(strtolower($value), $trueValues): - return "'$value'"; - case in_array(strtolower($value), $falseValues): - return "'$value'"; - case in_array(strtolower($value), array('null', '~')): - return "'$value'"; - default: - return $value; - } - } - - /** - * Dumps a PHP array to a YAML string. - * - * @param array $value The PHP array to dump - * - * @return string The YAML string representing the PHP array - */ - static protected function dumpArray($value) - { - // array - $keys = array_keys($value); - if ( - (1 == count($keys) && '0' == $keys[0]) - || - (count($keys) > 1 && array_reduce($keys, create_function('$v,$w', 'return (integer) $v + $w;'), 0) == count($keys) * (count($keys) - 1) / 2)) - { - $output = array(); - foreach ($value as $val) - { - $output[] = self::dump($val); - } - - return sprintf('[%s]', implode(', ', $output)); - } - - // mapping - $output = array(); - foreach ($value as $key => $val) - { - $output[] = sprintf('%s: %s', self::dump($key), self::dump($val)); - } - - return sprintf('{ %s }', implode(', ', $output)); - } - - /** - * Parses a scalar to a YAML string. - * - * @param scalar $scalar - * @param string $delimiters - * @param array $stringDelimiter - * @param integer $i - * @param boolean $evaluate - * - * @return string A YAML string - */ - static public function parseScalar($scalar, $delimiters = null, $stringDelimiters = array('"', "'"), &$i = 0, $evaluate = true) - { - if (in_array($scalar[$i], $stringDelimiters)) - { - // quoted scalar - $output = self::parseQuotedScalar($scalar, $i); - } - else - { - // "normal" string - if (!$delimiters) - { - $output = substr($scalar, $i); - $i += strlen($output); - - // remove comments - if (false !== $strpos = strpos($output, ' #')) - { - $output = rtrim(substr($output, 0, $strpos)); - } - } - else if (preg_match('/^(.+?)('.implode('|', $delimiters).')/', substr($scalar, $i), $match)) - { - $output = $match[1]; - $i += strlen($output); - } - else - { - throw new InvalidArgumentException(sprintf('Malformed inline YAML string (%s).', $scalar)); - } - - $output = $evaluate ? self::evaluateScalar($output) : $output; - } - - return $output; - } - - /** - * Parses a quoted scalar to YAML. - * - * @param string $scalar - * @param integer $i - * - * @return string A YAML string - */ - static protected function parseQuotedScalar($scalar, &$i) - { - if (!preg_match('/'.self::REGEX_QUOTED_STRING.'/Au', substr($scalar, $i), $match)) - { - throw new InvalidArgumentException(sprintf('Malformed inline YAML string (%s).', substr($scalar, $i))); - } - - $output = substr($match[0], 1, strlen($match[0]) - 2); - - if ('"' == $scalar[$i]) - { - // evaluate the string - $output = str_replace(array('\\"', '\\n', '\\r'), array('"', "\n", "\r"), $output); - } - else - { - // unescape ' - $output = str_replace('\'\'', '\'', $output); - } - - $i += strlen($match[0]); - - return $output; - } - - /** - * Parses a sequence to a YAML string. - * - * @param string $sequence - * @param integer $i - * - * @return string A YAML string - */ - static protected function parseSequence($sequence, &$i = 0) - { - $output = array(); - $len = strlen($sequence); - $i += 1; - - // [foo, bar, ...] - while ($i < $len) - { - switch ($sequence[$i]) - { - case '[': - // nested sequence - $output[] = self::parseSequence($sequence, $i); - break; - case '{': - // nested mapping - $output[] = self::parseMapping($sequence, $i); - break; - case ']': - return $output; - case ',': - case ' ': - break; - default: - $isQuoted = in_array($sequence[$i], array('"', "'")); - $value = self::parseScalar($sequence, array(',', ']'), array('"', "'"), $i); - - if (!$isQuoted && false !== strpos($value, ': ')) - { - // embedded mapping? - try - { - $value = self::parseMapping('{'.$value.'}'); - } - catch (InvalidArgumentException $e) - { - // no, it's not - } - } - - $output[] = $value; - - --$i; - } - - ++$i; - } - - throw new InvalidArgumentException(sprintf('Malformed inline YAML string %s', $sequence)); - } - - /** - * Parses a mapping to a YAML string. - * - * @param string $mapping - * @param integer $i - * - * @return string A YAML string - */ - static protected function parseMapping($mapping, &$i = 0) - { - $output = array(); - $len = strlen($mapping); - $i += 1; - - // {foo: bar, bar:foo, ...} - while ($i < $len) - { - switch ($mapping[$i]) - { - case ' ': - case ',': - ++$i; - continue 2; - case '}': - return $output; - } - - // key - $key = self::parseScalar($mapping, array(':', ' '), array('"', "'"), $i, false); - - // value - $done = false; - while ($i < $len) - { - switch ($mapping[$i]) - { - case '[': - // nested sequence - $output[$key] = self::parseSequence($mapping, $i); - $done = true; - break; - case '{': - // nested mapping - $output[$key] = self::parseMapping($mapping, $i); - $done = true; - break; - case ':': - case ' ': - break; - default: - $output[$key] = self::parseScalar($mapping, array(',', '}'), array('"', "'"), $i); - $done = true; - --$i; - } - - ++$i; - - if ($done) - { - continue 2; - } - } - } - - throw new InvalidArgumentException(sprintf('Malformed inline YAML string %s', $mapping)); - } - - /** - * Evaluates scalars and replaces magic values. - * - * @param string $scalar - * - * @return string A YAML string - */ - static protected function evaluateScalar($scalar) - { - $scalar = trim($scalar); - - if ('1.1' === sfYaml::getSpecVersion()) - { - $trueValues = array('true', 'on', '+', 'yes', 'y'); - $falseValues = array('false', 'off', '-', 'no', 'n'); - } - else - { - $trueValues = array('true'); - $falseValues = array('false'); - } - - switch (true) - { - case 'null' == strtolower($scalar): - case '' == $scalar: - case '~' == $scalar: - return null; - case 0 === strpos($scalar, '!str'): - return (string) substr($scalar, 5); - case 0 === strpos($scalar, '! '): - return intval(self::parseScalar(substr($scalar, 2))); - case 0 === strpos($scalar, '!!php/object:'): - return unserialize(substr($scalar, 13)); - case ctype_digit($scalar): - $raw = $scalar; - $cast = intval($scalar); - return '0' == $scalar[0] ? octdec($scalar) : (((string) $raw == (string) $cast) ? $cast : $raw); - case in_array(strtolower($scalar), $trueValues): - return true; - case in_array(strtolower($scalar), $falseValues): - return false; - case is_numeric($scalar): - return '0x' == $scalar[0].$scalar[1] ? hexdec($scalar) : floatval($scalar); - case 0 == strcasecmp($scalar, '.inf'): - case 0 == strcasecmp($scalar, '.NaN'): - return -log(0); - case 0 == strcasecmp($scalar, '-.inf'): - return log(0); - case preg_match('/^(-|\+)?[0-9,]+(\.[0-9]+)?$/', $scalar): - return floatval(str_replace(',', '', $scalar)); - case preg_match(self::getTimestampRegex(), $scalar): - return strtotime($scalar); - default: - return (string) $scalar; - } - } - - static protected function getTimestampRegex() - { - return <<[0-9][0-9][0-9][0-9]) - -(?P[0-9][0-9]?) - -(?P[0-9][0-9]?) - (?:(?:[Tt]|[ \t]+) - (?P[0-9][0-9]?) - :(?P[0-9][0-9]) - :(?P[0-9][0-9]) - (?:\.(?P[0-9]*))? - (?:[ \t]*(?PZ|(?P[-+])(?P[0-9][0-9]?) - (?::(?P[0-9][0-9]))?))?)? - $~x -EOF; - } -} diff --git a/thirdparty/symfony-yaml/lib/sfYamlParser.php b/thirdparty/symfony-yaml/lib/sfYamlParser.php deleted file mode 100644 index cc6ba609e..000000000 --- a/thirdparty/symfony-yaml/lib/sfYamlParser.php +++ /dev/null @@ -1,622 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -require_once(dirname(__FILE__).'/sfYamlInline.php'); - -if (!defined('PREG_BAD_UTF8_OFFSET_ERROR')) -{ - define('PREG_BAD_UTF8_OFFSET_ERROR', 5); -} - -/** - * sfYamlParser parses YAML strings to convert them to PHP arrays. - * - * @package symfony - * @subpackage yaml - * @author Fabien Potencier - * @version SVN: $Id: sfYamlParser.class.php 10832 2008-08-13 07:46:08Z fabien $ - */ -class sfYamlParser -{ - protected - $offset = 0, - $lines = array(), - $currentLineNb = -1, - $currentLine = '', - $refs = array(); - - /** - * Constructor - * - * @param integer $offset The offset of YAML document (used for line numbers in error messages) - */ - public function __construct($offset = 0) - { - $this->offset = $offset; - } - - /** - * Parses a YAML string to a PHP value. - * - * @param string $value A YAML string - * - * @return mixed A PHP value - * - * @throws InvalidArgumentException If the YAML is not valid - */ - public function parse($value) - { - $this->currentLineNb = -1; - $this->currentLine = ''; - $this->lines = explode("\n", $this->cleanup($value)); - - if (function_exists('mb_internal_encoding') && ((int) ini_get('mbstring.func_overload')) & 2) - { - $mbEncoding = mb_internal_encoding(); - mb_internal_encoding('UTF-8'); - } - - $data = array(); - while ($this->moveToNextLine()) - { - if ($this->isCurrentLineEmpty()) - { - continue; - } - - // tab? - if (preg_match('#^\t+#', $this->currentLine)) - { - throw new InvalidArgumentException(sprintf('A YAML file cannot contain tabs as indentation at line %d (%s).', $this->getRealCurrentLineNb() + 1, $this->currentLine)); - } - - $isRef = $isInPlace = $isProcessed = false; - if (preg_match('#^\-((?P\s+)(?P.+?))?\s*$#u', $this->currentLine, $values)) - { - if (isset($values['value']) && preg_match('#^&(?P[^ ]+) *(?P.*)#u', $values['value'], $matches)) - { - $isRef = $matches['ref']; - $values['value'] = $matches['value']; - } - - // array - if (!isset($values['value']) || '' == trim($values['value'], ' ') || 0 === strpos(ltrim($values['value'], ' '), '#')) - { - $c = $this->getRealCurrentLineNb() + 1; - $parser = new sfYamlParser($c); - $parser->refs =& $this->refs; - $data[] = $parser->parse($this->getNextEmbedBlock()); - } - else - { - if (isset($values['leadspaces']) - && ' ' == $values['leadspaces'] - && preg_match('#^(?P'.sfYamlInline::REGEX_QUOTED_STRING.'|[^ \'"\{].*?) *\:(\s+(?P.+?))?\s*$#u', $values['value'], $matches)) - { - // this is a compact notation element, add to next block and parse - $c = $this->getRealCurrentLineNb(); - $parser = new sfYamlParser($c); - $parser->refs =& $this->refs; - - $block = $values['value']; - if (!$this->isNextLineIndented()) - { - $block .= "\n".$this->getNextEmbedBlock($this->getCurrentLineIndentation() + 2); - } - - $data[] = $parser->parse($block); - } - else - { - $data[] = $this->parseValue($values['value']); - } - } - } - else if (preg_match('#^(?P'.sfYamlInline::REGEX_QUOTED_STRING.'|[^ \'"].*?) *\:(\s+(?P.+?))?\s*$#u', $this->currentLine, $values)) - { - $key = sfYamlInline::parseScalar($values['key']); - - if ('<<' === $key) - { - if (isset($values['value']) && '*' === substr($values['value'], 0, 1)) - { - $isInPlace = substr($values['value'], 1); - if (!array_key_exists($isInPlace, $this->refs)) - { - throw new InvalidArgumentException(sprintf('Reference "%s" does not exist at line %s (%s).', $isInPlace, $this->getRealCurrentLineNb() + 1, $this->currentLine)); - } - } - else - { - if (isset($values['value']) && $values['value'] !== '') - { - $value = $values['value']; - } - else - { - $value = $this->getNextEmbedBlock(); - } - $c = $this->getRealCurrentLineNb() + 1; - $parser = new sfYamlParser($c); - $parser->refs =& $this->refs; - $parsed = $parser->parse($value); - - $merged = array(); - if (!is_array($parsed)) - { - throw new InvalidArgumentException(sprintf("YAML merge keys used with a scalar value instead of an array at line %s (%s)", $this->getRealCurrentLineNb() + 1, $this->currentLine)); - } - else if (isset($parsed[0])) - { - // Numeric array, merge individual elements - foreach (array_reverse($parsed) as $parsedItem) - { - if (!is_array($parsedItem)) - { - throw new InvalidArgumentException(sprintf("Merge items must be arrays at line %s (%s).", $this->getRealCurrentLineNb() + 1, $parsedItem)); - } - $merged = array_merge($parsedItem, $merged); - } - } - else - { - // Associative array, merge - $merged = array_merge($merged, $parsed); - } - - $isProcessed = $merged; - } - } - else if (isset($values['value']) && preg_match('#^&(?P[^ ]+) *(?P.*)#u', $values['value'], $matches)) - { - $isRef = $matches['ref']; - $values['value'] = $matches['value']; - } - - if ($isProcessed) - { - // Merge keys - $data = $isProcessed; - } - // hash - else if (!isset($values['value']) || '' == trim($values['value'], ' ') || 0 === strpos(ltrim($values['value'], ' '), '#')) - { - // if next line is less indented or equal, then it means that the current value is null - if ($this->isNextLineIndented()) - { - $data[$key] = null; - } - else - { - $c = $this->getRealCurrentLineNb() + 1; - $parser = new sfYamlParser($c); - $parser->refs =& $this->refs; - $data[$key] = $parser->parse($this->getNextEmbedBlock()); - } - } - else - { - if ($isInPlace) - { - $data = $this->refs[$isInPlace]; - } - else - { - $data[$key] = $this->parseValue($values['value']); - } - } - } - else - { - // 1-liner followed by newline - if (2 == count($this->lines) && empty($this->lines[1])) - { - $value = sfYamlInline::load($this->lines[0]); - if (is_array($value)) - { - $first = reset($value); - if ('*' === substr($first, 0, 1)) - { - $data = array(); - foreach ($value as $alias) - { - $data[] = $this->refs[substr($alias, 1)]; - } - $value = $data; - } - } - - if (isset($mbEncoding)) - { - mb_internal_encoding($mbEncoding); - } - - return $value; - } - - switch (preg_last_error()) - { - case PREG_INTERNAL_ERROR: - $error = 'Internal PCRE error on line'; - break; - case PREG_BACKTRACK_LIMIT_ERROR: - $error = 'pcre.backtrack_limit reached on line'; - break; - case PREG_RECURSION_LIMIT_ERROR: - $error = 'pcre.recursion_limit reached on line'; - break; - case PREG_BAD_UTF8_ERROR: - $error = 'Malformed UTF-8 data on line'; - break; - case PREG_BAD_UTF8_OFFSET_ERROR: - $error = 'Offset doesn\'t correspond to the begin of a valid UTF-8 code point on line'; - break; - default: - $error = 'Unable to parse line'; - } - - throw new InvalidArgumentException(sprintf('%s %d (%s).', $error, $this->getRealCurrentLineNb() + 1, $this->currentLine)); - } - - if ($isRef) - { - $this->refs[$isRef] = end($data); - } - } - - if (isset($mbEncoding)) - { - mb_internal_encoding($mbEncoding); - } - - return empty($data) ? null : $data; - } - - /** - * Returns the current line number (takes the offset into account). - * - * @return integer The current line number - */ - protected function getRealCurrentLineNb() - { - return $this->currentLineNb + $this->offset; - } - - /** - * Returns the current line indentation. - * - * @return integer The current line indentation - */ - protected function getCurrentLineIndentation() - { - return strlen($this->currentLine) - strlen(ltrim($this->currentLine, ' ')); - } - - /** - * Returns the next embed block of YAML. - * - * @param integer $indentation The indent level at which the block is to be read, or null for default - * - * @return string A YAML string - */ - protected function getNextEmbedBlock($indentation = null) - { - $this->moveToNextLine(); - - if (null === $indentation) - { - $newIndent = $this->getCurrentLineIndentation(); - - if (!$this->isCurrentLineEmpty() && 0 == $newIndent) - { - throw new InvalidArgumentException(sprintf('Indentation problem at line %d (%s)', $this->getRealCurrentLineNb() + 1, $this->currentLine)); - } - } - else - { - $newIndent = $indentation; - } - - $data = array(substr($this->currentLine, $newIndent)); - - while ($this->moveToNextLine()) - { - if ($this->isCurrentLineEmpty()) - { - if ($this->isCurrentLineBlank()) - { - $data[] = substr($this->currentLine, $newIndent); - } - - continue; - } - - $indent = $this->getCurrentLineIndentation(); - - if (preg_match('#^(?P *)$#', $this->currentLine, $match)) - { - // empty line - $data[] = $match['text']; - } - else if ($indent >= $newIndent) - { - $data[] = substr($this->currentLine, $newIndent); - } - else if (0 == $indent) - { - $this->moveToPreviousLine(); - - break; - } - else - { - throw new InvalidArgumentException(sprintf('Indentation problem at line %d (%s)', $this->getRealCurrentLineNb() + 1, $this->currentLine)); - } - } - - return implode("\n", $data); - } - - /** - * Moves the parser to the next line. - */ - protected function moveToNextLine() - { - if ($this->currentLineNb >= count($this->lines) - 1) - { - return false; - } - - $this->currentLine = $this->lines[++$this->currentLineNb]; - - return true; - } - - /** - * Moves the parser to the previous line. - */ - protected function moveToPreviousLine() - { - $this->currentLine = $this->lines[--$this->currentLineNb]; - } - - /** - * Parses a YAML value. - * - * @param string $value A YAML value - * - * @return mixed A PHP value - */ - protected function parseValue($value) - { - if ('*' === substr($value, 0, 1)) - { - if (false !== $pos = strpos($value, '#')) - { - $value = substr($value, 1, $pos - 2); - } - else - { - $value = substr($value, 1); - } - - if (!array_key_exists($value, $this->refs)) - { - throw new InvalidArgumentException(sprintf('Reference "%s" does not exist (%s).', $value, $this->currentLine)); - } - return $this->refs[$value]; - } - - if (preg_match('/^(?P\||>)(?P\+|\-|\d+|\+\d+|\-\d+|\d+\+|\d+\-)?(?P +#.*)?$/', $value, $matches)) - { - $modifiers = isset($matches['modifiers']) ? $matches['modifiers'] : ''; - - return $this->parseFoldedScalar($matches['separator'], preg_replace('#\d+#', '', $modifiers), intval(abs($modifiers))); - } - else - { - return sfYamlInline::load($value); - } - } - - /** - * Parses a folded scalar. - * - * @param string $separator The separator that was used to begin this folded scalar (| or >) - * @param string $indicator The indicator that was used to begin this folded scalar (+ or -) - * @param integer $indentation The indentation that was used to begin this folded scalar - * - * @return string The text value - */ - protected function parseFoldedScalar($separator, $indicator = '', $indentation = 0) - { - $separator = '|' == $separator ? "\n" : ' '; - $text = ''; - - $notEOF = $this->moveToNextLine(); - - while ($notEOF && $this->isCurrentLineBlank()) - { - $text .= "\n"; - - $notEOF = $this->moveToNextLine(); - } - - if (!$notEOF) - { - return ''; - } - - if (!preg_match('#^(?P'.($indentation ? str_repeat(' ', $indentation) : ' +').')(?P.*)$#u', $this->currentLine, $matches)) - { - $this->moveToPreviousLine(); - - return ''; - } - - $textIndent = $matches['indent']; - $previousIndent = 0; - - $text .= $matches['text'].$separator; - while ($this->currentLineNb + 1 < count($this->lines)) - { - $this->moveToNextLine(); - - if (preg_match('#^(?P {'.strlen($textIndent).',})(?P.+)$#u', $this->currentLine, $matches)) - { - if (' ' == $separator && $previousIndent != $matches['indent']) - { - $text = substr($text, 0, -1)."\n"; - } - $previousIndent = $matches['indent']; - - $text .= str_repeat(' ', $diff = strlen($matches['indent']) - strlen($textIndent)).$matches['text'].($diff ? "\n" : $separator); - } - else if (preg_match('#^(?P *)$#', $this->currentLine, $matches)) - { - $text .= preg_replace('#^ {1,'.strlen($textIndent).'}#', '', $matches['text'])."\n"; - } - else - { - $this->moveToPreviousLine(); - - break; - } - } - - if (' ' == $separator) - { - // replace last separator by a newline - $text = preg_replace('/ (\n*)$/', "\n$1", $text); - } - - switch ($indicator) - { - case '': - $text = preg_replace('#\n+$#s', "\n", $text); - break; - case '+': - break; - case '-': - $text = preg_replace('#\n+$#s', '', $text); - break; - } - - return $text; - } - - /** - * Returns true if the next line is indented. - * - * @return Boolean Returns true if the next line is indented, false otherwise - */ - protected function isNextLineIndented() - { - $currentIndentation = $this->getCurrentLineIndentation(); - $notEOF = $this->moveToNextLine(); - - while ($notEOF && $this->isCurrentLineEmpty()) - { - $notEOF = $this->moveToNextLine(); - } - - if (false === $notEOF) - { - return false; - } - - $ret = false; - if ($this->getCurrentLineIndentation() <= $currentIndentation) - { - $ret = true; - } - - $this->moveToPreviousLine(); - - return $ret; - } - - /** - * Returns true if the current line is blank or if it is a comment line. - * - * @return Boolean Returns true if the current line is empty or if it is a comment line, false otherwise - */ - protected function isCurrentLineEmpty() - { - return $this->isCurrentLineBlank() || $this->isCurrentLineComment(); - } - - /** - * Returns true if the current line is blank. - * - * @return Boolean Returns true if the current line is blank, false otherwise - */ - protected function isCurrentLineBlank() - { - return '' == trim($this->currentLine, ' '); - } - - /** - * Returns true if the current line is a comment line. - * - * @return Boolean Returns true if the current line is a comment line, false otherwise - */ - protected function isCurrentLineComment() - { - //checking explicitly the first char of the trim is faster than loops or strpos - $ltrimmedLine = ltrim($this->currentLine, ' '); - return $ltrimmedLine[0] === '#'; - } - - /** - * Cleanups a YAML string to be parsed. - * - * @param string $value The input YAML string - * - * @return string A cleaned up YAML string - */ - protected function cleanup($value) - { - $value = str_replace(array("\r\n", "\r"), "\n", $value); - - if (!preg_match("#\n$#", $value)) - { - $value .= "\n"; - } - - // strip YAML header - $count = 0; - $value = preg_replace('#^\%YAML[: ][\d\.]+.*\n#su', '', $value, -1, $count); - $this->offset += $count; - - // remove leading comments - $trimmedValue = preg_replace('#^(\#.*?\n)+#s', '', $value, -1, $count); - if ($count == 1) - { - // items have been removed, update the offset - $this->offset += substr_count($value, "\n") - substr_count($trimmedValue, "\n"); - $value = $trimmedValue; - } - - // remove start of the document marker (---) - $trimmedValue = preg_replace('#^\-\-\-.*?\n#s', '', $value, -1, $count); - if ($count == 1) - { - // items have been removed, update the offset - $this->offset += substr_count($value, "\n") - substr_count($trimmedValue, "\n"); - $value = $trimmedValue; - - // remove end of the document marker (...) - $value = preg_replace('#\.\.\.\s*$#s', '', $value); - } - - return $value; - } -} diff --git a/thirdparty/symfony-yaml/package.xml b/thirdparty/symfony-yaml/package.xml deleted file mode 100644 index e07ea3f8b..000000000 --- a/thirdparty/symfony-yaml/package.xml +++ /dev/null @@ -1,172 +0,0 @@ - - - YAML - pear.symfony-project.com - The Symfony YAML Component. - The Symfony YAML Component. - - Fabien Potencier - fabpot - fabien.potencier@symfony-project.org - yes - - 2011-02-22 - - 1.0.6 - 1.0.0 - - - stable - stable - - MIT license - - - - - - - - - - - - - - - - - - - - 5.2.4 - - - 1.4.1 - - - - - - - - - - - - - - - - - 1.0.6 - 1.0.0 - - - stable - stable - - 2010-02-22 - MIT - - * fabien: renamed doc files to avoid collision with pecl/yaml - - - - - 1.0.5 - 1.0.0 - - - stable - stable - - 2010-02-22 - MIT - - * indiyets: fixed package.xml - - - - - 1.0.4 - 1.0.0 - - - stable - stable - - 2010-11-29 - MIT - - * fabien: fixed parsing of simple inline documents - - - - - 1.0.3 - 1.0.0 - - - stable - stable - - 2010-04-06 - MIT - - * fabien: fixed YAML parser when mbstring.func_overload is used with an mbstring.internal_encoding different from ASCII - * fabien: fixed offset when the document use --- or the %YAML element - * fabien: added ? in the list of characters that trigger quoting (for compatibility with libyaml) - * fabien: added backtick to the list of characters that trigger quotes as it is reserved for future use - * FabianLange: fixed missing newline in sfYamlParser when parsing certain symfony core files - * FabianLange: removed the unused value property from Parser - * fabien: changed Exception to InvalidArgumentException - * fabien: fixed YAML dump when a string contains a \r without a \n - - - - - 1.0.2 - 1.0.0 - - - stable - stable - - 2009-12-01 - MIT - - * fabien: fixed \ usage in quoted string - - - - - 1.0.1 - 1.0.0 - - - stable - stable - - 2009-12-01 - MIT - - * fabien: fixed a possible loop in parsing a non-valid quoted string - - - - - 1.0.0 - 1.0.0 - - - stable - stable - - 2009-11-30 - MIT - - * fabien: first stable release as a Symfony Component - - - - From b075dc90583cfa3735239b4693942bcc30f2b143 Mon Sep 17 00:00:00 2001 From: Naomi Guyer Date: Wed, 18 Apr 2012 09:55:02 +1200 Subject: [PATCH 03/23] BUGFIX: Fixes #6943 Added classes to dropzone when dragging and dropping files. Added styles to the dropzone when a file could be dropped. Added a clearfloat mixin to the mixins file. --- admin/scss/_mixins.scss | 11 +++++++++++ css/AssetUploadField.css | 9 +++++++-- javascript/UploadField.js | 38 ++++++++++++++++++++++++++++++++++++-- scss/AssetUploadField.scss | 13 +++++++++++-- 4 files changed, 65 insertions(+), 6 deletions(-) diff --git a/admin/scss/_mixins.scss b/admin/scss/_mixins.scss index 0dc6e0792..10b28a768 100644 --- a/admin/scss/_mixins.scss +++ b/admin/scss/_mixins.scss @@ -60,3 +60,14 @@ -o-box-shadow: $shadow $outerColor; box-shadow: $shadow $outerColor; } + +@mixin clearfix{ + &:after{ + content: "."; + display: block; + height: 0; + clear: both; + visibility: hidden; + } + *:first-child &{ zoom:1;} +} diff --git a/css/AssetUploadField.css b/css/AssetUploadField.css index e01cd5b40..b8dca2f6b 100644 --- a/css/AssetUploadField.css +++ b/css/AssetUploadField.css @@ -4,6 +4,10 @@ /** ----------------------------------------------- Typography. ------------------------------------------------ */ /** ----------------------------------------------- Grid Units (px) We have a vertical rhythm that the grid is based off both x (=horizontal) and y (=vertical). All internal padding and margins are scaled to this and accounting for paragraphs ------------------------------------------------ */ /** ----------------------------------------------- Application Logo (CMS Logo) Must be 24px x 24px ------------------------------------------------ */ +/** This file contains generic mixins which we use throughout the admin panels. Mixins should be stored here rather than individual files so that we can keep. */ +/** ---------------------------------------------------- Hides the overflowing text from a container Note: you must define a width on the element with this overflow. ----------------------------------------------------- */ +/** ---------------------------------------------------- Clear the properties of sub form fields. Often needed for nested form fields and ----------------------------------------------------- */ +/** ---------------------------------------------------- Double tone borders http://daverupert.com/2011/06/two-tone-borders-with-css3/ ----------------------------------------------------- */ #AssetUploadField { border-bottom: 0; -moz-box-shadow: none; -webkit-box-shadow: none; -o-box-shadow: none; box-shadow: none; } body.cms.ss-uploadfield-edit-iframe { padding: 16px; overflow: auto; } @@ -37,5 +41,6 @@ body.cms.ss-uploadfield-edit-iframe { padding: 16px; overflow: auto; } .ss-assetuploadfield .ss-uploadfield-addfile .ss-uploadfield-fromcomputer { position: relative; overflow: hidden; display: block; margin: 0 10px 0 0; } .ss-assetuploadfield .ss-uploadfield-addfile .ss-uploadfield-item-uploador { float: left; font-weight: bold; font-size: 22px; padding: 0 20px; line-height: 70px; display: none; } .ss-assetuploadfield .ss-uploadfield-addfile .ss-uploadfield-dropzone { -moz-border-radius: 10px; -webkit-border-radius: 10px; -o-border-radius: 10px; -ms-border-radius: 10px; -khtml-border-radius: 10px; border-radius: 10px; -moz-box-shadow: #9a9a9a 0 0 3px 3px inset; -webkit-box-shadow: #9a9a9a 0 0 3px 3px inset; -o-box-shadow: #9a9a9a 0 0 3px 3px inset; box-shadow: #9a9a9a 0 0 3px 3px inset; border: 2px dashed gray; background: rgba(201, 205, 206, 0.8); display: none; height: 66px; width: 300px; float: left; } -.ss-assetuploadfield .ss-uploadfield-addfile .ss-uploadfield-dropzone div { padding: 15px 0 0; line-height: 22px; font-size: 20px; font-weight: bold; text-align: center; } -.ss-assetuploadfield .ss-uploadfield-addfile .ss-uploadfield-dropzone div span { display: block; font-size: 12px; } +.ss-assetuploadfield .ss-uploadfield-addfile .ss-uploadfield-dropzone.active.hover { -moz-box-shadow: rgba(255, 255, 255, 0.6) 0 0 3px 3px inset; -webkit-box-shadow: rgba(255, 255, 255, 0.6) 0 0 3px 3px inset; -o-box-shadow: rgba(255, 255, 255, 0.6) 0 0 3px 3px inset; box-shadow: rgba(255, 255, 255, 0.6) 0 0 3px 3px inset; } +.ss-assetuploadfield .ss-uploadfield-addfile .ss-uploadfield-dropzone div { z-index: 1; padding: 15px 0 0; line-height: 22px; font-size: 20px; font-weight: bold; text-align: center; display: block; margin: 0 auto; } +.ss-assetuploadfield .ss-uploadfield-addfile .ss-uploadfield-dropzone div span { display: block; font-size: 12px; z-index: -1; } diff --git a/javascript/UploadField.js b/javascript/UploadField.js index b5a09a460..8f6dc5a5f 100644 --- a/javascript/UploadField.js +++ b/javascript/UploadField.js @@ -30,16 +30,47 @@ Config: null, onmatch: function() { + if(this.is('.readonly,.disabled')) return; var fileInput = this.find('input'); var dropZone = this.find('.ss-uploadfield-dropzone'); var config = $.parseJSON(fileInput.data('config').replace(/'/g,'"')); - + + + /* Attach classes to dropzone when element can be dropped*/ + $(document).unbind('dragover'); + $(document).bind('dragover', function (e) { + timeout = window.dropZoneTimeout; + var $target = $(e.target); + if (!timeout) { + dropZone.addClass('active'); + } else { + clearTimeout(timeout); + } + if ($target.closest('.ss-uploadfield-dropzone').length > 0) { + dropZone.addClass('hover'); + } else { + dropZone.removeClass('hover'); + } + window.dropZoneTimeout = setTimeout(function () { + window.dropZoneTimeout = null; + dropZone.removeClass('active hover'); + }, 100); + }); + + //disable default behaviour if file dropped in the wrong area + $(document).bind('drop dragover', function (e){ + e.preventDefault(); + }); + + + this.setConfig(config); this.fileupload($.extend(true, - { + { formData: function(form) { + return [ {name: 'SecurityID', value: $(form).find(':input[name=SecurityID]').val()}, {name: 'ID', value: $(form).find(':input[name=ID]').val()} @@ -90,6 +121,7 @@ if (this.data('fileupload')._isXHRUpload({multipart: true})) { $('.ss-uploadfield-item-uploador').show(); dropZone.show(); // drag&drop avaliable + } this._super(); }, @@ -147,11 +179,13 @@ }); $('div.ss-upload *').entwine({ getUploadField: function() { + return this.parents('div.ss-upload:first'); } }); $('div.ss-upload .ss-uploadfield-files .ss-uploadfield-item').entwine({ onmatch: function() { + this.closest('.ss-upload').find('.ss-uploadfield-addfile').addClass('borderTop'); }, onunmatch: function() { diff --git a/scss/AssetUploadField.scss b/scss/AssetUploadField.scss index a8261ccf3..088b4240c 100644 --- a/scss/AssetUploadField.scss +++ b/scss/AssetUploadField.scss @@ -3,6 +3,8 @@ // TODO we need a seperated file for styles that are used in both cms and front end (such as buttons) @import "../admin/scss/themes/default.scss"; + + #AssetUploadField { border-bottom: 0; @include box-shadow(none); @@ -203,17 +205,24 @@ body.cms.ss-uploadfield-edit-iframe { height: 66px; width: 300px; float: left; - + &.active{ + &.hover{ + @include box-shadow(rgba(#fff,0.6) 0 0 3px 3px inset); + } + } div { + z-index:1; padding: 15px 0 0; line-height: 22px; font-size: 20px; font-weight: bold; text-align: center; - + display:block; + margin:0 auto; span { display: block; font-size: 12px; + z-index:-1; } } } From 364d413c66cf37e6ed58a7485cf84402b94c7ac7 Mon Sep 17 00:00:00 2001 From: Sam Minnee Date: Wed, 18 Apr 2012 10:11:50 +1200 Subject: [PATCH 04/23] BUGFIX: Send plaintext email as text/plain if there are no attachments. (#4603) --- email/Mailer.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/email/Mailer.php b/email/Mailer.php index 115538429..63467f529 100644 --- a/email/Mailer.php +++ b/email/Mailer.php @@ -185,7 +185,7 @@ function plaintextEmail($to, $from, $subject, $plainContent, $attachedFiles, $cu $plainContent = ($plainEncoding == "base64") ? chunk_split(base64_encode($plainContent),60) : QuotedPrintable_encode($plainContent); // Messages with attachments are handled differently - if(is_array($attachedFiles)) { + if($attachedFiles) { // The first part is the message itself $fullMessage = processHeaders($headers, $plainContent); $messageParts = array($fullMessage); From 14c079661774ca5e3e0509952cf285350652ba9a Mon Sep 17 00:00:00 2001 From: Andrew O'Neil Date: Wed, 18 Apr 2012 10:38:09 +1200 Subject: [PATCH 05/23] MINOR: Remove checks for PHP < 5.3.2, as it's no longer supported --- core/manifest/ClassManifest.php | 15 ++++++--------- security/RandomGenerator.php | 7 ++----- .../core/manifest/NamespacedClassManifestTest.php | 4 ---- .../manifest/TokenisedRegularExpressionTest.php | 6 ------ 4 files changed, 8 insertions(+), 24 deletions(-) diff --git a/core/manifest/ClassManifest.php b/core/manifest/ClassManifest.php index 7421cced6..468fe66f0 100644 --- a/core/manifest/ClassManifest.php +++ b/core/manifest/ClassManifest.php @@ -331,18 +331,15 @@ class SS_ClassManifest { if (!$classes) { $tokens = token_get_all($file); - if(version_compare(PHP_VERSION, '5.3', '>=')) { - $classes = self::get_namespaced_class_parser()->findAll($tokens); - $namespace = self::get_namespace_parser()->findAll($tokens); - if($namespace) { - $namespace = implode('', $namespace[0]['namespaceName']) . '\\'; - } else { - $namespace = ''; - } + + $classes = self::get_namespaced_class_parser()->findAll($tokens); + $namespace = self::get_namespace_parser()->findAll($tokens); + if($namespace) { + $namespace = implode('', $namespace[0]['namespaceName']) . '\\'; } else { - $classes = self::get_class_parser()->findAll($tokens); $namespace = ''; } + $interfaces = self::get_interface_parser()->findAll($tokens); $cache = array('classes' => $classes, 'interfaces' => $interfaces, 'namespace' => $namespace); diff --git a/security/RandomGenerator.php b/security/RandomGenerator.php index 8c92ff23e..ca0bf271c 100644 --- a/security/RandomGenerator.php +++ b/security/RandomGenerator.php @@ -21,11 +21,8 @@ class RandomGenerator { // TODO Fails with "Could not gather sufficient random data" on IIS, temporarily disabled on windows if(!$isWin) { - // mcrypt with urandom is only available on PHP 5.3 or newer - if(version_compare(PHP_VERSION, '5.3.0', '>=') && function_exists('mcrypt_create_iv')) { - $e = mcrypt_create_iv(64, MCRYPT_DEV_URANDOM); - if($e !== false) return $e; - } + $e = mcrypt_create_iv(64, MCRYPT_DEV_URANDOM); + if($e !== false) return $e; } // Fall back to SSL methods - may slow down execution by a few ms diff --git a/tests/core/manifest/NamespacedClassManifestTest.php b/tests/core/manifest/NamespacedClassManifestTest.php index 66ec092d4..7170f3792 100644 --- a/tests/core/manifest/NamespacedClassManifestTest.php +++ b/tests/core/manifest/NamespacedClassManifestTest.php @@ -13,10 +13,6 @@ class NamespacedClassManifestTest extends SapphireTest { public function setUp() { parent::setUp(); - if(version_compare(PHP_VERSION, '5.3', '<')) { - $this->markTestSkipped('Namespaces are not supported before PHP 5.3'); - } - $this->base = dirname(__FILE__) . '/fixtures/namespaced_classmanifest'; $this->manifest = new SS_ClassManifest($this->base, false, true, false); } diff --git a/tests/core/manifest/TokenisedRegularExpressionTest.php b/tests/core/manifest/TokenisedRegularExpressionTest.php index c11e60634..e1d7cb713 100644 --- a/tests/core/manifest/TokenisedRegularExpressionTest.php +++ b/tests/core/manifest/TokenisedRegularExpressionTest.php @@ -122,9 +122,6 @@ PHP } function testNamesapcedClassDefParser() { - if(version_compare(PHP_VERSION, '5.3', '<')) { - return; - } $parser = SS_ClassManifest::get_namespaced_class_parser(); $tokens = $this->getNamespaceTokens(); @@ -167,9 +164,6 @@ PHP } function testNamespaceDefParser() { - if(version_compare(PHP_VERSION, '5.3', '<')) { - return; - } $parser = SS_ClassManifest::get_namespace_parser(); $namespacedTokens = $this->getNamespaceTokens(); From be97535b1ed45eaedcee1ccca5bf194054233008 Mon Sep 17 00:00:00 2001 From: Mateusz Uzdowski Date: Fri, 13 Apr 2012 16:19:06 +1200 Subject: [PATCH 06/23] ENHANCEMENT: add an infinite-loop check as validation in Hierarchy (os4399) Check only when the parent has changed - hierarchy traversal is expensive operation, so we do it only when it is needed. --- model/DataExtension.php | 2 +- model/Hierarchy.php | 32 ++++++++++++++++++++++++++++++++ tests/model/HierarchyTest.php | 19 +++++++++++++++++++ 3 files changed, 52 insertions(+), 1 deletion(-) diff --git a/model/DataExtension.php b/model/DataExtension.php index d9c22d1d1..6f84415da 100644 --- a/model/DataExtension.php +++ b/model/DataExtension.php @@ -70,7 +70,7 @@ abstract class DataExtension extends Extension { * @param $validationResult Local validation result * @throws ValidationException */ - function validate(ValidationResult &$validationResult) { + function validate(ValidationResult $validationResult) { } /** diff --git a/model/Hierarchy.php b/model/Hierarchy.php index 7a2366583..2d29de387 100644 --- a/model/Hierarchy.php +++ b/model/Hierarchy.php @@ -30,6 +30,38 @@ class Hierarchy extends DataExtension { parent::add_to_class($class, $extensionClass, $args); } + /** + * Validate the owner object - check for existence of infinite loops. + */ + function validate(ValidationResult $validationResult) { + if (!$this->owner->ID) return; // The object is new, won't be looping. + if (!$this->owner->ParentID) return; // The object has no parent, won't be looping. + if (!$this->owner->isChanged('ParentID')) return; // The parent has not changed, skip the check for performance reasons. + + // Walk the hierarchy upwards until we reach the top, or until we reach the originating node again. + $node = $this->owner; + while($node) { + if ($node->ParentID==$this->owner->ID) { + // Hierarchy is looping. + $validationResult->error( + sprintf( + _t( + 'Hierarchy.InfiniteLoopNotAllowed', + 'Infinite loop found within the "%s" hierarchy. Please change the parent to resolve this', + 'First argument is the class that makes up the hierarchy.' + ), + $this->owner->class + ), + 'INFINITE_LOOP' + ); + break; + } + $node = $node->ParentID ? $node->Parent() : null; + } + + // At this point the $validationResult contains the response. + } + /** * Returns the children of this DataObject as an XHTML UL. This will be called recursively on each child, * so if they have children they will be displayed as a UL inside a LI. diff --git a/tests/model/HierarchyTest.php b/tests/model/HierarchyTest.php index ccffbc548..4dfa5c96b 100644 --- a/tests/model/HierarchyTest.php +++ b/tests/model/HierarchyTest.php @@ -12,6 +12,25 @@ class HierarchyTest extends SapphireTest { 'HierarchyTest_Object' ); + /** + * Test the Hierarchy prevents infinite loops. + */ + function testPreventLoop() { + $obj2 = $this->objFromFixture('HierarchyTest_Object', 'obj2'); + $obj2aa = $this->objFromFixture('HierarchyTest_Object', 'obj2aa'); + + $obj2->ParentID = $obj2aa->ID; + try { + $obj2->write(); + } + catch (ValidationException $e) { + $this->assertContains('Infinite loop found within the "HierarchyTest_Object" hierarchy', $e->getMessage()); + return; + } + + $this->fail('Failed to prevent infinite loop in hierarchy.'); + } + /** * Test Hierarchy::AllHistoricalChildren(). */ From 180a305dd1d690d74e29a57afbde70ee7b24d9ab Mon Sep 17 00:00:00 2001 From: Naomi Guyer Date: Wed, 18 Apr 2012 10:51:53 +1200 Subject: [PATCH 07/23] MINOR: Whitespace cleanup ticket 6943 Make sure tabs are used consistently. --- javascript/UploadField.js | 40 +++++++++++++++++++-------------------- 1 file changed, 20 insertions(+), 20 deletions(-) diff --git a/javascript/UploadField.js b/javascript/UploadField.js index 8f6dc5a5f..64c19675e 100644 --- a/javascript/UploadField.js +++ b/javascript/UploadField.js @@ -41,34 +41,34 @@ /* Attach classes to dropzone when element can be dropped*/ $(document).unbind('dragover'); $(document).bind('dragover', function (e) { - timeout = window.dropZoneTimeout; + timeout = window.dropZoneTimeout; var $target = $(e.target); - if (!timeout) { - dropZone.addClass('active'); - } else { - clearTimeout(timeout); - } - if ($target.closest('.ss-uploadfield-dropzone').length > 0) { - dropZone.addClass('hover'); - } else { - dropZone.removeClass('hover'); - } - window.dropZoneTimeout = setTimeout(function () { - window.dropZoneTimeout = null; - dropZone.removeClass('active hover'); - }, 100); + if (!timeout) { + dropZone.addClass('active'); + } else { + clearTimeout(timeout); + } + if ($target.closest('.ss-uploadfield-dropzone').length > 0) { + dropZone.addClass('hover'); + } else { + dropZone.removeClass('hover'); + } + window.dropZoneTimeout = setTimeout(function () { + window.dropZoneTimeout = null; + dropZone.removeClass('active hover'); + }, 100); }); //disable default behaviour if file dropped in the wrong area $(document).bind('drop dragover', function (e){ - e.preventDefault(); + e.preventDefault(); }); - - - + + + this.setConfig(config); this.fileupload($.extend(true, - { + { formData: function(form) { return [ From 5e5c5defa220040383039f252255f386a69a8815 Mon Sep 17 00:00:00 2001 From: Sam Minnee Date: Wed, 18 Apr 2012 11:00:38 +1200 Subject: [PATCH 08/23] BUGFIX: Fixed inconsistency in common_languages reference to Portuguese (#4911) --- i18n/i18n.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/i18n/i18n.php b/i18n/i18n.php index 2c593b06f..325b8faff 100644 --- a/i18n/i18n.php +++ b/i18n/i18n.php @@ -694,8 +694,8 @@ class i18n extends Object implements TemplateGlobalProvider { 'om' => array('Oromo', 'Afaan Oromo'), 'fa' => array('Persian', 'فارسى'), 'pl' => array('Polish', 'polski'), - 'pt-PT' => array('Portuguese (Portugal)', 'português (Portugal)'), - 'pt-BR' => array('Portuguese (Brazil)', 'português (Brazil)'), + 'pt_PT' => array('Portuguese (Portugal)', 'português (Portugal)'), + 'pt_BR' => array('Portuguese (Brazil)', 'português (Brazil)'), 'pa' => array('Punjabi', 'ਪੰਜਾਬੀ'), 'qu' => array('Quechua', 'Quechua'), 'rm' => array('Romansh', 'rumantsch'), From fb3b03f38b33233d575d2b826340e0c8ba6a118f Mon Sep 17 00:00:00 2001 From: Andrew O'Neil Date: Wed, 18 Apr 2012 11:01:03 +1200 Subject: [PATCH 09/23] MINOR: Remove support for PHP <5.3.2 --- api/DataFormatter.php | 1 - i18n/i18nTextCollector.php | 2 -- model/DataObject.php | 5 +---- 3 files changed, 1 insertion(+), 7 deletions(-) diff --git a/api/DataFormatter.php b/api/DataFormatter.php index 1f7f88ae9..721379248 100644 --- a/api/DataFormatter.php +++ b/api/DataFormatter.php @@ -264,7 +264,6 @@ abstract class DataFormatter extends Object { // add default required fields $dbFields = array_merge($dbFields, array('ID'=>'Int')); - // @todo Requires PHP 5.1+ if(is_array($this->removeFields)) { $dbFields = array_diff_key($dbFields, array_combine($this->removeFields,$this->removeFields)); } diff --git a/i18n/i18nTextCollector.php b/i18n/i18nTextCollector.php index 93de04415..db670c397 100644 --- a/i18n/i18nTextCollector.php +++ b/i18n/i18nTextCollector.php @@ -17,8 +17,6 @@ * Usage through URL (module-specific): http://localhost/dev/tasks/i18nTextCollectorTask/?module=mymodule * Usage on CLI: sake dev/tasks/i18nTextCollectorTask * Usage on CLI (module-specific): sake dev/tasks/i18nTextCollectorTask module=mymodule - * - * Requires PHP 5.1+ due to class_implements() limitations * * @author Bernat Foj Capell * @author Ingo Schommer diff --git a/model/DataObject.php b/model/DataObject.php index 852ca21fd..e047d262c 100644 --- a/model/DataObject.php +++ b/model/DataObject.php @@ -2158,10 +2158,7 @@ class DataObject extends ViewableData implements DataObjectInterface, i18nEntity * @return bool */ public static function has_own_table($dataClass) { - - // The condition below has the same effect as !is_subclass_of($dataClass,'DataObject'), - // which causes PHP < 5.3 to segfault in rare circumstances, see PHP bug #46753 - if($dataClass == 'DataObject' || !in_array('DataObject', ClassInfo::ancestry($dataClass))) return false; + if(!is_subclass_of($dataClass,'DataObject')) return false; if(!isset(DataObject::$cache_has_own_table[$dataClass])) { if(get_parent_class($dataClass) == 'DataObject') { From 5603fbe153828f349905e7e359123425b94f3a78 Mon Sep 17 00:00:00 2001 From: Robert Curry Date: Tue, 17 Apr 2012 17:12:56 +1200 Subject: [PATCH 10/23] ENHANCEMENT: Fixes #7059. Add test for allowedMaxFileNumber to UploadFieldTest. --- forms/UploadField.php | 14 +-- tests/forms/uploadfield/UploadFieldTest.php | 95 ++++++++++++++++++++- 2 files changed, 99 insertions(+), 10 deletions(-) diff --git a/forms/UploadField.php b/forms/UploadField.php index c387b7c80..78338e5c8 100644 --- a/forms/UploadField.php +++ b/forms/UploadField.php @@ -4,14 +4,14 @@ * Field for uploading single or multiple files of all types, including images. * NOTE: this Field will call write() on the supplied record * - * Features (some might not be avaliable to old browsers): + * Features (some might not be available to old browsers): * * - File Drag&Drop support * - Progressbar * - Image thumbnail/file icons even before upload finished * - Saving into relations * - Edit file - * - allowedExtensions is by default File::$allowed_extensions
  • maxFileSize the vaule of min(upload_max_filesize, post_max_size) from php.ini + * - allowedExtensions is by default File::$allowed_extensions
  • maxFileSize the value of min(upload_max_filesize, post_max_size) from php.ini * * @example * $UploadField = new UploadField('myFiles', 'Please upload some images (max. 5 files)'); @@ -74,7 +74,7 @@ class UploadField extends FileField { */ 'autoUpload' => true, /** - * php validation of allowedMaxFileNumber only works when a db relation is avaliable, set to null to allow unlimited + * php validation of allowedMaxFileNumber only works when a db relation is available, set to null to allow unlimited * if record has a has_one and allowedMaxFileNumber is null, it will be set to 1 * @var int */ @@ -122,7 +122,7 @@ class UploadField extends FileField { /** * @param string $name The internal field name, passed to forms. * @param string $title The field label. - * @param SS_List $items If no items are defined, the field will try to auto-detect an existion relation on {@link $record}, + * @param SS_List $items If no items are defined, the field will try to auto-detect an existing relation on {@link $record}, * with the same name as the field name. * @param Form $form Reference to the container form */ @@ -175,7 +175,7 @@ class UploadField extends FileField { /** * Force a record to be used as "Parent" for uploaded Files (eg a Page with a has_one to File) - * @param DataOjbect $record + * @param DataObject $record */ public function setRecord($record) { $this->record = $record; @@ -310,7 +310,7 @@ class UploadField extends FileField { $name = $this->getName(); // if there is a has_one relation with that name on the record and - // allowedMaxFileNumber has not been set, its wanted to be 1 + // allowedMaxFileNumber has not been set, it's wanted to be 1 if( $record && $record->exists() && $record->has_one($name) && !$this->getConfig('allowedMaxFileNumber') @@ -633,7 +633,7 @@ class UploadField_ItemHandler extends RequestHandler { } /** - * Action to handle removeing a single file from the db relation + * Action to handle removing a single file from the db relation * * @param SS_HTTPRequest $request * @return SS_HTTPResponse diff --git a/tests/forms/uploadfield/UploadFieldTest.php b/tests/forms/uploadfield/UploadFieldTest.php index cac54a464..4c33fa592 100644 --- a/tests/forms/uploadfield/UploadFieldTest.php +++ b/tests/forms/uploadfield/UploadFieldTest.php @@ -98,8 +98,73 @@ $this->assertEquals($record->ManyManyFiles()->Last()->Name, $tmpFileName); } - function testAllowedMaxFileNumber() { - $this->markTestIncomplete(); + function testAllowedMaxFileNumberWithHasOne() { + $this->loginWithPermission('ADMIN'); + + // Test each of the three cases - has one with no max filel limit, has one with a limit of + // one, has one with a limit of more than one (makes no sense, but should test it anyway). + // Each of them should function in the same way - attaching the first file should work, the + // second should cause an error. + foreach (array('HasOneFile', 'HasOneFileMaxOne', 'HasOneFileMaxTwo') as $recordName) { + // Unset existing has_one relation before re-uploading + $record = $this->objFromFixture('UploadFieldTest_Record', 'record1'); + $record->{$recordName . 'ID'} = null; + $record->write(); + + $tmpFileName = 'testUploadHasOneRelation.txt'; + $_FILES = array($recordName => $this->getUploadFile($tmpFileName)); + $response = $this->post( + "UploadFieldTest_Controller/Form/field/$recordName/upload", + array($recordName => $this->getUploadFile($tmpFileName)) + ); + $body = json_decode($response->getBody()); + $this->assertEquals(0, $body[0]->error); + + // Write to it again, should result in an error. + $response = $this->post( + "UploadFieldTest_Controller/Form/field/$recordName/upload", + array($recordName => $this->getUploadFile($tmpFileName)) + ); + $body = json_decode($response->getBody()); + $this->assertNotEquals(0, $body[0]->error); + } + } + + function testAllowedMaxFileNumberWithHasMany() { + $this->loginWithPermission('ADMIN'); + + // The 'HasManyFilesMaxTwo' field has a maximum of two files able to be attached to it. + // We want to add files to it until we attempt to add the third. We expect that the first + // two should work and the third will fail. + $record = $this->objFromFixture('UploadFieldTest_Record', 'record1'); + $record->HasManyFilesMaxTwo()->removeAll(); + + $tmpFileName = 'testUploadHasManyRelation.txt'; + $_FILES = array('HasManyFilesMaxTwo' => $this->getUploadFile($tmpFileName)); + + // Write the first element, should be okay. + $response = $this->post( + 'UploadFieldTest_Controller/Form/field/HasManyFilesMaxTwo/upload', + array('HasManyFilesMaxTwo' => $this->getUploadFile($tmpFileName)) + ); + $body = json_decode($response->getBody()); + $this->assertEquals(0, $body[0]->error); + + // Write the second element, should be okay. + $response = $this->post( + 'UploadFieldTest_Controller/Form/field/HasManyFilesMaxTwo/upload', + array('HasManyFilesMaxTwo' => $this->getUploadFile($tmpFileName)) + ); + $body = json_decode($response->getBody()); + $this->assertEquals(0, $body[0]->error); + + // Write the third element, should result in error. + $response = $this->post( + 'UploadFieldTest_Controller/Form/field/HasManyFilesMaxTwo/upload', + array('HasManyFilesMaxTwo' => $this->getUploadFile($tmpFileName)) + ); + $body = json_decode($response->getBody()); + $this->assertNotEquals(0, $body[0]->error); } function testRemoveFromHasOne() { @@ -553,10 +618,13 @@ static $db = array( static $has_one = array( 'HasOneFile' => 'File', + 'HasOneFileMaxOne' => 'File', + 'HasOneFileMaxTwo' => 'File', ); static $has_many = array( 'HasManyFiles' => 'File', + 'HasManyFilesMaxTwo' => 'File', ); static $many_many = array( @@ -570,7 +638,7 @@ class UploadFieldTest_FileExtension extends DataExtension implements TestOnly { function extraStatics($class = null, $extension = null) { return array( 'has_one' => array('Record' => 'UploadFieldTest_Record') - ); + ); } function canDelete($member = null) { @@ -601,10 +669,25 @@ class UploadFieldTest_Controller extends Controller implements TestOnly { $fieldHasOne->setFolderName('UploadFieldTest'); $fieldHasOne->setRecord($record); + $fieldHasOneMaxOne = new UploadField('HasOneFileMaxOne'); + $fieldHasOneMaxOne->setFolderName('UploadFieldTest'); + $fieldHasOneMaxOne->setConfig('allowedMaxFileNumber', 1); + $fieldHasOneMaxOne->setRecord($record); + + $fieldHasOneMaxTwo = new UploadField('HasOneFileMaxTwo'); + $fieldHasOneMaxTwo->setFolderName('UploadFieldTest'); + $fieldHasOneMaxTwo->setConfig('allowedMaxFileNumber', 2); + $fieldHasOneMaxTwo->setRecord($record); + $fieldHasMany = new UploadField('HasManyFiles'); $fieldHasMany->setFolderName('UploadFieldTest'); $fieldHasMany->setRecord($record); + $fieldHasManyMaxTwo = new UploadField('HasManyFilesMaxTwo'); + $fieldHasManyMaxTwo->setFolderName('UploadFieldTest'); + $fieldHasManyMaxTwo->setConfig('allowedMaxFileNumber', 2); + $fieldHasManyMaxTwo->setRecord($record); + $fieldManyMany = new UploadField('ManyManyFiles'); $fieldManyMany->setFolderName('UploadFieldTest'); $fieldManyMany->setRecord($record); @@ -629,7 +712,10 @@ class UploadFieldTest_Controller extends Controller implements TestOnly { new FieldList( $fieldNoRelation, $fieldHasOne, + $fieldHasOneMaxOne, + $fieldHasOneMaxTwo, $fieldHasMany, + $fieldHasManyMaxTwo, $fieldManyMany, $fieldReadonly, $fieldDisabled, @@ -641,7 +727,10 @@ class UploadFieldTest_Controller extends Controller implements TestOnly { new RequiredFields( 'NoRelationField', 'HasOneFile', + 'HasOneFileMaxOne', + 'HasOneFileMaxTwo', 'HasManyFiles', + 'HasManyFilesMaxTwo', 'ManyManyFiles', 'ReadonlyField', 'DisabledField', From 45c7dfd9f56aab1d46f3eb287bd3ec02f13a64cc Mon Sep 17 00:00:00 2001 From: Julian Seidenberg Date: Tue, 12 Apr 2011 15:11:33 +1200 Subject: [PATCH 11/23] ENHANCEMENT: tests for new i18n syntax --- .../templates/Layout/i18nTestModule.ss | 9 +- tests/i18n/i18nTest.php | 86 ++++++++++++++++++- view/SSTemplateParser.php.inc | 39 +++++++++ 3 files changed, 132 insertions(+), 2 deletions(-) diff --git a/tests/i18n/_fakewebroot/i18ntestmodule/templates/Layout/i18nTestModule.ss b/tests/i18n/_fakewebroot/i18ntestmodule/templates/Layout/i18nTestModule.ss index 1ec3bbcaf..fc0e5f928 100644 --- a/tests/i18n/_fakewebroot/i18ntestmodule/templates/Layout/i18nTestModule.ss +++ b/tests/i18n/_fakewebroot/i18ntestmodule/templates/Layout/i18nTestModule.ss @@ -2,4 +2,11 @@ <% _t('LAYOUTTEMPLATENONAMESPACE',"Layout Template no namespace") %> <% sprintf(_t('i18nTestModule.SPRINTFNAMESPACE','My replacement: %s'),$TestProperty) %> <% sprintf(_t('SPRINTFNONAMESPACE','My replacement no namespace: %s'),$TestProperty) %> -<% include i18nTestModuleInclude %> \ No newline at end of file +<% include i18nTestModuleInclude %> + +<%t i18nTestModule.NEWMETHODSIG "New _t method signature test" %> +<%t i18nTestModule.INJECTIONS_DOES_NOT_EXIST "Hello {name} {greeting}. But it is late, {goodbye}" name="Mark" greeting="welcome" goodbye="bye" %> +<%t i18nTestModule.INJECTIONS "Hello {name} {greeting}. But it is late, {goodbye}" name="Paul" greeting="good you are here" goodbye="see you" %> +<%t i18nTestModule.INJECTIONS "Hello {name} {greeting}. But it is late, {goodbye}" is "New context (this should be ignored)" name="Steffen" greeting="willkommen" goodbye="wiedersehen" %> +<%t i18nTestModule.INJECTIONS name="Cat" greeting='meow' goodbye="meow" %> +<%t i18nTestModule.INJECTIONS name=$absoluteBaseURL greeting=$get_locale goodbye="global calls" %> \ No newline at end of file diff --git a/tests/i18n/i18nTest.php b/tests/i18n/i18nTest.php index e80db7723..f121de923 100644 --- a/tests/i18n/i18nTest.php +++ b/tests/i18n/i18nTest.php @@ -167,7 +167,7 @@ class i18nTest extends SapphireTest { function testTemplateTranslation() { $oldLocale = i18n::get_locale(); - + i18n::set_locale('en_US'); i18n::get_translator('core')->getAdapter()->addTranslation(array( 'i18nTestModule.MAINTEMPLATE' => 'Main Template', @@ -242,6 +242,90 @@ class i18nTest extends SapphireTest { i18n::set_locale($oldLocale); } + + function testNewTMethodSignature() { + global $lang; + $oldLocale = i18n::get_locale(); + + i18n::set_locale('en_US'); + $lang['en_US']['i18nTestModule']['NEWMETHODSIG'] = 'TRANS New _t method signature test'; + $lang['en_US']['i18nTestModule']['INJECTIONS'] = 'TRANS Hello {name} {greeting}. But it is late, {goodbye}'; + + $entity = "i18nTestModule.INJECTIONS"; + $default = "Hello {name} {greeting}. But it is late, {goodbye}"; + + $translated = i18n::_t('i18nTestModule.NEWMETHODSIG',"New _t method signature test"); + $this->assertContains( + "TRANS New _t method signature test", + $translated + ); + + $translated = i18n::_t($entity.'_DOES_NOT_EXIST', $default, array("name"=>"Mark", "greeting"=>"welcome", "goodbye"=>"bye")); + $this->assertContains( + "Hello Mark welcome. But it is late, bye", + $translated, "Testing fallback to the translation default (but using the injection array)" + ); + + $translated = i18n::_t($entity, $default, array("name"=>"Paul", "greeting"=>"good you are here", "goodbye"=>"see you")); + $this->assertContains( + "TRANS Hello Paul good you are here. But it is late, see you", + $translated, "Testing entity, default string and injection array" + ); + + $translated = i18n::_t($entity, $default, "New context (this should be ignored)", array("name"=>"Steffen", "greeting"=>"willkommen", "goodbye"=>"wiedersehen")); + $this->assertContains( + "TRANS Hello Steffen willkommen. But it is late, wiedersehen", + $translated, "Full test of translation, using default, context and injection array" + ); + + $translated = i18n::_t($entity, array("name"=>"Cat", "greeting"=>"meow", "goodbye"=>"meow")); + $this->assertContains( + "TRANS Hello Cat meow. But it is late, meow", + $translated, "Testing a translation with just entity and injection array" + ); + + i18n::set_locale($oldLocale); + } + + /** + * See @i18nTestModule.ss for the template that is being used for this test + * */ + function testNewTemplateTranslation() { + global $lang; + $oldLocale = i18n::get_locale(); + + i18n::set_locale('en_US'); + $lang['en_US']['i18nTestModule']['NEWMETHODSIG'] = 'TRANS New _t method signature test'; + $lang['en_US']['i18nTestModule']['INJECTIONS'] = 'TRANS Hello {name} {greeting}. But it is late, {goodbye}'; + + $viewer = new SSViewer('i18nTestModule'); + $parsedHtml = $viewer->process(new ArrayData(array('TestProperty' => 'TestPropertyValue'))); + $this->assertContains( + "Hello Mark welcome. But it is late, bye\n", + $parsedHtml, "Testing fallback to the translation default (but using the injection array)" + ); + $this->assertContains( + "TRANS Hello Paul good you are here. But it is late, see you\n", + $parsedHtml, "Testing entity, default string and injection array" + ); + $this->assertContains( + "TRANS Hello Steffen willkommen. But it is late, wiedersehen\n", + $parsedHtml, "Full test of translation, using default, context and injection array" + ); + + $this->assertContains( + "TRANS Hello Cat meow. But it is late, meow\n", + $parsedHtml, "Testing a translation with just entity and injection array" + ); + + //test injected calls + $this->assertContains( + "TRANS Hello ".Director::absoluteBaseURL()." ".i18n::get_locale().". But it is late, global calls\n", + $parsedHtml, "Testing a translation with just entity and injection array, but with global variables injected in" + ); + + i18n::set_locale($oldLocale); + } function testGetLocaleFromLang() { $this->assertEquals('en_US', i18n::get_locale_from_lang('en')); diff --git a/view/SSTemplateParser.php.inc b/view/SSTemplateParser.php.inc index bd5f18515..64aefc517 100644 --- a/view/SSTemplateParser.php.inc +++ b/view/SSTemplateParser.php.inc @@ -175,6 +175,45 @@ class SSTemplateParser extends Parser { $this->Lookup_AddLookupStep($res, $sub, '$$FINAL'); } + + /*!* + # Translatable call + + Translate: "<%t" Entity (Default)? (!("is" "=") "is" Context)? (InjectionVariables)* "%>" + InjectionVariables: InjectionName:Word "=" Argument + */ + + function Translate__construct(&$res) { + $res['php'] = "_t("; + } + + function Translate_Entity(&$res, $sub) { + $res['php'] .= $sub['php']; + Debug::show($sub); + } + function Translate_Default(&$res, $sub) { + Debug::show($sub); + } + function Translate_Context(&$res, $sub) { + Debug::show($sub); + } + + function Translate__finalise(&$res) { + $res['php'] .= ')'; + } + + + function InjectionVariables__construct(&$res) { + } + + function InjectionVariables_InjectionName(&$res, $sub) { + } + + function InjectionVariables_Argument(&$res, $sub) { + + } + + /*!* # Injections are where, outside of a block, a value needs to be inserted into the output. You can either From 189c305c8385d76ec8e8e8f9320992bbf3c90006 Mon Sep 17 00:00:00 2001 From: Julian Seidenberg Date: Mon, 16 Apr 2012 16:59:56 +1200 Subject: [PATCH 12/23] API-CHANGE: parser for new i18n syntax --- tests/i18n/i18nTest.php | 26 +- view/SSTemplateParser.php | 3061 ++++++++++++++++++--------------- view/SSTemplateParser.php.inc | 53 +- 3 files changed, 1699 insertions(+), 1441 deletions(-) diff --git a/tests/i18n/i18nTest.php b/tests/i18n/i18nTest.php index f121de923..cf0c9e07c 100644 --- a/tests/i18n/i18nTest.php +++ b/tests/i18n/i18nTest.php @@ -171,14 +171,10 @@ class i18nTest extends SapphireTest { i18n::set_locale('en_US'); i18n::get_translator('core')->getAdapter()->addTranslation(array( 'i18nTestModule.MAINTEMPLATE' => 'Main Template', - 'i18nTestModule.ss.SPRINTFNONAMESPACE' => 'My replacement no namespace: %s', 'i18nTestModule.LAYOUTTEMPLATE' => 'Layout Template', - 'i18nTestModule.ss.LAYOUTTEMPLATENONAMESPACE' => 'Layout Template no namespace', 'i18nTestModule.SPRINTFNAMESPACE' => 'My replacement: %s', 'i18nTestModule.WITHNAMESPACE' => 'Include Entity with Namespace', - 'i18nTestModuleInclude.ss.NONAMESPACE' => 'Include Entity without Namespace', 'i18nTestModuleInclude.ss.SPRINTFINCLUDENAMESPACE' => 'My include replacement: %s', - 'i18nTestModuleInclude.ss.SPRINTFINCLUDENONAMESPACE' => 'My include replacement no namespace: %s' ), 'en_US'); $viewer = new SSViewer('i18nTestModule'); @@ -187,22 +183,14 @@ class i18nTest extends SapphireTest { "Layout Template\n", $parsedHtml ); - $this->assertContains( - "Layout Template no namespace\n", - $parsedHtml - ); i18n::set_locale('de_DE'); i18n::get_translator('core')->getAdapter()->addTranslation(array( 'i18nTestModule.MAINTEMPLATE' => 'TRANS Main Template', - 'i18nTestModule.ss.SPRINTFNONAMESPACE' => 'TRANS My replacement no namespace: %s', 'i18nTestModule.LAYOUTTEMPLATE' => 'TRANS Layout Template', - 'i18nTestModule.ss.LAYOUTTEMPLATENONAMESPACE' => 'TRANS Layout Template no namespace', 'i18nTestModule.SPRINTFNAMESPACE' => 'TRANS My replacement: %s', 'i18nTestModule.WITHNAMESPACE' => 'TRANS Include Entity with Namespace', - 'i18nTestModuleInclude.ss.NONAMESPACE' => 'TRANS Include Entity without Namespace', 'i18nTestModuleInclude.ss.SPRINTFINCLUDENAMESPACE' => 'TRANS My include replacement: %s', - 'i18nTestModuleInclude.ss.SPRINTFINCLUDENONAMESPACE' => 'TRANS My include replacement no namespace: %s' ), 'de_DE'); $viewer = new SSViewer('i18nTestModule'); @@ -215,10 +203,6 @@ class i18nTest extends SapphireTest { "TRANS Layout Template\n", $parsedHtml ); - $this->assertContains( - "TRANS Layout Template no namespace", - $parsedHtml - ); $this->assertContains( "TRANS My replacement: TestPropertyValue", $parsedHtml @@ -227,19 +211,11 @@ class i18nTest extends SapphireTest { "TRANS Include Entity with Namespace", $parsedHtml ); - $this->assertContains( - "TRANS Include Entity without Namespace", - $parsedHtml - ); $this->assertContains( "TRANS My include replacement: TestPropertyValue", $parsedHtml ); - $this->assertContains( - "TRANS My include replacement no namespace: TestPropertyValue", - $parsedHtml - ); - + i18n::set_locale($oldLocale); } diff --git a/view/SSTemplateParser.php b/view/SSTemplateParser.php index 3f6f86109..6cbeadf24 100644 --- a/view/SSTemplateParser.php +++ b/view/SSTemplateParser.php @@ -58,6 +58,9 @@ forbidden) Closed Block: An SS template block that wraps content, and requires a counterpart <% end_blockname %> tag +Angle Bracket: angle brackets "<" and ">" are used to eat whitespace between template elements +N: eats white space including newlines (using in legacy _t support) + */ class SSTemplateParser extends Parser { @@ -76,7 +79,7 @@ class SSTemplateParser extends Parser { return $res; } - /* Template: (Comment | If | Require | CacheBlock | UncachedBlock | OldI18NTag | Include | ClosedBlock | OpenBlock | MalformedBlock | Injection | Text)+ */ + /* Template: (Comment | Translate | If | Require | CacheBlock | UncachedBlock | OldI18NTag | ClosedBlock | OpenBlock | MalformedBlock | Injection | Text)+ */ protected $match_Template_typestack = array('Template'); function match_Template ($stack = array()) { $matchrule = "Template"; $result = $this->construct($matchrule, $matchrule, null); @@ -102,7 +105,7 @@ class SSTemplateParser extends Parser { do { $res_2 = $result; $pos_2 = $this->pos; - $matcher = 'match_'.'If'; $key = $matcher; $pos = $this->pos; + $matcher = 'match_'.'Translate'; $key = $matcher; $pos = $this->pos; $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); if ($subres !== FALSE) { $this->store( $result, $subres ); @@ -114,7 +117,7 @@ class SSTemplateParser extends Parser { do { $res_4 = $result; $pos_4 = $this->pos; - $matcher = 'match_'.'Require'; $key = $matcher; $pos = $this->pos; + $matcher = 'match_'.'If'; $key = $matcher; $pos = $this->pos; $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); if ($subres !== FALSE) { $this->store( $result, $subres ); @@ -126,7 +129,7 @@ class SSTemplateParser extends Parser { do { $res_6 = $result; $pos_6 = $this->pos; - $matcher = 'match_'.'CacheBlock'; $key = $matcher; $pos = $this->pos; + $matcher = 'match_'.'Require'; $key = $matcher; $pos = $this->pos; $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); if ($subres !== FALSE) { $this->store( $result, $subres ); @@ -138,7 +141,7 @@ class SSTemplateParser extends Parser { do { $res_8 = $result; $pos_8 = $this->pos; - $matcher = 'match_'.'UncachedBlock'; $key = $matcher; $pos = $this->pos; + $matcher = 'match_'.'CacheBlock'; $key = $matcher; $pos = $this->pos; $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); if ($subres !== FALSE) { $this->store( $result, $subres ); @@ -150,7 +153,7 @@ class SSTemplateParser extends Parser { do { $res_10 = $result; $pos_10 = $this->pos; - $matcher = 'match_'.'OldI18NTag'; $key = $matcher; $pos = $this->pos; + $matcher = 'match_'.'UncachedBlock'; $key = $matcher; $pos = $this->pos; $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); if ($subres !== FALSE) { $this->store( $result, $subres ); @@ -162,7 +165,7 @@ class SSTemplateParser extends Parser { do { $res_12 = $result; $pos_12 = $this->pos; - $matcher = 'match_'.'Include'; $key = $matcher; $pos = $this->pos; + $matcher = 'match_'.'OldI18NTag'; $key = $matcher; $pos = $this->pos; $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); if ($subres !== FALSE) { $this->store( $result, $subres ); @@ -619,28 +622,237 @@ class SSTemplateParser extends Parser { $this->Lookup_AddLookupStep($res, $sub, '$$FINAL'); } + + /* Translate: "<%t" < Entity < (Default:QuotedString)? < (!("is" "=") < "is" < Context:QuotedString)? < (InjectionVariables)? > "%>" */ + protected $match_Translate_typestack = array('Translate'); + function match_Translate ($stack = array()) { + $matchrule = "Translate"; $result = $this->construct($matchrule, $matchrule, null); + $_111 = NULL; + do { + if (( $subres = $this->literal( '<%t' ) ) !== FALSE) { $result["text"] .= $subres; } + else { $_111 = FALSE; break; } + if (( $subres = $this->whitespace( ) ) !== FALSE) { $result["text"] .= $subres; } + $matcher = 'match_'.'Entity'; $key = $matcher; $pos = $this->pos; + $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); + if ($subres !== FALSE) { $this->store( $result, $subres ); } + else { $_111 = FALSE; break; } + if (( $subres = $this->whitespace( ) ) !== FALSE) { $result["text"] .= $subres; } + $res_93 = $result; + $pos_93 = $this->pos; + $_92 = NULL; + do { + $matcher = 'match_'.'QuotedString'; $key = $matcher; $pos = $this->pos; + $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); + if ($subres !== FALSE) { + $this->store( $result, $subres, "Default" ); + } + else { $_92 = FALSE; break; } + $_92 = TRUE; break; + } + while(0); + if( $_92 === FALSE) { + $result = $res_93; + $this->pos = $pos_93; + unset( $res_93 ); + unset( $pos_93 ); + } + if (( $subres = $this->whitespace( ) ) !== FALSE) { $result["text"] .= $subres; } + $res_104 = $result; + $pos_104 = $this->pos; + $_103 = NULL; + do { + $res_98 = $result; + $pos_98 = $this->pos; + $_97 = NULL; + do { + if (( $subres = $this->literal( 'is' ) ) !== FALSE) { $result["text"] .= $subres; } + else { $_97 = FALSE; break; } + if (substr($this->string,$this->pos,1) == '=') { + $this->pos += 1; + $result["text"] .= '='; + } + else { $_97 = FALSE; break; } + $_97 = TRUE; break; + } + while(0); + if( $_97 === TRUE ) { + $result = $res_98; + $this->pos = $pos_98; + $_103 = FALSE; break; + } + if( $_97 === FALSE) { + $result = $res_98; + $this->pos = $pos_98; + } + if (( $subres = $this->whitespace( ) ) !== FALSE) { $result["text"] .= $subres; } + if (( $subres = $this->literal( 'is' ) ) !== FALSE) { $result["text"] .= $subres; } + else { $_103 = FALSE; break; } + if (( $subres = $this->whitespace( ) ) !== FALSE) { $result["text"] .= $subres; } + $matcher = 'match_'.'QuotedString'; $key = $matcher; $pos = $this->pos; + $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); + if ($subres !== FALSE) { + $this->store( $result, $subres, "Context" ); + } + else { $_103 = FALSE; break; } + $_103 = TRUE; break; + } + while(0); + if( $_103 === FALSE) { + $result = $res_104; + $this->pos = $pos_104; + unset( $res_104 ); + unset( $pos_104 ); + } + if (( $subres = $this->whitespace( ) ) !== FALSE) { $result["text"] .= $subres; } + $res_108 = $result; + $pos_108 = $this->pos; + $_107 = NULL; + do { + $matcher = 'match_'.'InjectionVariables'; $key = $matcher; $pos = $this->pos; + $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); + if ($subres !== FALSE) { $this->store( $result, $subres ); } + else { $_107 = FALSE; break; } + $_107 = TRUE; break; + } + while(0); + if( $_107 === FALSE) { + $result = $res_108; + $this->pos = $pos_108; + unset( $res_108 ); + unset( $pos_108 ); + } + if (( $subres = $this->whitespace( ) ) !== FALSE) { $result["text"] .= $subres; } + if (( $subres = $this->literal( '%>' ) ) !== FALSE) { $result["text"] .= $subres; } + else { $_111 = FALSE; break; } + $_111 = TRUE; break; + } + while(0); + if( $_111 === TRUE ) { return $this->finalise($result); } + if( $_111 === FALSE) { return FALSE; } + } + + + /* InjectionVariables: (< InjectionName:Word "=" Argument)+ */ + protected $match_InjectionVariables_typestack = array('InjectionVariables'); + function match_InjectionVariables ($stack = array()) { + $matchrule = "InjectionVariables"; $result = $this->construct($matchrule, $matchrule, null); + $count = 0; + while (true) { + $res_118 = $result; + $pos_118 = $this->pos; + $_117 = NULL; + do { + if (( $subres = $this->whitespace( ) ) !== FALSE) { $result["text"] .= $subres; } + $matcher = 'match_'.'Word'; $key = $matcher; $pos = $this->pos; + $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); + if ($subres !== FALSE) { + $this->store( $result, $subres, "InjectionName" ); + } + else { $_117 = FALSE; break; } + if (substr($this->string,$this->pos,1) == '=') { + $this->pos += 1; + $result["text"] .= '='; + } + else { $_117 = FALSE; break; } + $matcher = 'match_'.'Argument'; $key = $matcher; $pos = $this->pos; + $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); + if ($subres !== FALSE) { $this->store( $result, $subres ); } + else { $_117 = FALSE; break; } + $_117 = TRUE; break; + } + while(0); + if( $_117 === FALSE) { + $result = $res_118; + $this->pos = $pos_118; + unset( $res_118 ); + unset( $pos_118 ); + break; + } + $count += 1; + } + if ($count > 0) { return $this->finalise($result); } + else { return FALSE; } + } + + + /* Entity: / [A-Za-z_] [\w\.]* / */ + protected $match_Entity_typestack = array('Entity'); + function match_Entity ($stack = array()) { + $matchrule = "Entity"; $result = $this->construct($matchrule, $matchrule, null); + if (( $subres = $this->rx( '/ [A-Za-z_] [\w\.]* /' ) ) !== FALSE) { + $result["text"] .= $subres; + return $this->finalise($result); + } + else { return FALSE; } + } + + + + + function Translate__construct(&$res) { + $res['php'] = '$val .= _t('; + } + + function Translate_Entity(&$res, $sub) { + $res['php'] .= "'$sub[text]'"; + } + + function Translate_Default(&$res, $sub) { + $res['php'] .= ",$sub[text]"; + } + + function Translate_Context(&$res, $sub) { + $res['php'] .= ",$sub[text]"; + } + + function Translate_InjectionVariables(&$res, $sub) { + $res['php'] .= ",$sub[php]"; + } + + function Translate__finalise(&$res) { + $res['php'] .= ');'; + } + + function InjectionVariables__construct(&$res) { + $res['php'] = "array("; + } + + function InjectionVariables_InjectionName(&$res, $sub) { + $res['php'] .= "'$sub[text]'=>"; + } + + function InjectionVariables_Argument(&$res, $sub) { + $res['php'] .= str_replace('$$FINAL', 'XML_val', $sub['php']) . ','; + } + + function InjectionVariables__finalise(&$res) { + if (substr($res['php'], -1) == ',') $res['php'] = substr($res['php'], 0, -1); //remove last comma in the array + $res['php'] .= ')'; + } + + /* SimpleInjection: '$' :Lookup */ protected $match_SimpleInjection_typestack = array('SimpleInjection'); function match_SimpleInjection ($stack = array()) { $matchrule = "SimpleInjection"; $result = $this->construct($matchrule, $matchrule, null); - $_89 = NULL; + $_122 = NULL; do { if (substr($this->string,$this->pos,1) == '$') { $this->pos += 1; $result["text"] .= '$'; } - else { $_89 = FALSE; break; } + else { $_122 = FALSE; break; } $matcher = 'match_'.'Lookup'; $key = $matcher; $pos = $this->pos; $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); if ($subres !== FALSE) { $this->store( $result, $subres, "Lookup" ); } - else { $_89 = FALSE; break; } - $_89 = TRUE; break; + else { $_122 = FALSE; break; } + $_122 = TRUE; break; } while(0); - if( $_89 === TRUE ) { return $this->finalise($result); } - if( $_89 === FALSE) { return FALSE; } + if( $_122 === TRUE ) { return $this->finalise($result); } + if( $_122 === FALSE) { return FALSE; } } @@ -648,26 +860,26 @@ class SSTemplateParser extends Parser { protected $match_BracketInjection_typestack = array('BracketInjection'); function match_BracketInjection ($stack = array()) { $matchrule = "BracketInjection"; $result = $this->construct($matchrule, $matchrule, null); - $_94 = NULL; + $_127 = NULL; do { if (( $subres = $this->literal( '{$' ) ) !== FALSE) { $result["text"] .= $subres; } - else { $_94 = FALSE; break; } + else { $_127 = FALSE; break; } $matcher = 'match_'.'Lookup'; $key = $matcher; $pos = $this->pos; $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); if ($subres !== FALSE) { $this->store( $result, $subres, "Lookup" ); } - else { $_94 = FALSE; break; } + else { $_127 = FALSE; break; } if (substr($this->string,$this->pos,1) == '}') { $this->pos += 1; $result["text"] .= '}'; } - else { $_94 = FALSE; break; } - $_94 = TRUE; break; + else { $_127 = FALSE; break; } + $_127 = TRUE; break; } while(0); - if( $_94 === TRUE ) { return $this->finalise($result); } - if( $_94 === FALSE) { return FALSE; } + if( $_127 === TRUE ) { return $this->finalise($result); } + if( $_127 === FALSE) { return FALSE; } } @@ -675,31 +887,31 @@ class SSTemplateParser extends Parser { protected $match_Injection_typestack = array('Injection'); function match_Injection ($stack = array()) { $matchrule = "Injection"; $result = $this->construct($matchrule, $matchrule, null); - $_99 = NULL; + $_132 = NULL; do { - $res_96 = $result; - $pos_96 = $this->pos; + $res_129 = $result; + $pos_129 = $this->pos; $matcher = 'match_'.'BracketInjection'; $key = $matcher; $pos = $this->pos; $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); if ($subres !== FALSE) { $this->store( $result, $subres ); - $_99 = TRUE; break; + $_132 = TRUE; break; } - $result = $res_96; - $this->pos = $pos_96; + $result = $res_129; + $this->pos = $pos_129; $matcher = 'match_'.'SimpleInjection'; $key = $matcher; $pos = $this->pos; $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); if ($subres !== FALSE) { $this->store( $result, $subres ); - $_99 = TRUE; break; + $_132 = TRUE; break; } - $result = $res_96; - $this->pos = $pos_96; - $_99 = FALSE; break; + $result = $res_129; + $this->pos = $pos_129; + $_132 = FALSE; break; } while(0); - if( $_99 === TRUE ) { return $this->finalise($result); } - if( $_99 === FALSE) { return FALSE; } + if( $_132 === TRUE ) { return $this->finalise($result); } + if( $_132 === FALSE) { return FALSE; } } @@ -731,7 +943,7 @@ class SSTemplateParser extends Parser { protected $match_QuotedString_typestack = array('QuotedString'); function match_QuotedString ($stack = array()) { $matchrule = "QuotedString"; $result = $this->construct($matchrule, $matchrule, null); - $_105 = NULL; + $_138 = NULL; do { $stack[] = $result; $result = $this->construct( $matchrule, "q" ); if (( $subres = $this->rx( '/[\'"]/' ) ) !== FALSE) { @@ -741,7 +953,7 @@ class SSTemplateParser extends Parser { } else { $result = array_pop($stack); - $_105 = FALSE; break; + $_138 = FALSE; break; } $stack[] = $result; $result = $this->construct( $matchrule, "String" ); if (( $subres = $this->rx( '/ (\\\\\\\\ | \\\\. | [^'.$this->expression($result, $stack, 'q').'\\\\])* /' ) ) !== FALSE) { @@ -751,15 +963,15 @@ class SSTemplateParser extends Parser { } else { $result = array_pop($stack); - $_105 = FALSE; break; + $_138 = FALSE; break; } if (( $subres = $this->literal( ''.$this->expression($result, $stack, 'q').'' ) ) !== FALSE) { $result["text"] .= $subres; } - else { $_105 = FALSE; break; } - $_105 = TRUE; break; + else { $_138 = FALSE; break; } + $_138 = TRUE; break; } while(0); - if( $_105 === TRUE ) { return $this->finalise($result); } - if( $_105 === FALSE) { return FALSE; } + if( $_138 === TRUE ) { return $this->finalise($result); } + if( $_138 === FALSE) { return FALSE; } } @@ -783,45 +995,45 @@ class SSTemplateParser extends Parser { protected $match_Argument_typestack = array('Argument'); function match_Argument ($stack = array()) { $matchrule = "Argument"; $result = $this->construct($matchrule, $matchrule, null); - $_125 = NULL; + $_158 = NULL; do { - $res_108 = $result; - $pos_108 = $this->pos; + $res_141 = $result; + $pos_141 = $this->pos; $matcher = 'match_'.'DollarMarkedLookup'; $key = $matcher; $pos = $this->pos; $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); if ($subres !== FALSE) { $this->store( $result, $subres, "DollarMarkedLookup" ); - $_125 = TRUE; break; + $_158 = TRUE; break; } - $result = $res_108; - $this->pos = $pos_108; - $_123 = NULL; + $result = $res_141; + $this->pos = $pos_141; + $_156 = NULL; do { - $res_110 = $result; - $pos_110 = $this->pos; + $res_143 = $result; + $pos_143 = $this->pos; $matcher = 'match_'.'QuotedString'; $key = $matcher; $pos = $this->pos; $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); if ($subres !== FALSE) { $this->store( $result, $subres, "QuotedString" ); - $_123 = TRUE; break; + $_156 = TRUE; break; } - $result = $res_110; - $this->pos = $pos_110; - $_121 = NULL; + $result = $res_143; + $this->pos = $pos_143; + $_154 = NULL; do { - $res_112 = $result; - $pos_112 = $this->pos; - $_118 = NULL; + $res_145 = $result; + $pos_145 = $this->pos; + $_151 = NULL; do { $matcher = 'match_'.'Lookup'; $key = $matcher; $pos = $this->pos; $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); if ($subres !== FALSE) { $this->store( $result, $subres, "Lookup" ); } - else { $_118 = FALSE; break; } - $res_117 = $result; - $pos_117 = $this->pos; - $_116 = NULL; + else { $_151 = FALSE; break; } + $res_150 = $result; + $pos_150 = $this->pos; + $_149 = NULL; do { if (( $subres = $this->whitespace( ) ) !== FALSE) { $result["text"] .= $subres; } $matcher = 'match_'.'FreeString'; $key = $matcher; $pos = $this->pos; @@ -829,50 +1041,50 @@ class SSTemplateParser extends Parser { if ($subres !== FALSE) { $this->store( $result, $subres ); } - else { $_116 = FALSE; break; } - $_116 = TRUE; break; + else { $_149 = FALSE; break; } + $_149 = TRUE; break; } while(0); - if( $_116 === TRUE ) { - $result = $res_117; - $this->pos = $pos_117; - $_118 = FALSE; break; + if( $_149 === TRUE ) { + $result = $res_150; + $this->pos = $pos_150; + $_151 = FALSE; break; } - if( $_116 === FALSE) { - $result = $res_117; - $this->pos = $pos_117; + if( $_149 === FALSE) { + $result = $res_150; + $this->pos = $pos_150; } - $_118 = TRUE; break; + $_151 = TRUE; break; } while(0); - if( $_118 === TRUE ) { $_121 = TRUE; break; } - $result = $res_112; - $this->pos = $pos_112; + if( $_151 === TRUE ) { $_154 = TRUE; break; } + $result = $res_145; + $this->pos = $pos_145; $matcher = 'match_'.'FreeString'; $key = $matcher; $pos = $this->pos; $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); if ($subres !== FALSE) { $this->store( $result, $subres, "FreeString" ); - $_121 = TRUE; break; + $_154 = TRUE; break; } - $result = $res_112; - $this->pos = $pos_112; - $_121 = FALSE; break; + $result = $res_145; + $this->pos = $pos_145; + $_154 = FALSE; break; } while(0); - if( $_121 === TRUE ) { $_123 = TRUE; break; } - $result = $res_110; - $this->pos = $pos_110; - $_123 = FALSE; break; + if( $_154 === TRUE ) { $_156 = TRUE; break; } + $result = $res_143; + $this->pos = $pos_143; + $_156 = FALSE; break; } while(0); - if( $_123 === TRUE ) { $_125 = TRUE; break; } - $result = $res_108; - $this->pos = $pos_108; - $_125 = FALSE; break; + if( $_156 === TRUE ) { $_158 = TRUE; break; } + $result = $res_141; + $this->pos = $pos_141; + $_158 = FALSE; break; } while(0); - if( $_125 === TRUE ) { return $this->finalise($result); } - if( $_125 === FALSE) { return FALSE; } + if( $_158 === TRUE ) { return $this->finalise($result); } + if( $_158 === FALSE) { return FALSE; } } @@ -916,51 +1128,51 @@ class SSTemplateParser extends Parser { function Argument_FreeString(&$res, $sub) { $res['ArgumentMode'] = 'string'; - $res['php'] = "'" . str_replace("'", "\\'", rtrim($sub['text'])) . "'"; + $res['php'] = "'" . str_replace("'", "\\'", $sub['text']) . "'"; } /* ComparisonOperator: "==" | "!=" | "=" */ protected $match_ComparisonOperator_typestack = array('ComparisonOperator'); function match_ComparisonOperator ($stack = array()) { $matchrule = "ComparisonOperator"; $result = $this->construct($matchrule, $matchrule, null); - $_134 = NULL; + $_167 = NULL; do { - $res_127 = $result; - $pos_127 = $this->pos; + $res_160 = $result; + $pos_160 = $this->pos; if (( $subres = $this->literal( '==' ) ) !== FALSE) { $result["text"] .= $subres; - $_134 = TRUE; break; + $_167 = TRUE; break; } - $result = $res_127; - $this->pos = $pos_127; - $_132 = NULL; + $result = $res_160; + $this->pos = $pos_160; + $_165 = NULL; do { - $res_129 = $result; - $pos_129 = $this->pos; + $res_162 = $result; + $pos_162 = $this->pos; if (( $subres = $this->literal( '!=' ) ) !== FALSE) { $result["text"] .= $subres; - $_132 = TRUE; break; + $_165 = TRUE; break; } - $result = $res_129; - $this->pos = $pos_129; + $result = $res_162; + $this->pos = $pos_162; if (substr($this->string,$this->pos,1) == '=') { $this->pos += 1; $result["text"] .= '='; - $_132 = TRUE; break; + $_165 = TRUE; break; } - $result = $res_129; - $this->pos = $pos_129; - $_132 = FALSE; break; + $result = $res_162; + $this->pos = $pos_162; + $_165 = FALSE; break; } while(0); - if( $_132 === TRUE ) { $_134 = TRUE; break; } - $result = $res_127; - $this->pos = $pos_127; - $_134 = FALSE; break; + if( $_165 === TRUE ) { $_167 = TRUE; break; } + $result = $res_160; + $this->pos = $pos_160; + $_167 = FALSE; break; } while(0); - if( $_134 === TRUE ) { return $this->finalise($result); } - if( $_134 === FALSE) { return FALSE; } + if( $_167 === TRUE ) { return $this->finalise($result); } + if( $_167 === FALSE) { return FALSE; } } @@ -968,27 +1180,27 @@ class SSTemplateParser extends Parser { protected $match_Comparison_typestack = array('Comparison'); function match_Comparison ($stack = array()) { $matchrule = "Comparison"; $result = $this->construct($matchrule, $matchrule, null); - $_141 = NULL; + $_174 = NULL; do { $matcher = 'match_'.'Argument'; $key = $matcher; $pos = $this->pos; $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); if ($subres !== FALSE) { $this->store( $result, $subres ); } - else { $_141 = FALSE; break; } + else { $_174 = FALSE; break; } if (( $subres = $this->whitespace( ) ) !== FALSE) { $result["text"] .= $subres; } $matcher = 'match_'.'ComparisonOperator'; $key = $matcher; $pos = $this->pos; $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); if ($subres !== FALSE) { $this->store( $result, $subres ); } - else { $_141 = FALSE; break; } + else { $_174 = FALSE; break; } if (( $subres = $this->whitespace( ) ) !== FALSE) { $result["text"] .= $subres; } $matcher = 'match_'.'Argument'; $key = $matcher; $pos = $this->pos; $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); if ($subres !== FALSE) { $this->store( $result, $subres ); } - else { $_141 = FALSE; break; } - $_141 = TRUE; break; + else { $_174 = FALSE; break; } + $_174 = TRUE; break; } while(0); - if( $_141 === TRUE ) { return $this->finalise($result); } - if( $_141 === FALSE) { return FALSE; } + if( $_174 === TRUE ) { return $this->finalise($result); } + if( $_174 === FALSE) { return FALSE; } } @@ -1011,11 +1223,11 @@ class SSTemplateParser extends Parser { protected $match_PresenceCheck_typestack = array('PresenceCheck'); function match_PresenceCheck ($stack = array()) { $matchrule = "PresenceCheck"; $result = $this->construct($matchrule, $matchrule, null); - $_148 = NULL; + $_181 = NULL; do { - $res_146 = $result; - $pos_146 = $this->pos; - $_145 = NULL; + $res_179 = $result; + $pos_179 = $this->pos; + $_178 = NULL; do { $stack[] = $result; $result = $this->construct( $matchrule, "Not" ); if (( $subres = $this->literal( 'not' ) ) !== FALSE) { @@ -1025,27 +1237,27 @@ class SSTemplateParser extends Parser { } else { $result = array_pop($stack); - $_145 = FALSE; break; + $_178 = FALSE; break; } if (( $subres = $this->whitespace( ) ) !== FALSE) { $result["text"] .= $subres; } - $_145 = TRUE; break; + $_178 = TRUE; break; } while(0); - if( $_145 === FALSE) { - $result = $res_146; - $this->pos = $pos_146; - unset( $res_146 ); - unset( $pos_146 ); + if( $_178 === FALSE) { + $result = $res_179; + $this->pos = $pos_179; + unset( $res_179 ); + unset( $pos_179 ); } $matcher = 'match_'.'Argument'; $key = $matcher; $pos = $this->pos; $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); if ($subres !== FALSE) { $this->store( $result, $subres ); } - else { $_148 = FALSE; break; } - $_148 = TRUE; break; + else { $_181 = FALSE; break; } + $_181 = TRUE; break; } while(0); - if( $_148 === TRUE ) { return $this->finalise($result); } - if( $_148 === FALSE) { return FALSE; } + if( $_181 === TRUE ) { return $this->finalise($result); } + if( $_181 === FALSE) { return FALSE; } } @@ -1070,31 +1282,31 @@ class SSTemplateParser extends Parser { protected $match_IfArgumentPortion_typestack = array('IfArgumentPortion'); function match_IfArgumentPortion ($stack = array()) { $matchrule = "IfArgumentPortion"; $result = $this->construct($matchrule, $matchrule, null); - $_153 = NULL; + $_186 = NULL; do { - $res_150 = $result; - $pos_150 = $this->pos; + $res_183 = $result; + $pos_183 = $this->pos; $matcher = 'match_'.'Comparison'; $key = $matcher; $pos = $this->pos; $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); if ($subres !== FALSE) { $this->store( $result, $subres ); - $_153 = TRUE; break; + $_186 = TRUE; break; } - $result = $res_150; - $this->pos = $pos_150; + $result = $res_183; + $this->pos = $pos_183; $matcher = 'match_'.'PresenceCheck'; $key = $matcher; $pos = $this->pos; $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); if ($subres !== FALSE) { $this->store( $result, $subres ); - $_153 = TRUE; break; + $_186 = TRUE; break; } - $result = $res_150; - $this->pos = $pos_150; - $_153 = FALSE; break; + $result = $res_183; + $this->pos = $pos_183; + $_186 = FALSE; break; } while(0); - if( $_153 === TRUE ) { return $this->finalise($result); } - if( $_153 === FALSE) { return FALSE; } + if( $_186 === TRUE ) { return $this->finalise($result); } + if( $_186 === FALSE) { return FALSE; } } @@ -1107,27 +1319,27 @@ class SSTemplateParser extends Parser { protected $match_BooleanOperator_typestack = array('BooleanOperator'); function match_BooleanOperator ($stack = array()) { $matchrule = "BooleanOperator"; $result = $this->construct($matchrule, $matchrule, null); - $_158 = NULL; + $_191 = NULL; do { - $res_155 = $result; - $pos_155 = $this->pos; + $res_188 = $result; + $pos_188 = $this->pos; if (( $subres = $this->literal( '||' ) ) !== FALSE) { $result["text"] .= $subres; - $_158 = TRUE; break; + $_191 = TRUE; break; } - $result = $res_155; - $this->pos = $pos_155; + $result = $res_188; + $this->pos = $pos_188; if (( $subres = $this->literal( '&&' ) ) !== FALSE) { $result["text"] .= $subres; - $_158 = TRUE; break; + $_191 = TRUE; break; } - $result = $res_155; - $this->pos = $pos_155; - $_158 = FALSE; break; + $result = $res_188; + $this->pos = $pos_188; + $_191 = FALSE; break; } while(0); - if( $_158 === TRUE ) { return $this->finalise($result); } - if( $_158 === FALSE) { return FALSE; } + if( $_191 === TRUE ) { return $this->finalise($result); } + if( $_191 === FALSE) { return FALSE; } } @@ -1135,18 +1347,18 @@ class SSTemplateParser extends Parser { protected $match_IfArgument_typestack = array('IfArgument'); function match_IfArgument ($stack = array()) { $matchrule = "IfArgument"; $result = $this->construct($matchrule, $matchrule, null); - $_167 = NULL; + $_200 = NULL; do { $matcher = 'match_'.'IfArgumentPortion'; $key = $matcher; $pos = $this->pos; $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); if ($subres !== FALSE) { $this->store( $result, $subres, "IfArgumentPortion" ); } - else { $_167 = FALSE; break; } + else { $_200 = FALSE; break; } while (true) { - $res_166 = $result; - $pos_166 = $this->pos; - $_165 = NULL; + $res_199 = $result; + $pos_199 = $this->pos; + $_198 = NULL; do { if (( $subres = $this->whitespace( ) ) !== FALSE) { $result["text"] .= $subres; } $matcher = 'match_'.'BooleanOperator'; $key = $matcher; $pos = $this->pos; @@ -1154,30 +1366,30 @@ class SSTemplateParser extends Parser { if ($subres !== FALSE) { $this->store( $result, $subres, "BooleanOperator" ); } - else { $_165 = FALSE; break; } + else { $_198 = FALSE; break; } if (( $subres = $this->whitespace( ) ) !== FALSE) { $result["text"] .= $subres; } $matcher = 'match_'.'IfArgumentPortion'; $key = $matcher; $pos = $this->pos; $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); if ($subres !== FALSE) { $this->store( $result, $subres, "IfArgumentPortion" ); } - else { $_165 = FALSE; break; } - $_165 = TRUE; break; + else { $_198 = FALSE; break; } + $_198 = TRUE; break; } while(0); - if( $_165 === FALSE) { - $result = $res_166; - $this->pos = $pos_166; - unset( $res_166 ); - unset( $pos_166 ); + if( $_198 === FALSE) { + $result = $res_199; + $this->pos = $pos_199; + unset( $res_199 ); + unset( $pos_199 ); break; } } - $_167 = TRUE; break; + $_200 = TRUE; break; } while(0); - if( $_167 === TRUE ) { return $this->finalise($result); } - if( $_167 === FALSE) { return FALSE; } + if( $_200 === TRUE ) { return $this->finalise($result); } + if( $_200 === FALSE) { return FALSE; } } @@ -1194,42 +1406,42 @@ class SSTemplateParser extends Parser { protected $match_IfPart_typestack = array('IfPart'); function match_IfPart ($stack = array()) { $matchrule = "IfPart"; $result = $this->construct($matchrule, $matchrule, null); - $_177 = NULL; + $_210 = NULL; do { if (( $subres = $this->literal( '<%' ) ) !== FALSE) { $result["text"] .= $subres; } - else { $_177 = FALSE; break; } + else { $_210 = FALSE; break; } if (( $subres = $this->whitespace( ) ) !== FALSE) { $result["text"] .= $subres; } if (( $subres = $this->literal( 'if' ) ) !== FALSE) { $result["text"] .= $subres; } - else { $_177 = FALSE; break; } + else { $_210 = FALSE; break; } if (( $subres = $this->whitespace( ) ) !== FALSE) { $result["text"] .= $subres; } - else { $_177 = FALSE; break; } + else { $_210 = FALSE; break; } $matcher = 'match_'.'IfArgument'; $key = $matcher; $pos = $this->pos; $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); if ($subres !== FALSE) { $this->store( $result, $subres, "IfArgument" ); } - else { $_177 = FALSE; break; } + else { $_210 = FALSE; break; } if (( $subres = $this->whitespace( ) ) !== FALSE) { $result["text"] .= $subres; } if (( $subres = $this->literal( '%>' ) ) !== FALSE) { $result["text"] .= $subres; } - else { $_177 = FALSE; break; } - $res_176 = $result; - $pos_176 = $this->pos; + else { $_210 = FALSE; break; } + $res_209 = $result; + $pos_209 = $this->pos; $matcher = 'match_'.$this->expression($result, $stack, 'TemplateMatcher'); $key = $matcher; $pos = $this->pos; $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); if ($subres !== FALSE) { $this->store( $result, $subres, "Template" ); } else { - $result = $res_176; - $this->pos = $pos_176; - unset( $res_176 ); - unset( $pos_176 ); + $result = $res_209; + $this->pos = $pos_209; + unset( $res_209 ); + unset( $pos_209 ); } - $_177 = TRUE; break; + $_210 = TRUE; break; } while(0); - if( $_177 === TRUE ) { return $this->finalise($result); } - if( $_177 === FALSE) { return FALSE; } + if( $_210 === TRUE ) { return $this->finalise($result); } + if( $_210 === FALSE) { return FALSE; } } @@ -1237,35 +1449,35 @@ class SSTemplateParser extends Parser { protected $match_ElseIfPart_typestack = array('ElseIfPart'); function match_ElseIfPart ($stack = array()) { $matchrule = "ElseIfPart"; $result = $this->construct($matchrule, $matchrule, null); - $_187 = NULL; + $_220 = NULL; do { if (( $subres = $this->literal( '<%' ) ) !== FALSE) { $result["text"] .= $subres; } - else { $_187 = FALSE; break; } + else { $_220 = FALSE; break; } if (( $subres = $this->whitespace( ) ) !== FALSE) { $result["text"] .= $subres; } if (( $subres = $this->literal( 'else_if' ) ) !== FALSE) { $result["text"] .= $subres; } - else { $_187 = FALSE; break; } + else { $_220 = FALSE; break; } if (( $subres = $this->whitespace( ) ) !== FALSE) { $result["text"] .= $subres; } - else { $_187 = FALSE; break; } + else { $_220 = FALSE; break; } $matcher = 'match_'.'IfArgument'; $key = $matcher; $pos = $this->pos; $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); if ($subres !== FALSE) { $this->store( $result, $subres, "IfArgument" ); } - else { $_187 = FALSE; break; } + else { $_220 = FALSE; break; } if (( $subres = $this->whitespace( ) ) !== FALSE) { $result["text"] .= $subres; } if (( $subres = $this->literal( '%>' ) ) !== FALSE) { $result["text"] .= $subres; } - else { $_187 = FALSE; break; } + else { $_220 = FALSE; break; } $matcher = 'match_'.$this->expression($result, $stack, 'TemplateMatcher'); $key = $matcher; $pos = $this->pos; $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); if ($subres !== FALSE) { $this->store( $result, $subres, "Template" ); } - else { $_187 = FALSE; break; } - $_187 = TRUE; break; + else { $_220 = FALSE; break; } + $_220 = TRUE; break; } while(0); - if( $_187 === TRUE ) { return $this->finalise($result); } - if( $_187 === FALSE) { return FALSE; } + if( $_220 === TRUE ) { return $this->finalise($result); } + if( $_220 === FALSE) { return FALSE; } } @@ -1273,27 +1485,27 @@ class SSTemplateParser extends Parser { protected $match_ElsePart_typestack = array('ElsePart'); function match_ElsePart ($stack = array()) { $matchrule = "ElsePart"; $result = $this->construct($matchrule, $matchrule, null); - $_195 = NULL; + $_228 = NULL; do { if (( $subres = $this->literal( '<%' ) ) !== FALSE) { $result["text"] .= $subres; } - else { $_195 = FALSE; break; } + else { $_228 = FALSE; break; } if (( $subres = $this->whitespace( ) ) !== FALSE) { $result["text"] .= $subres; } if (( $subres = $this->literal( 'else' ) ) !== FALSE) { $result["text"] .= $subres; } - else { $_195 = FALSE; break; } + else { $_228 = FALSE; break; } if (( $subres = $this->whitespace( ) ) !== FALSE) { $result["text"] .= $subres; } if (( $subres = $this->literal( '%>' ) ) !== FALSE) { $result["text"] .= $subres; } - else { $_195 = FALSE; break; } + else { $_228 = FALSE; break; } $matcher = 'match_'.$this->expression($result, $stack, 'TemplateMatcher'); $key = $matcher; $pos = $this->pos; $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); if ($subres !== FALSE) { $this->store( $result, $subres, "Template" ); } - else { $_195 = FALSE; break; } - $_195 = TRUE; break; + else { $_228 = FALSE; break; } + $_228 = TRUE; break; } while(0); - if( $_195 === TRUE ) { return $this->finalise($result); } - if( $_195 === FALSE) { return FALSE; } + if( $_228 === TRUE ) { return $this->finalise($result); } + if( $_228 === FALSE) { return FALSE; } } @@ -1301,50 +1513,50 @@ class SSTemplateParser extends Parser { protected $match_If_typestack = array('If'); function match_If ($stack = array()) { $matchrule = "If"; $result = $this->construct($matchrule, $matchrule, null); - $_205 = NULL; + $_238 = NULL; do { $matcher = 'match_'.'IfPart'; $key = $matcher; $pos = $this->pos; $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); if ($subres !== FALSE) { $this->store( $result, $subres ); } - else { $_205 = FALSE; break; } + else { $_238 = FALSE; break; } while (true) { - $res_198 = $result; - $pos_198 = $this->pos; + $res_231 = $result; + $pos_231 = $this->pos; $matcher = 'match_'.'ElseIfPart'; $key = $matcher; $pos = $this->pos; $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); if ($subres !== FALSE) { $this->store( $result, $subres ); } else { - $result = $res_198; - $this->pos = $pos_198; - unset( $res_198 ); - unset( $pos_198 ); + $result = $res_231; + $this->pos = $pos_231; + unset( $res_231 ); + unset( $pos_231 ); break; } } - $res_199 = $result; - $pos_199 = $this->pos; + $res_232 = $result; + $pos_232 = $this->pos; $matcher = 'match_'.'ElsePart'; $key = $matcher; $pos = $this->pos; $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); if ($subres !== FALSE) { $this->store( $result, $subres ); } else { - $result = $res_199; - $this->pos = $pos_199; - unset( $res_199 ); - unset( $pos_199 ); + $result = $res_232; + $this->pos = $pos_232; + unset( $res_232 ); + unset( $pos_232 ); } if (( $subres = $this->literal( '<%' ) ) !== FALSE) { $result["text"] .= $subres; } - else { $_205 = FALSE; break; } + else { $_238 = FALSE; break; } if (( $subres = $this->whitespace( ) ) !== FALSE) { $result["text"] .= $subres; } if (( $subres = $this->literal( 'end_if' ) ) !== FALSE) { $result["text"] .= $subres; } - else { $_205 = FALSE; break; } + else { $_238 = FALSE; break; } if (( $subres = $this->whitespace( ) ) !== FALSE) { $result["text"] .= $subres; } if (( $subres = $this->literal( '%>' ) ) !== FALSE) { $result["text"] .= $subres; } - else { $_205 = FALSE; break; } - $_205 = TRUE; break; + else { $_238 = FALSE; break; } + $_238 = TRUE; break; } while(0); - if( $_205 === TRUE ) { return $this->finalise($result); } - if( $_205 === FALSE) { return FALSE; } + if( $_238 === TRUE ) { return $this->finalise($result); } + if( $_238 === FALSE) { return FALSE; } } @@ -1374,61 +1586,61 @@ class SSTemplateParser extends Parser { protected $match_Require_typestack = array('Require'); function match_Require ($stack = array()) { $matchrule = "Require"; $result = $this->construct($matchrule, $matchrule, null); - $_221 = NULL; + $_254 = NULL; do { if (( $subres = $this->literal( '<%' ) ) !== FALSE) { $result["text"] .= $subres; } - else { $_221 = FALSE; break; } + else { $_254 = FALSE; break; } if (( $subres = $this->whitespace( ) ) !== FALSE) { $result["text"] .= $subres; } if (( $subres = $this->literal( 'require' ) ) !== FALSE) { $result["text"] .= $subres; } - else { $_221 = FALSE; break; } + else { $_254 = FALSE; break; } if (( $subres = $this->whitespace( ) ) !== FALSE) { $result["text"] .= $subres; } - else { $_221 = FALSE; break; } + else { $_254 = FALSE; break; } $stack[] = $result; $result = $this->construct( $matchrule, "Call" ); - $_217 = NULL; + $_250 = NULL; do { $matcher = 'match_'.'Word'; $key = $matcher; $pos = $this->pos; $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); if ($subres !== FALSE) { $this->store( $result, $subres, "Method" ); } - else { $_217 = FALSE; break; } + else { $_250 = FALSE; break; } if (substr($this->string,$this->pos,1) == '(') { $this->pos += 1; $result["text"] .= '('; } - else { $_217 = FALSE; break; } + else { $_250 = FALSE; break; } if (( $subres = $this->whitespace( ) ) !== FALSE) { $result["text"] .= $subres; } $matcher = 'match_'.'CallArguments'; $key = $matcher; $pos = $this->pos; $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); if ($subres !== FALSE) { $this->store( $result, $subres, "CallArguments" ); } - else { $_217 = FALSE; break; } + else { $_250 = FALSE; break; } if (( $subres = $this->whitespace( ) ) !== FALSE) { $result["text"] .= $subres; } if (substr($this->string,$this->pos,1) == ')') { $this->pos += 1; $result["text"] .= ')'; } - else { $_217 = FALSE; break; } - $_217 = TRUE; break; + else { $_250 = FALSE; break; } + $_250 = TRUE; break; } while(0); - if( $_217 === TRUE ) { + if( $_250 === TRUE ) { $subres = $result; $result = array_pop($stack); $this->store( $result, $subres, 'Call' ); } - if( $_217 === FALSE) { + if( $_250 === FALSE) { $result = array_pop($stack); - $_221 = FALSE; break; + $_254 = FALSE; break; } if (( $subres = $this->whitespace( ) ) !== FALSE) { $result["text"] .= $subres; } if (( $subres = $this->literal( '%>' ) ) !== FALSE) { $result["text"] .= $subres; } - else { $_221 = FALSE; break; } - $_221 = TRUE; break; + else { $_254 = FALSE; break; } + $_254 = TRUE; break; } while(0); - if( $_221 === TRUE ) { return $this->finalise($result); } - if( $_221 === FALSE) { return FALSE; } + if( $_254 === TRUE ) { return $this->finalise($result); } + if( $_254 === FALSE) { return FALSE; } } @@ -1448,97 +1660,97 @@ class SSTemplateParser extends Parser { protected $match_CacheBlockArgument_typestack = array('CacheBlockArgument'); function match_CacheBlockArgument ($stack = array()) { $matchrule = "CacheBlockArgument"; $result = $this->construct($matchrule, $matchrule, null); - $_241 = NULL; + $_274 = NULL; do { - $res_229 = $result; - $pos_229 = $this->pos; - $_228 = NULL; + $res_262 = $result; + $pos_262 = $this->pos; + $_261 = NULL; do { - $_226 = NULL; + $_259 = NULL; do { - $res_223 = $result; - $pos_223 = $this->pos; + $res_256 = $result; + $pos_256 = $this->pos; if (( $subres = $this->literal( 'if ' ) ) !== FALSE) { $result["text"] .= $subres; - $_226 = TRUE; break; + $_259 = TRUE; break; } - $result = $res_223; - $this->pos = $pos_223; + $result = $res_256; + $this->pos = $pos_256; if (( $subres = $this->literal( 'unless ' ) ) !== FALSE) { $result["text"] .= $subres; - $_226 = TRUE; break; + $_259 = TRUE; break; } - $result = $res_223; - $this->pos = $pos_223; - $_226 = FALSE; break; + $result = $res_256; + $this->pos = $pos_256; + $_259 = FALSE; break; } while(0); - if( $_226 === FALSE) { $_228 = FALSE; break; } - $_228 = TRUE; break; + if( $_259 === FALSE) { $_261 = FALSE; break; } + $_261 = TRUE; break; } while(0); - if( $_228 === TRUE ) { - $result = $res_229; - $this->pos = $pos_229; - $_241 = FALSE; break; + if( $_261 === TRUE ) { + $result = $res_262; + $this->pos = $pos_262; + $_274 = FALSE; break; } - if( $_228 === FALSE) { - $result = $res_229; - $this->pos = $pos_229; + if( $_261 === FALSE) { + $result = $res_262; + $this->pos = $pos_262; } - $_239 = NULL; + $_272 = NULL; do { - $_237 = NULL; + $_270 = NULL; do { - $res_230 = $result; - $pos_230 = $this->pos; + $res_263 = $result; + $pos_263 = $this->pos; $matcher = 'match_'.'DollarMarkedLookup'; $key = $matcher; $pos = $this->pos; $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); if ($subres !== FALSE) { $this->store( $result, $subres, "DollarMarkedLookup" ); - $_237 = TRUE; break; + $_270 = TRUE; break; } - $result = $res_230; - $this->pos = $pos_230; - $_235 = NULL; + $result = $res_263; + $this->pos = $pos_263; + $_268 = NULL; do { - $res_232 = $result; - $pos_232 = $this->pos; + $res_265 = $result; + $pos_265 = $this->pos; $matcher = 'match_'.'QuotedString'; $key = $matcher; $pos = $this->pos; $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); if ($subres !== FALSE) { $this->store( $result, $subres, "QuotedString" ); - $_235 = TRUE; break; + $_268 = TRUE; break; } - $result = $res_232; - $this->pos = $pos_232; + $result = $res_265; + $this->pos = $pos_265; $matcher = 'match_'.'Lookup'; $key = $matcher; $pos = $this->pos; $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); if ($subres !== FALSE) { $this->store( $result, $subres, "Lookup" ); - $_235 = TRUE; break; + $_268 = TRUE; break; } - $result = $res_232; - $this->pos = $pos_232; - $_235 = FALSE; break; + $result = $res_265; + $this->pos = $pos_265; + $_268 = FALSE; break; } while(0); - if( $_235 === TRUE ) { $_237 = TRUE; break; } - $result = $res_230; - $this->pos = $pos_230; - $_237 = FALSE; break; + if( $_268 === TRUE ) { $_270 = TRUE; break; } + $result = $res_263; + $this->pos = $pos_263; + $_270 = FALSE; break; } while(0); - if( $_237 === FALSE) { $_239 = FALSE; break; } - $_239 = TRUE; break; + if( $_270 === FALSE) { $_272 = FALSE; break; } + $_272 = TRUE; break; } while(0); - if( $_239 === FALSE) { $_241 = FALSE; break; } - $_241 = TRUE; break; + if( $_272 === FALSE) { $_274 = FALSE; break; } + $_274 = TRUE; break; } while(0); - if( $_241 === TRUE ) { return $this->finalise($result); } - if( $_241 === FALSE) { return FALSE; } + if( $_274 === TRUE ) { return $this->finalise($result); } + if( $_274 === FALSE) { return FALSE; } } @@ -1559,44 +1771,44 @@ class SSTemplateParser extends Parser { protected $match_CacheBlockArguments_typestack = array('CacheBlockArguments'); function match_CacheBlockArguments ($stack = array()) { $matchrule = "CacheBlockArguments"; $result = $this->construct($matchrule, $matchrule, null); - $_250 = NULL; + $_283 = NULL; do { $matcher = 'match_'.'CacheBlockArgument'; $key = $matcher; $pos = $this->pos; $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); if ($subres !== FALSE) { $this->store( $result, $subres ); } - else { $_250 = FALSE; break; } + else { $_283 = FALSE; break; } while (true) { - $res_249 = $result; - $pos_249 = $this->pos; - $_248 = NULL; + $res_282 = $result; + $pos_282 = $this->pos; + $_281 = NULL; do { if (( $subres = $this->whitespace( ) ) !== FALSE) { $result["text"] .= $subres; } if (substr($this->string,$this->pos,1) == ',') { $this->pos += 1; $result["text"] .= ','; } - else { $_248 = FALSE; break; } + else { $_281 = FALSE; break; } if (( $subres = $this->whitespace( ) ) !== FALSE) { $result["text"] .= $subres; } $matcher = 'match_'.'CacheBlockArgument'; $key = $matcher; $pos = $this->pos; $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); if ($subres !== FALSE) { $this->store( $result, $subres ); } - else { $_248 = FALSE; break; } - $_248 = TRUE; break; + else { $_281 = FALSE; break; } + $_281 = TRUE; break; } while(0); - if( $_248 === FALSE) { - $result = $res_249; - $this->pos = $pos_249; - unset( $res_249 ); - unset( $pos_249 ); + if( $_281 === FALSE) { + $result = $res_282; + $this->pos = $pos_282; + unset( $res_282 ); + unset( $pos_282 ); break; } } - $_250 = TRUE; break; + $_283 = TRUE; break; } while(0); - if( $_250 === TRUE ) { return $this->finalise($result); } - if( $_250 === FALSE) { return FALSE; } + if( $_283 === TRUE ) { return $this->finalise($result); } + if( $_283 === FALSE) { return FALSE; } } @@ -1608,192 +1820,192 @@ class SSTemplateParser extends Parser { $res['php'] .= str_replace('$$FINAL', 'XML_val', $sub['php']); } - /* CacheBlockTemplate: (Comment | If | Require | OldI18NTag | Include | ClosedBlock | OpenBlock | MalformedBlock | Injection | Text)+ */ + /* CacheBlockTemplate: (Comment | Translate | If | Require | OldI18NTag | ClosedBlock | OpenBlock | MalformedBlock | Injection | Text)+ */ protected $match_CacheBlockTemplate_typestack = array('CacheBlockTemplate','Template'); function match_CacheBlockTemplate ($stack = array()) { $matchrule = "CacheBlockTemplate"; $result = $this->construct($matchrule, $matchrule, array('TemplateMatcher' => 'CacheRestrictedTemplate')); $count = 0; while (true) { - $res_290 = $result; - $pos_290 = $this->pos; - $_289 = NULL; + $res_323 = $result; + $pos_323 = $this->pos; + $_322 = NULL; do { - $_287 = NULL; + $_320 = NULL; do { - $res_252 = $result; - $pos_252 = $this->pos; + $res_285 = $result; + $pos_285 = $this->pos; $matcher = 'match_'.'Comment'; $key = $matcher; $pos = $this->pos; $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); if ($subres !== FALSE) { $this->store( $result, $subres ); - $_287 = TRUE; break; + $_320 = TRUE; break; } - $result = $res_252; - $this->pos = $pos_252; - $_285 = NULL; + $result = $res_285; + $this->pos = $pos_285; + $_318 = NULL; do { - $res_254 = $result; - $pos_254 = $this->pos; - $matcher = 'match_'.'If'; $key = $matcher; $pos = $this->pos; + $res_287 = $result; + $pos_287 = $this->pos; + $matcher = 'match_'.'Translate'; $key = $matcher; $pos = $this->pos; $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); if ($subres !== FALSE) { $this->store( $result, $subres ); - $_285 = TRUE; break; + $_318 = TRUE; break; } - $result = $res_254; - $this->pos = $pos_254; - $_283 = NULL; + $result = $res_287; + $this->pos = $pos_287; + $_316 = NULL; do { - $res_256 = $result; - $pos_256 = $this->pos; - $matcher = 'match_'.'Require'; $key = $matcher; $pos = $this->pos; + $res_289 = $result; + $pos_289 = $this->pos; + $matcher = 'match_'.'If'; $key = $matcher; $pos = $this->pos; $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); if ($subres !== FALSE) { $this->store( $result, $subres ); - $_283 = TRUE; break; + $_316 = TRUE; break; } - $result = $res_256; - $this->pos = $pos_256; - $_281 = NULL; + $result = $res_289; + $this->pos = $pos_289; + $_314 = NULL; do { - $res_258 = $result; - $pos_258 = $this->pos; - $matcher = 'match_'.'OldI18NTag'; $key = $matcher; $pos = $this->pos; + $res_291 = $result; + $pos_291 = $this->pos; + $matcher = 'match_'.'Require'; $key = $matcher; $pos = $this->pos; $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); if ($subres !== FALSE) { $this->store( $result, $subres ); - $_281 = TRUE; break; + $_314 = TRUE; break; } - $result = $res_258; - $this->pos = $pos_258; - $_279 = NULL; + $result = $res_291; + $this->pos = $pos_291; + $_312 = NULL; do { - $res_260 = $result; - $pos_260 = $this->pos; - $matcher = 'match_'.'Include'; $key = $matcher; $pos = $this->pos; + $res_293 = $result; + $pos_293 = $this->pos; + $matcher = 'match_'.'OldI18NTag'; $key = $matcher; $pos = $this->pos; $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); if ($subres !== FALSE) { $this->store( $result, $subres ); - $_279 = TRUE; break; + $_312 = TRUE; break; } - $result = $res_260; - $this->pos = $pos_260; - $_277 = NULL; + $result = $res_293; + $this->pos = $pos_293; + $_310 = NULL; do { - $res_262 = $result; - $pos_262 = $this->pos; + $res_295 = $result; + $pos_295 = $this->pos; $matcher = 'match_'.'ClosedBlock'; $key = $matcher; $pos = $this->pos; $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); if ($subres !== FALSE) { $this->store( $result, $subres ); - $_277 = TRUE; break; + $_310 = TRUE; break; } - $result = $res_262; - $this->pos = $pos_262; - $_275 = NULL; + $result = $res_295; + $this->pos = $pos_295; + $_308 = NULL; do { - $res_264 = $result; - $pos_264 = $this->pos; + $res_297 = $result; + $pos_297 = $this->pos; $matcher = 'match_'.'OpenBlock'; $key = $matcher; $pos = $this->pos; $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); if ($subres !== FALSE) { $this->store( $result, $subres ); - $_275 = TRUE; break; + $_308 = TRUE; break; } - $result = $res_264; - $this->pos = $pos_264; - $_273 = NULL; + $result = $res_297; + $this->pos = $pos_297; + $_306 = NULL; do { - $res_266 = $result; - $pos_266 = $this->pos; + $res_299 = $result; + $pos_299 = $this->pos; $matcher = 'match_'.'MalformedBlock'; $key = $matcher; $pos = $this->pos; $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); if ($subres !== FALSE) { $this->store( $result, $subres ); - $_273 = TRUE; break; + $_306 = TRUE; break; } - $result = $res_266; - $this->pos = $pos_266; - $_271 = NULL; + $result = $res_299; + $this->pos = $pos_299; + $_304 = NULL; do { - $res_268 = $result; - $pos_268 = $this->pos; + $res_301 = $result; + $pos_301 = $this->pos; $matcher = 'match_'.'Injection'; $key = $matcher; $pos = $this->pos; $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); if ($subres !== FALSE) { $this->store( $result, $subres ); - $_271 = TRUE; break; + $_304 = TRUE; break; } - $result = $res_268; - $this->pos = $pos_268; + $result = $res_301; + $this->pos = $pos_301; $matcher = 'match_'.'Text'; $key = $matcher; $pos = $this->pos; $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); if ($subres !== FALSE) { $this->store( $result, $subres ); - $_271 = TRUE; break; + $_304 = TRUE; break; } - $result = $res_268; - $this->pos = $pos_268; - $_271 = FALSE; break; + $result = $res_301; + $this->pos = $pos_301; + $_304 = FALSE; break; } while(0); - if( $_271 === TRUE ) { $_273 = TRUE; break; } - $result = $res_266; - $this->pos = $pos_266; - $_273 = FALSE; break; + if( $_304 === TRUE ) { $_306 = TRUE; break; } + $result = $res_299; + $this->pos = $pos_299; + $_306 = FALSE; break; } while(0); - if( $_273 === TRUE ) { $_275 = TRUE; break; } - $result = $res_264; - $this->pos = $pos_264; - $_275 = FALSE; break; + if( $_306 === TRUE ) { $_308 = TRUE; break; } + $result = $res_297; + $this->pos = $pos_297; + $_308 = FALSE; break; } while(0); - if( $_275 === TRUE ) { $_277 = TRUE; break; } - $result = $res_262; - $this->pos = $pos_262; - $_277 = FALSE; break; + if( $_308 === TRUE ) { $_310 = TRUE; break; } + $result = $res_295; + $this->pos = $pos_295; + $_310 = FALSE; break; } while(0); - if( $_277 === TRUE ) { $_279 = TRUE; break; } - $result = $res_260; - $this->pos = $pos_260; - $_279 = FALSE; break; + if( $_310 === TRUE ) { $_312 = TRUE; break; } + $result = $res_293; + $this->pos = $pos_293; + $_312 = FALSE; break; } while(0); - if( $_279 === TRUE ) { $_281 = TRUE; break; } - $result = $res_258; - $this->pos = $pos_258; - $_281 = FALSE; break; + if( $_312 === TRUE ) { $_314 = TRUE; break; } + $result = $res_291; + $this->pos = $pos_291; + $_314 = FALSE; break; } while(0); - if( $_281 === TRUE ) { $_283 = TRUE; break; } - $result = $res_256; - $this->pos = $pos_256; - $_283 = FALSE; break; + if( $_314 === TRUE ) { $_316 = TRUE; break; } + $result = $res_289; + $this->pos = $pos_289; + $_316 = FALSE; break; } while(0); - if( $_283 === TRUE ) { $_285 = TRUE; break; } - $result = $res_254; - $this->pos = $pos_254; - $_285 = FALSE; break; + if( $_316 === TRUE ) { $_318 = TRUE; break; } + $result = $res_287; + $this->pos = $pos_287; + $_318 = FALSE; break; } while(0); - if( $_285 === TRUE ) { $_287 = TRUE; break; } - $result = $res_252; - $this->pos = $pos_252; - $_287 = FALSE; break; + if( $_318 === TRUE ) { $_320 = TRUE; break; } + $result = $res_285; + $this->pos = $pos_285; + $_320 = FALSE; break; } while(0); - if( $_287 === FALSE) { $_289 = FALSE; break; } - $_289 = TRUE; break; + if( $_320 === FALSE) { $_322 = FALSE; break; } + $_322 = TRUE; break; } while(0); - if( $_289 === FALSE) { - $result = $res_290; - $this->pos = $pos_290; - unset( $res_290 ); - unset( $pos_290 ); + if( $_322 === FALSE) { + $result = $res_323; + $this->pos = $pos_323; + unset( $res_323 ); + unset( $pos_323 ); break; } $count += 1; @@ -1812,63 +2024,63 @@ class SSTemplateParser extends Parser { protected $match_UncachedBlock_typestack = array('UncachedBlock'); function match_UncachedBlock ($stack = array()) { $matchrule = "UncachedBlock"; $result = $this->construct($matchrule, $matchrule, null); - $_327 = NULL; + $_360 = NULL; do { if (( $subres = $this->literal( '<%' ) ) !== FALSE) { $result["text"] .= $subres; } - else { $_327 = FALSE; break; } + else { $_360 = FALSE; break; } if (( $subres = $this->whitespace( ) ) !== FALSE) { $result["text"] .= $subres; } if (( $subres = $this->literal( 'uncached' ) ) !== FALSE) { $result["text"] .= $subres; } - else { $_327 = FALSE; break; } + else { $_360 = FALSE; break; } if (( $subres = $this->whitespace( ) ) !== FALSE) { $result["text"] .= $subres; } - $res_295 = $result; - $pos_295 = $this->pos; + $res_328 = $result; + $pos_328 = $this->pos; $matcher = 'match_'.'CacheBlockArguments'; $key = $matcher; $pos = $this->pos; $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); if ($subres !== FALSE) { $this->store( $result, $subres ); } else { - $result = $res_295; - $this->pos = $pos_295; - unset( $res_295 ); - unset( $pos_295 ); + $result = $res_328; + $this->pos = $pos_328; + unset( $res_328 ); + unset( $pos_328 ); } - $res_307 = $result; - $pos_307 = $this->pos; - $_306 = NULL; + $res_340 = $result; + $pos_340 = $this->pos; + $_339 = NULL; do { if (( $subres = $this->whitespace( ) ) !== FALSE) { $result["text"] .= $subres; } $stack[] = $result; $result = $this->construct( $matchrule, "Conditional" ); - $_302 = NULL; + $_335 = NULL; do { - $_300 = NULL; + $_333 = NULL; do { - $res_297 = $result; - $pos_297 = $this->pos; + $res_330 = $result; + $pos_330 = $this->pos; if (( $subres = $this->literal( 'if' ) ) !== FALSE) { $result["text"] .= $subres; - $_300 = TRUE; break; + $_333 = TRUE; break; } - $result = $res_297; - $this->pos = $pos_297; + $result = $res_330; + $this->pos = $pos_330; if (( $subres = $this->literal( 'unless' ) ) !== FALSE) { $result["text"] .= $subres; - $_300 = TRUE; break; + $_333 = TRUE; break; } - $result = $res_297; - $this->pos = $pos_297; - $_300 = FALSE; break; + $result = $res_330; + $this->pos = $pos_330; + $_333 = FALSE; break; } while(0); - if( $_300 === FALSE) { $_302 = FALSE; break; } - $_302 = TRUE; break; + if( $_333 === FALSE) { $_335 = FALSE; break; } + $_335 = TRUE; break; } while(0); - if( $_302 === TRUE ) { + if( $_335 === TRUE ) { $subres = $result; $result = array_pop($stack); $this->store( $result, $subres, 'Conditional' ); } - if( $_302 === FALSE) { + if( $_335 === FALSE) { $result = array_pop($stack); - $_306 = FALSE; break; + $_339 = FALSE; break; } if (( $subres = $this->whitespace( ) ) !== FALSE) { $result["text"] .= $subres; } $matcher = 'match_'.'IfArgument'; $key = $matcher; $pos = $this->pos; @@ -1876,87 +2088,87 @@ class SSTemplateParser extends Parser { if ($subres !== FALSE) { $this->store( $result, $subres, "Condition" ); } - else { $_306 = FALSE; break; } - $_306 = TRUE; break; + else { $_339 = FALSE; break; } + $_339 = TRUE; break; } while(0); - if( $_306 === FALSE) { - $result = $res_307; - $this->pos = $pos_307; - unset( $res_307 ); - unset( $pos_307 ); + if( $_339 === FALSE) { + $result = $res_340; + $this->pos = $pos_340; + unset( $res_340 ); + unset( $pos_340 ); } if (( $subres = $this->whitespace( ) ) !== FALSE) { $result["text"] .= $subres; } if (( $subres = $this->literal( '%>' ) ) !== FALSE) { $result["text"] .= $subres; } - else { $_327 = FALSE; break; } - $res_310 = $result; - $pos_310 = $this->pos; + else { $_360 = FALSE; break; } + $res_343 = $result; + $pos_343 = $this->pos; $matcher = 'match_'.$this->expression($result, $stack, 'TemplateMatcher'); $key = $matcher; $pos = $this->pos; $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); if ($subres !== FALSE) { $this->store( $result, $subres, "Template" ); } else { - $result = $res_310; - $this->pos = $pos_310; - unset( $res_310 ); - unset( $pos_310 ); + $result = $res_343; + $this->pos = $pos_343; + unset( $res_343 ); + unset( $pos_343 ); } if (( $subres = $this->literal( '<%' ) ) !== FALSE) { $result["text"] .= $subres; } - else { $_327 = FALSE; break; } + else { $_360 = FALSE; break; } if (( $subres = $this->whitespace( ) ) !== FALSE) { $result["text"] .= $subres; } if (( $subres = $this->literal( 'end_' ) ) !== FALSE) { $result["text"] .= $subres; } - else { $_327 = FALSE; break; } - $_323 = NULL; + else { $_360 = FALSE; break; } + $_356 = NULL; do { - $_321 = NULL; + $_354 = NULL; do { - $res_314 = $result; - $pos_314 = $this->pos; + $res_347 = $result; + $pos_347 = $this->pos; if (( $subres = $this->literal( 'uncached' ) ) !== FALSE) { $result["text"] .= $subres; - $_321 = TRUE; break; + $_354 = TRUE; break; } - $result = $res_314; - $this->pos = $pos_314; - $_319 = NULL; + $result = $res_347; + $this->pos = $pos_347; + $_352 = NULL; do { - $res_316 = $result; - $pos_316 = $this->pos; + $res_349 = $result; + $pos_349 = $this->pos; if (( $subres = $this->literal( 'cached' ) ) !== FALSE) { $result["text"] .= $subres; - $_319 = TRUE; break; + $_352 = TRUE; break; } - $result = $res_316; - $this->pos = $pos_316; + $result = $res_349; + $this->pos = $pos_349; if (( $subres = $this->literal( 'cacheblock' ) ) !== FALSE) { $result["text"] .= $subres; - $_319 = TRUE; break; + $_352 = TRUE; break; } - $result = $res_316; - $this->pos = $pos_316; - $_319 = FALSE; break; + $result = $res_349; + $this->pos = $pos_349; + $_352 = FALSE; break; } while(0); - if( $_319 === TRUE ) { $_321 = TRUE; break; } - $result = $res_314; - $this->pos = $pos_314; - $_321 = FALSE; break; + if( $_352 === TRUE ) { $_354 = TRUE; break; } + $result = $res_347; + $this->pos = $pos_347; + $_354 = FALSE; break; } while(0); - if( $_321 === FALSE) { $_323 = FALSE; break; } - $_323 = TRUE; break; + if( $_354 === FALSE) { $_356 = FALSE; break; } + $_356 = TRUE; break; } while(0); - if( $_323 === FALSE) { $_327 = FALSE; break; } + if( $_356 === FALSE) { $_360 = FALSE; break; } if (( $subres = $this->whitespace( ) ) !== FALSE) { $result["text"] .= $subres; } if (( $subres = $this->literal( '%>' ) ) !== FALSE) { $result["text"] .= $subres; } - else { $_327 = FALSE; break; } - $_327 = TRUE; break; + else { $_360 = FALSE; break; } + $_360 = TRUE; break; } while(0); - if( $_327 === TRUE ) { return $this->finalise($result); } - if( $_327 === FALSE) { return FALSE; } + if( $_360 === TRUE ) { return $this->finalise($result); } + if( $_360 === FALSE) { return FALSE; } } @@ -1965,228 +2177,228 @@ class SSTemplateParser extends Parser { $res['php'] = $sub['php']; } - /* CacheRestrictedTemplate: (Comment | If | Require | CacheBlock | UncachedBlock | OldI18NTag | Include | ClosedBlock | OpenBlock | MalformedBlock | Injection | Text)+ */ + /* CacheRestrictedTemplate: (Comment | Translate | If | Require | CacheBlock | UncachedBlock | OldI18NTag | ClosedBlock | OpenBlock | MalformedBlock | Injection | Text)+ */ protected $match_CacheRestrictedTemplate_typestack = array('CacheRestrictedTemplate','Template'); function match_CacheRestrictedTemplate ($stack = array()) { $matchrule = "CacheRestrictedTemplate"; $result = $this->construct($matchrule, $matchrule, null); $count = 0; while (true) { - $res_375 = $result; - $pos_375 = $this->pos; - $_374 = NULL; + $res_408 = $result; + $pos_408 = $this->pos; + $_407 = NULL; do { - $_372 = NULL; + $_405 = NULL; do { - $res_329 = $result; - $pos_329 = $this->pos; + $res_362 = $result; + $pos_362 = $this->pos; $matcher = 'match_'.'Comment'; $key = $matcher; $pos = $this->pos; $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); if ($subres !== FALSE) { $this->store( $result, $subres ); - $_372 = TRUE; break; + $_405 = TRUE; break; } - $result = $res_329; - $this->pos = $pos_329; - $_370 = NULL; + $result = $res_362; + $this->pos = $pos_362; + $_403 = NULL; do { - $res_331 = $result; - $pos_331 = $this->pos; - $matcher = 'match_'.'If'; $key = $matcher; $pos = $this->pos; + $res_364 = $result; + $pos_364 = $this->pos; + $matcher = 'match_'.'Translate'; $key = $matcher; $pos = $this->pos; $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); if ($subres !== FALSE) { $this->store( $result, $subres ); - $_370 = TRUE; break; + $_403 = TRUE; break; } - $result = $res_331; - $this->pos = $pos_331; - $_368 = NULL; + $result = $res_364; + $this->pos = $pos_364; + $_401 = NULL; do { - $res_333 = $result; - $pos_333 = $this->pos; - $matcher = 'match_'.'Require'; $key = $matcher; $pos = $this->pos; + $res_366 = $result; + $pos_366 = $this->pos; + $matcher = 'match_'.'If'; $key = $matcher; $pos = $this->pos; $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); if ($subres !== FALSE) { $this->store( $result, $subres ); - $_368 = TRUE; break; + $_401 = TRUE; break; } - $result = $res_333; - $this->pos = $pos_333; - $_366 = NULL; + $result = $res_366; + $this->pos = $pos_366; + $_399 = NULL; do { - $res_335 = $result; - $pos_335 = $this->pos; - $matcher = 'match_'.'CacheBlock'; $key = $matcher; $pos = $this->pos; + $res_368 = $result; + $pos_368 = $this->pos; + $matcher = 'match_'.'Require'; $key = $matcher; $pos = $this->pos; $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); if ($subres !== FALSE) { $this->store( $result, $subres ); - $_366 = TRUE; break; + $_399 = TRUE; break; } - $result = $res_335; - $this->pos = $pos_335; - $_364 = NULL; + $result = $res_368; + $this->pos = $pos_368; + $_397 = NULL; do { - $res_337 = $result; - $pos_337 = $this->pos; - $matcher = 'match_'.'UncachedBlock'; $key = $matcher; $pos = $this->pos; + $res_370 = $result; + $pos_370 = $this->pos; + $matcher = 'match_'.'CacheBlock'; $key = $matcher; $pos = $this->pos; $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); if ($subres !== FALSE) { $this->store( $result, $subres ); - $_364 = TRUE; break; + $_397 = TRUE; break; } - $result = $res_337; - $this->pos = $pos_337; - $_362 = NULL; + $result = $res_370; + $this->pos = $pos_370; + $_395 = NULL; do { - $res_339 = $result; - $pos_339 = $this->pos; - $matcher = 'match_'.'OldI18NTag'; $key = $matcher; $pos = $this->pos; + $res_372 = $result; + $pos_372 = $this->pos; + $matcher = 'match_'.'UncachedBlock'; $key = $matcher; $pos = $this->pos; $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); if ($subres !== FALSE) { $this->store( $result, $subres ); - $_362 = TRUE; break; + $_395 = TRUE; break; } - $result = $res_339; - $this->pos = $pos_339; - $_360 = NULL; + $result = $res_372; + $this->pos = $pos_372; + $_393 = NULL; do { - $res_341 = $result; - $pos_341 = $this->pos; - $matcher = 'match_'.'Include'; $key = $matcher; $pos = $this->pos; + $res_374 = $result; + $pos_374 = $this->pos; + $matcher = 'match_'.'OldI18NTag'; $key = $matcher; $pos = $this->pos; $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); if ($subres !== FALSE) { $this->store( $result, $subres ); - $_360 = TRUE; break; + $_393 = TRUE; break; } - $result = $res_341; - $this->pos = $pos_341; - $_358 = NULL; + $result = $res_374; + $this->pos = $pos_374; + $_391 = NULL; do { - $res_343 = $result; - $pos_343 = $this->pos; + $res_376 = $result; + $pos_376 = $this->pos; $matcher = 'match_'.'ClosedBlock'; $key = $matcher; $pos = $this->pos; $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); if ($subres !== FALSE) { $this->store( $result, $subres ); - $_358 = TRUE; break; + $_391 = TRUE; break; } - $result = $res_343; - $this->pos = $pos_343; - $_356 = NULL; + $result = $res_376; + $this->pos = $pos_376; + $_389 = NULL; do { - $res_345 = $result; - $pos_345 = $this->pos; + $res_378 = $result; + $pos_378 = $this->pos; $matcher = 'match_'.'OpenBlock'; $key = $matcher; $pos = $this->pos; $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); if ($subres !== FALSE) { $this->store( $result, $subres ); - $_356 = TRUE; break; + $_389 = TRUE; break; } - $result = $res_345; - $this->pos = $pos_345; - $_354 = NULL; + $result = $res_378; + $this->pos = $pos_378; + $_387 = NULL; do { - $res_347 = $result; - $pos_347 = $this->pos; + $res_380 = $result; + $pos_380 = $this->pos; $matcher = 'match_'.'MalformedBlock'; $key = $matcher; $pos = $this->pos; $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); if ($subres !== FALSE) { $this->store( $result, $subres ); - $_354 = TRUE; break; + $_387 = TRUE; break; } - $result = $res_347; - $this->pos = $pos_347; - $_352 = NULL; + $result = $res_380; + $this->pos = $pos_380; + $_385 = NULL; do { - $res_349 = $result; - $pos_349 = $this->pos; + $res_382 = $result; + $pos_382 = $this->pos; $matcher = 'match_'.'Injection'; $key = $matcher; $pos = $this->pos; $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); if ($subres !== FALSE) { $this->store( $result, $subres ); - $_352 = TRUE; break; + $_385 = TRUE; break; } - $result = $res_349; - $this->pos = $pos_349; + $result = $res_382; + $this->pos = $pos_382; $matcher = 'match_'.'Text'; $key = $matcher; $pos = $this->pos; $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); if ($subres !== FALSE) { $this->store( $result, $subres ); - $_352 = TRUE; break; + $_385 = TRUE; break; } - $result = $res_349; - $this->pos = $pos_349; - $_352 = FALSE; break; + $result = $res_382; + $this->pos = $pos_382; + $_385 = FALSE; break; } while(0); - if( $_352 === TRUE ) { $_354 = TRUE; break; } - $result = $res_347; - $this->pos = $pos_347; - $_354 = FALSE; break; + if( $_385 === TRUE ) { $_387 = TRUE; break; } + $result = $res_380; + $this->pos = $pos_380; + $_387 = FALSE; break; } while(0); - if( $_354 === TRUE ) { $_356 = TRUE; break; } - $result = $res_345; - $this->pos = $pos_345; - $_356 = FALSE; break; + if( $_387 === TRUE ) { $_389 = TRUE; break; } + $result = $res_378; + $this->pos = $pos_378; + $_389 = FALSE; break; } while(0); - if( $_356 === TRUE ) { $_358 = TRUE; break; } - $result = $res_343; - $this->pos = $pos_343; - $_358 = FALSE; break; + if( $_389 === TRUE ) { $_391 = TRUE; break; } + $result = $res_376; + $this->pos = $pos_376; + $_391 = FALSE; break; } while(0); - if( $_358 === TRUE ) { $_360 = TRUE; break; } - $result = $res_341; - $this->pos = $pos_341; - $_360 = FALSE; break; + if( $_391 === TRUE ) { $_393 = TRUE; break; } + $result = $res_374; + $this->pos = $pos_374; + $_393 = FALSE; break; } while(0); - if( $_360 === TRUE ) { $_362 = TRUE; break; } - $result = $res_339; - $this->pos = $pos_339; - $_362 = FALSE; break; + if( $_393 === TRUE ) { $_395 = TRUE; break; } + $result = $res_372; + $this->pos = $pos_372; + $_395 = FALSE; break; } while(0); - if( $_362 === TRUE ) { $_364 = TRUE; break; } - $result = $res_337; - $this->pos = $pos_337; - $_364 = FALSE; break; + if( $_395 === TRUE ) { $_397 = TRUE; break; } + $result = $res_370; + $this->pos = $pos_370; + $_397 = FALSE; break; } while(0); - if( $_364 === TRUE ) { $_366 = TRUE; break; } - $result = $res_335; - $this->pos = $pos_335; - $_366 = FALSE; break; + if( $_397 === TRUE ) { $_399 = TRUE; break; } + $result = $res_368; + $this->pos = $pos_368; + $_399 = FALSE; break; } while(0); - if( $_366 === TRUE ) { $_368 = TRUE; break; } - $result = $res_333; - $this->pos = $pos_333; - $_368 = FALSE; break; + if( $_399 === TRUE ) { $_401 = TRUE; break; } + $result = $res_366; + $this->pos = $pos_366; + $_401 = FALSE; break; } while(0); - if( $_368 === TRUE ) { $_370 = TRUE; break; } - $result = $res_331; - $this->pos = $pos_331; - $_370 = FALSE; break; + if( $_401 === TRUE ) { $_403 = TRUE; break; } + $result = $res_364; + $this->pos = $pos_364; + $_403 = FALSE; break; } while(0); - if( $_370 === TRUE ) { $_372 = TRUE; break; } - $result = $res_329; - $this->pos = $pos_329; - $_372 = FALSE; break; + if( $_403 === TRUE ) { $_405 = TRUE; break; } + $result = $res_362; + $this->pos = $pos_362; + $_405 = FALSE; break; } while(0); - if( $_372 === FALSE) { $_374 = FALSE; break; } - $_374 = TRUE; break; + if( $_405 === FALSE) { $_407 = FALSE; break; } + $_407 = TRUE; break; } while(0); - if( $_374 === FALSE) { - $result = $res_375; - $this->pos = $pos_375; - unset( $res_375 ); - unset( $pos_375 ); + if( $_407 === FALSE) { + $result = $res_408; + $this->pos = $pos_408; + unset( $res_408 ); + unset( $pos_408 ); break; } $count += 1; @@ -2212,101 +2424,101 @@ class SSTemplateParser extends Parser { protected $match_CacheBlock_typestack = array('CacheBlock'); function match_CacheBlock ($stack = array()) { $matchrule = "CacheBlock"; $result = $this->construct($matchrule, $matchrule, null); - $_430 = NULL; + $_463 = NULL; do { if (( $subres = $this->literal( '<%' ) ) !== FALSE) { $result["text"] .= $subres; } - else { $_430 = FALSE; break; } + else { $_463 = FALSE; break; } if (( $subres = $this->whitespace( ) ) !== FALSE) { $result["text"] .= $subres; } $stack[] = $result; $result = $this->construct( $matchrule, "CacheTag" ); - $_383 = NULL; + $_416 = NULL; do { - $_381 = NULL; + $_414 = NULL; do { - $res_378 = $result; - $pos_378 = $this->pos; + $res_411 = $result; + $pos_411 = $this->pos; if (( $subres = $this->literal( 'cached' ) ) !== FALSE) { $result["text"] .= $subres; - $_381 = TRUE; break; + $_414 = TRUE; break; } - $result = $res_378; - $this->pos = $pos_378; + $result = $res_411; + $this->pos = $pos_411; if (( $subres = $this->literal( 'cacheblock' ) ) !== FALSE) { $result["text"] .= $subres; - $_381 = TRUE; break; + $_414 = TRUE; break; } - $result = $res_378; - $this->pos = $pos_378; - $_381 = FALSE; break; + $result = $res_411; + $this->pos = $pos_411; + $_414 = FALSE; break; } while(0); - if( $_381 === FALSE) { $_383 = FALSE; break; } - $_383 = TRUE; break; + if( $_414 === FALSE) { $_416 = FALSE; break; } + $_416 = TRUE; break; } while(0); - if( $_383 === TRUE ) { + if( $_416 === TRUE ) { $subres = $result; $result = array_pop($stack); $this->store( $result, $subres, 'CacheTag' ); } - if( $_383 === FALSE) { + if( $_416 === FALSE) { $result = array_pop($stack); - $_430 = FALSE; break; + $_463 = FALSE; break; } if (( $subres = $this->whitespace( ) ) !== FALSE) { $result["text"] .= $subres; } - $res_388 = $result; - $pos_388 = $this->pos; - $_387 = NULL; + $res_421 = $result; + $pos_421 = $this->pos; + $_420 = NULL; do { $matcher = 'match_'.'CacheBlockArguments'; $key = $matcher; $pos = $this->pos; $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); if ($subres !== FALSE) { $this->store( $result, $subres ); } - else { $_387 = FALSE; break; } - $_387 = TRUE; break; + else { $_420 = FALSE; break; } + $_420 = TRUE; break; } while(0); - if( $_387 === FALSE) { - $result = $res_388; - $this->pos = $pos_388; - unset( $res_388 ); - unset( $pos_388 ); + if( $_420 === FALSE) { + $result = $res_421; + $this->pos = $pos_421; + unset( $res_421 ); + unset( $pos_421 ); } - $res_400 = $result; - $pos_400 = $this->pos; - $_399 = NULL; + $res_433 = $result; + $pos_433 = $this->pos; + $_432 = NULL; do { if (( $subres = $this->whitespace( ) ) !== FALSE) { $result["text"] .= $subres; } $stack[] = $result; $result = $this->construct( $matchrule, "Conditional" ); - $_395 = NULL; + $_428 = NULL; do { - $_393 = NULL; + $_426 = NULL; do { - $res_390 = $result; - $pos_390 = $this->pos; + $res_423 = $result; + $pos_423 = $this->pos; if (( $subres = $this->literal( 'if' ) ) !== FALSE) { $result["text"] .= $subres; - $_393 = TRUE; break; + $_426 = TRUE; break; } - $result = $res_390; - $this->pos = $pos_390; + $result = $res_423; + $this->pos = $pos_423; if (( $subres = $this->literal( 'unless' ) ) !== FALSE) { $result["text"] .= $subres; - $_393 = TRUE; break; + $_426 = TRUE; break; } - $result = $res_390; - $this->pos = $pos_390; - $_393 = FALSE; break; + $result = $res_423; + $this->pos = $pos_423; + $_426 = FALSE; break; } while(0); - if( $_393 === FALSE) { $_395 = FALSE; break; } - $_395 = TRUE; break; + if( $_426 === FALSE) { $_428 = FALSE; break; } + $_428 = TRUE; break; } while(0); - if( $_395 === TRUE ) { + if( $_428 === TRUE ) { $subres = $result; $result = array_pop($stack); $this->store( $result, $subres, 'Conditional' ); } - if( $_395 === FALSE) { + if( $_428 === FALSE) { $result = array_pop($stack); - $_399 = FALSE; break; + $_432 = FALSE; break; } if (( $subres = $this->whitespace( ) ) !== FALSE) { $result["text"] .= $subres; } $matcher = 'match_'.'IfArgument'; $key = $matcher; $pos = $this->pos; @@ -2314,132 +2526,132 @@ class SSTemplateParser extends Parser { if ($subres !== FALSE) { $this->store( $result, $subres, "Condition" ); } - else { $_399 = FALSE; break; } - $_399 = TRUE; break; + else { $_432 = FALSE; break; } + $_432 = TRUE; break; } while(0); - if( $_399 === FALSE) { - $result = $res_400; - $this->pos = $pos_400; - unset( $res_400 ); - unset( $pos_400 ); + if( $_432 === FALSE) { + $result = $res_433; + $this->pos = $pos_433; + unset( $res_433 ); + unset( $pos_433 ); } if (( $subres = $this->whitespace( ) ) !== FALSE) { $result["text"] .= $subres; } if (( $subres = $this->literal( '%>' ) ) !== FALSE) { $result["text"] .= $subres; } - else { $_430 = FALSE; break; } + else { $_463 = FALSE; break; } while (true) { - $res_413 = $result; - $pos_413 = $this->pos; - $_412 = NULL; + $res_446 = $result; + $pos_446 = $this->pos; + $_445 = NULL; do { - $_410 = NULL; + $_443 = NULL; do { - $res_403 = $result; - $pos_403 = $this->pos; + $res_436 = $result; + $pos_436 = $this->pos; $matcher = 'match_'.'CacheBlock'; $key = $matcher; $pos = $this->pos; $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); if ($subres !== FALSE) { $this->store( $result, $subres ); - $_410 = TRUE; break; + $_443 = TRUE; break; } - $result = $res_403; - $this->pos = $pos_403; - $_408 = NULL; + $result = $res_436; + $this->pos = $pos_436; + $_441 = NULL; do { - $res_405 = $result; - $pos_405 = $this->pos; + $res_438 = $result; + $pos_438 = $this->pos; $matcher = 'match_'.'UncachedBlock'; $key = $matcher; $pos = $this->pos; $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); if ($subres !== FALSE) { $this->store( $result, $subres ); - $_408 = TRUE; break; + $_441 = TRUE; break; } - $result = $res_405; - $this->pos = $pos_405; + $result = $res_438; + $this->pos = $pos_438; $matcher = 'match_'.'CacheBlockTemplate'; $key = $matcher; $pos = $this->pos; $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); if ($subres !== FALSE) { $this->store( $result, $subres ); - $_408 = TRUE; break; + $_441 = TRUE; break; } - $result = $res_405; - $this->pos = $pos_405; - $_408 = FALSE; break; + $result = $res_438; + $this->pos = $pos_438; + $_441 = FALSE; break; } while(0); - if( $_408 === TRUE ) { $_410 = TRUE; break; } - $result = $res_403; - $this->pos = $pos_403; - $_410 = FALSE; break; + if( $_441 === TRUE ) { $_443 = TRUE; break; } + $result = $res_436; + $this->pos = $pos_436; + $_443 = FALSE; break; } while(0); - if( $_410 === FALSE) { $_412 = FALSE; break; } - $_412 = TRUE; break; + if( $_443 === FALSE) { $_445 = FALSE; break; } + $_445 = TRUE; break; } while(0); - if( $_412 === FALSE) { - $result = $res_413; - $this->pos = $pos_413; - unset( $res_413 ); - unset( $pos_413 ); + if( $_445 === FALSE) { + $result = $res_446; + $this->pos = $pos_446; + unset( $res_446 ); + unset( $pos_446 ); break; } } if (( $subres = $this->literal( '<%' ) ) !== FALSE) { $result["text"] .= $subres; } - else { $_430 = FALSE; break; } + else { $_463 = FALSE; break; } if (( $subres = $this->whitespace( ) ) !== FALSE) { $result["text"] .= $subres; } if (( $subres = $this->literal( 'end_' ) ) !== FALSE) { $result["text"] .= $subres; } - else { $_430 = FALSE; break; } - $_426 = NULL; + else { $_463 = FALSE; break; } + $_459 = NULL; do { - $_424 = NULL; + $_457 = NULL; do { - $res_417 = $result; - $pos_417 = $this->pos; + $res_450 = $result; + $pos_450 = $this->pos; if (( $subres = $this->literal( 'cached' ) ) !== FALSE) { $result["text"] .= $subres; - $_424 = TRUE; break; + $_457 = TRUE; break; } - $result = $res_417; - $this->pos = $pos_417; - $_422 = NULL; + $result = $res_450; + $this->pos = $pos_450; + $_455 = NULL; do { - $res_419 = $result; - $pos_419 = $this->pos; + $res_452 = $result; + $pos_452 = $this->pos; if (( $subres = $this->literal( 'uncached' ) ) !== FALSE) { $result["text"] .= $subres; - $_422 = TRUE; break; + $_455 = TRUE; break; } - $result = $res_419; - $this->pos = $pos_419; + $result = $res_452; + $this->pos = $pos_452; if (( $subres = $this->literal( 'cacheblock' ) ) !== FALSE) { $result["text"] .= $subres; - $_422 = TRUE; break; + $_455 = TRUE; break; } - $result = $res_419; - $this->pos = $pos_419; - $_422 = FALSE; break; + $result = $res_452; + $this->pos = $pos_452; + $_455 = FALSE; break; } while(0); - if( $_422 === TRUE ) { $_424 = TRUE; break; } - $result = $res_417; - $this->pos = $pos_417; - $_424 = FALSE; break; + if( $_455 === TRUE ) { $_457 = TRUE; break; } + $result = $res_450; + $this->pos = $pos_450; + $_457 = FALSE; break; } while(0); - if( $_424 === FALSE) { $_426 = FALSE; break; } - $_426 = TRUE; break; + if( $_457 === FALSE) { $_459 = FALSE; break; } + $_459 = TRUE; break; } while(0); - if( $_426 === FALSE) { $_430 = FALSE; break; } + if( $_459 === FALSE) { $_463 = FALSE; break; } if (( $subres = $this->whitespace( ) ) !== FALSE) { $result["text"] .= $subres; } if (( $subres = $this->literal( '%>' ) ) !== FALSE) { $result["text"] .= $subres; } - else { $_430 = FALSE; break; } - $_430 = TRUE; break; + else { $_463 = FALSE; break; } + $_463 = TRUE; break; } while(0); - if( $_430 === TRUE ) { return $this->finalise($result); } - if( $_430 === FALSE) { return FALSE; } + if( $_463 === TRUE ) { return $this->finalise($result); } + if( $_463 === FALSE) { return FALSE; } } @@ -2479,60 +2691,109 @@ class SSTemplateParser extends Parser { $res['php'] .= '}'; } - /* OldTPart: "_t" < "(" < QuotedString (< "," < CallArguments)? > ")" */ + /* OldTPart: "_t" N "(" N QuotedString (N "," N CallArguments)? N ")" N (";")? */ protected $match_OldTPart_typestack = array('OldTPart'); function match_OldTPart ($stack = array()) { $matchrule = "OldTPart"; $result = $this->construct($matchrule, $matchrule, null); - $_445 = NULL; + $_482 = NULL; do { if (( $subres = $this->literal( '_t' ) ) !== FALSE) { $result["text"] .= $subres; } - else { $_445 = FALSE; break; } - if (( $subres = $this->whitespace( ) ) !== FALSE) { $result["text"] .= $subres; } + else { $_482 = FALSE; break; } + $matcher = 'match_'.'N'; $key = $matcher; $pos = $this->pos; + $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); + if ($subres !== FALSE) { $this->store( $result, $subres ); } + else { $_482 = FALSE; break; } if (substr($this->string,$this->pos,1) == '(') { $this->pos += 1; $result["text"] .= '('; } - else { $_445 = FALSE; break; } - if (( $subres = $this->whitespace( ) ) !== FALSE) { $result["text"] .= $subres; } + else { $_482 = FALSE; break; } + $matcher = 'match_'.'N'; $key = $matcher; $pos = $this->pos; + $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); + if ($subres !== FALSE) { $this->store( $result, $subres ); } + else { $_482 = FALSE; break; } $matcher = 'match_'.'QuotedString'; $key = $matcher; $pos = $this->pos; $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); if ($subres !== FALSE) { $this->store( $result, $subres ); } - else { $_445 = FALSE; break; } - $res_442 = $result; - $pos_442 = $this->pos; - $_441 = NULL; + else { $_482 = FALSE; break; } + $res_475 = $result; + $pos_475 = $this->pos; + $_474 = NULL; do { - if (( $subres = $this->whitespace( ) ) !== FALSE) { $result["text"] .= $subres; } + $matcher = 'match_'.'N'; $key = $matcher; $pos = $this->pos; + $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); + if ($subres !== FALSE) { $this->store( $result, $subres ); } + else { $_474 = FALSE; break; } if (substr($this->string,$this->pos,1) == ',') { $this->pos += 1; $result["text"] .= ','; } - else { $_441 = FALSE; break; } - if (( $subres = $this->whitespace( ) ) !== FALSE) { $result["text"] .= $subres; } + else { $_474 = FALSE; break; } + $matcher = 'match_'.'N'; $key = $matcher; $pos = $this->pos; + $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); + if ($subres !== FALSE) { $this->store( $result, $subres ); } + else { $_474 = FALSE; break; } $matcher = 'match_'.'CallArguments'; $key = $matcher; $pos = $this->pos; $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); if ($subres !== FALSE) { $this->store( $result, $subres ); } - else { $_441 = FALSE; break; } - $_441 = TRUE; break; + else { $_474 = FALSE; break; } + $_474 = TRUE; break; } while(0); - if( $_441 === FALSE) { - $result = $res_442; - $this->pos = $pos_442; - unset( $res_442 ); - unset( $pos_442 ); + if( $_474 === FALSE) { + $result = $res_475; + $this->pos = $pos_475; + unset( $res_475 ); + unset( $pos_475 ); } - if (( $subres = $this->whitespace( ) ) !== FALSE) { $result["text"] .= $subres; } + $matcher = 'match_'.'N'; $key = $matcher; $pos = $this->pos; + $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); + if ($subres !== FALSE) { $this->store( $result, $subres ); } + else { $_482 = FALSE; break; } if (substr($this->string,$this->pos,1) == ')') { $this->pos += 1; $result["text"] .= ')'; } - else { $_445 = FALSE; break; } - $_445 = TRUE; break; + else { $_482 = FALSE; break; } + $matcher = 'match_'.'N'; $key = $matcher; $pos = $this->pos; + $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); + if ($subres !== FALSE) { $this->store( $result, $subres ); } + else { $_482 = FALSE; break; } + $res_481 = $result; + $pos_481 = $this->pos; + $_480 = NULL; + do { + if (substr($this->string,$this->pos,1) == ';') { + $this->pos += 1; + $result["text"] .= ';'; + } + else { $_480 = FALSE; break; } + $_480 = TRUE; break; + } + while(0); + if( $_480 === FALSE) { + $result = $res_481; + $this->pos = $pos_481; + unset( $res_481 ); + unset( $pos_481 ); + } + $_482 = TRUE; break; } while(0); - if( $_445 === TRUE ) { return $this->finalise($result); } - if( $_445 === FALSE) { return FALSE; } + if( $_482 === TRUE ) { return $this->finalise($result); } + if( $_482 === FALSE) { return FALSE; } + } + + + /* N: / [\s\n]* / */ + protected $match_N_typestack = array('N'); + function match_N ($stack = array()) { + $matchrule = "N"; $result = $this->construct($matchrule, $matchrule, null); + if (( $subres = $this->rx( '/ [\s\n]* /' ) ) !== FALSE) { + $result["text"] .= $subres; + return $this->finalise($result); + } + else { return FALSE; } } @@ -2563,23 +2824,23 @@ class SSTemplateParser extends Parser { protected $match_OldTTag_typestack = array('OldTTag'); function match_OldTTag ($stack = array()) { $matchrule = "OldTTag"; $result = $this->construct($matchrule, $matchrule, null); - $_452 = NULL; + $_490 = NULL; do { if (( $subres = $this->literal( '<%' ) ) !== FALSE) { $result["text"] .= $subres; } - else { $_452 = FALSE; break; } + else { $_490 = FALSE; break; } if (( $subres = $this->whitespace( ) ) !== FALSE) { $result["text"] .= $subres; } $matcher = 'match_'.'OldTPart'; $key = $matcher; $pos = $this->pos; $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); if ($subres !== FALSE) { $this->store( $result, $subres ); } - else { $_452 = FALSE; break; } + else { $_490 = FALSE; break; } if (( $subres = $this->whitespace( ) ) !== FALSE) { $result["text"] .= $subres; } if (( $subres = $this->literal( '%>' ) ) !== FALSE) { $result["text"] .= $subres; } - else { $_452 = FALSE; break; } - $_452 = TRUE; break; + else { $_490 = FALSE; break; } + $_490 = TRUE; break; } while(0); - if( $_452 === TRUE ) { return $this->finalise($result); } - if( $_452 === FALSE) { return FALSE; } + if( $_490 === TRUE ) { return $this->finalise($result); } + if( $_490 === FALSE) { return FALSE; } } @@ -2592,49 +2853,49 @@ class SSTemplateParser extends Parser { protected $match_OldSprintfTag_typestack = array('OldSprintfTag'); function match_OldSprintfTag ($stack = array()) { $matchrule = "OldSprintfTag"; $result = $this->construct($matchrule, $matchrule, null); - $_469 = NULL; + $_507 = NULL; do { if (( $subres = $this->literal( '<%' ) ) !== FALSE) { $result["text"] .= $subres; } - else { $_469 = FALSE; break; } + else { $_507 = FALSE; break; } if (( $subres = $this->whitespace( ) ) !== FALSE) { $result["text"] .= $subres; } if (( $subres = $this->literal( 'sprintf' ) ) !== FALSE) { $result["text"] .= $subres; } - else { $_469 = FALSE; break; } + else { $_507 = FALSE; break; } if (( $subres = $this->whitespace( ) ) !== FALSE) { $result["text"] .= $subres; } if (substr($this->string,$this->pos,1) == '(') { $this->pos += 1; $result["text"] .= '('; } - else { $_469 = FALSE; break; } + else { $_507 = FALSE; break; } if (( $subres = $this->whitespace( ) ) !== FALSE) { $result["text"] .= $subres; } $matcher = 'match_'.'OldTPart'; $key = $matcher; $pos = $this->pos; $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); if ($subres !== FALSE) { $this->store( $result, $subres ); } - else { $_469 = FALSE; break; } + else { $_507 = FALSE; break; } if (( $subres = $this->whitespace( ) ) !== FALSE) { $result["text"] .= $subres; } if (substr($this->string,$this->pos,1) == ',') { $this->pos += 1; $result["text"] .= ','; } - else { $_469 = FALSE; break; } + else { $_507 = FALSE; break; } if (( $subres = $this->whitespace( ) ) !== FALSE) { $result["text"] .= $subres; } $matcher = 'match_'.'CallArguments'; $key = $matcher; $pos = $this->pos; $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); if ($subres !== FALSE) { $this->store( $result, $subres ); } - else { $_469 = FALSE; break; } + else { $_507 = FALSE; break; } if (( $subres = $this->whitespace( ) ) !== FALSE) { $result["text"] .= $subres; } if (substr($this->string,$this->pos,1) == ')') { $this->pos += 1; $result["text"] .= ')'; } - else { $_469 = FALSE; break; } + else { $_507 = FALSE; break; } if (( $subres = $this->whitespace( ) ) !== FALSE) { $result["text"] .= $subres; } if (( $subres = $this->literal( '%>' ) ) !== FALSE) { $result["text"] .= $subres; } - else { $_469 = FALSE; break; } - $_469 = TRUE; break; + else { $_507 = FALSE; break; } + $_507 = TRUE; break; } while(0); - if( $_469 === TRUE ) { return $this->finalise($result); } - if( $_469 === FALSE) { return FALSE; } + if( $_507 === TRUE ) { return $this->finalise($result); } + if( $_507 === FALSE) { return FALSE; } } @@ -2655,31 +2916,31 @@ class SSTemplateParser extends Parser { protected $match_OldI18NTag_typestack = array('OldI18NTag'); function match_OldI18NTag ($stack = array()) { $matchrule = "OldI18NTag"; $result = $this->construct($matchrule, $matchrule, null); - $_474 = NULL; + $_512 = NULL; do { - $res_471 = $result; - $pos_471 = $this->pos; + $res_509 = $result; + $pos_509 = $this->pos; $matcher = 'match_'.'OldSprintfTag'; $key = $matcher; $pos = $this->pos; $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); if ($subres !== FALSE) { $this->store( $result, $subres ); - $_474 = TRUE; break; + $_512 = TRUE; break; } - $result = $res_471; - $this->pos = $pos_471; + $result = $res_509; + $this->pos = $pos_509; $matcher = 'match_'.'OldTTag'; $key = $matcher; $pos = $this->pos; $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); if ($subres !== FALSE) { $this->store( $result, $subres ); - $_474 = TRUE; break; + $_512 = TRUE; break; } - $result = $res_471; - $this->pos = $pos_471; - $_474 = FALSE; break; + $result = $res_509; + $this->pos = $pos_509; + $_512 = FALSE; break; } while(0); - if( $_474 === TRUE ) { return $this->finalise($result); } - if( $_474 === FALSE) { return FALSE; } + if( $_512 === TRUE ) { return $this->finalise($result); } + if( $_512 === FALSE) { return FALSE; } } @@ -2692,30 +2953,30 @@ class SSTemplateParser extends Parser { protected $match_NamedArgument_typestack = array('NamedArgument'); function match_NamedArgument ($stack = array()) { $matchrule = "NamedArgument"; $result = $this->construct($matchrule, $matchrule, null); - $_479 = NULL; + $_517 = NULL; do { $matcher = 'match_'.'Word'; $key = $matcher; $pos = $this->pos; $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); if ($subres !== FALSE) { $this->store( $result, $subres, "Name" ); } - else { $_479 = FALSE; break; } + else { $_517 = FALSE; break; } if (substr($this->string,$this->pos,1) == '=') { $this->pos += 1; $result["text"] .= '='; } - else { $_479 = FALSE; break; } + else { $_517 = FALSE; break; } $matcher = 'match_'.'Argument'; $key = $matcher; $pos = $this->pos; $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); if ($subres !== FALSE) { $this->store( $result, $subres, "Value" ); } - else { $_479 = FALSE; break; } - $_479 = TRUE; break; + else { $_517 = FALSE; break; } + $_517 = TRUE; break; } while(0); - if( $_479 === TRUE ) { return $this->finalise($result); } - if( $_479 === FALSE) { return FALSE; } + if( $_517 === TRUE ) { return $this->finalise($result); } + if( $_517 === FALSE) { return FALSE; } } @@ -2732,75 +2993,75 @@ class SSTemplateParser extends Parser { protected $match_Include_typestack = array('Include'); function match_Include ($stack = array()) { $matchrule = "Include"; $result = $this->construct($matchrule, $matchrule, null); - $_498 = NULL; + $_536 = NULL; do { if (( $subres = $this->literal( '<%' ) ) !== FALSE) { $result["text"] .= $subres; } - else { $_498 = FALSE; break; } + else { $_536 = FALSE; break; } if (( $subres = $this->whitespace( ) ) !== FALSE) { $result["text"] .= $subres; } if (( $subres = $this->literal( 'include' ) ) !== FALSE) { $result["text"] .= $subres; } - else { $_498 = FALSE; break; } + else { $_536 = FALSE; break; } if (( $subres = $this->whitespace( ) ) !== FALSE) { $result["text"] .= $subres; } $matcher = 'match_'.'Word'; $key = $matcher; $pos = $this->pos; $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); if ($subres !== FALSE) { $this->store( $result, $subres, "Template" ); } - else { $_498 = FALSE; break; } + else { $_536 = FALSE; break; } if (( $subres = $this->whitespace( ) ) !== FALSE) { $result["text"] .= $subres; } - $res_495 = $result; - $pos_495 = $this->pos; - $_494 = NULL; + $res_533 = $result; + $pos_533 = $this->pos; + $_532 = NULL; do { $matcher = 'match_'.'NamedArgument'; $key = $matcher; $pos = $this->pos; $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); if ($subres !== FALSE) { $this->store( $result, $subres ); } - else { $_494 = FALSE; break; } + else { $_532 = FALSE; break; } while (true) { - $res_493 = $result; - $pos_493 = $this->pos; - $_492 = NULL; + $res_531 = $result; + $pos_531 = $this->pos; + $_530 = NULL; do { if (( $subres = $this->whitespace( ) ) !== FALSE) { $result["text"] .= $subres; } if (substr($this->string,$this->pos,1) == ',') { $this->pos += 1; $result["text"] .= ','; } - else { $_492 = FALSE; break; } + else { $_530 = FALSE; break; } if (( $subres = $this->whitespace( ) ) !== FALSE) { $result["text"] .= $subres; } $matcher = 'match_'.'NamedArgument'; $key = $matcher; $pos = $this->pos; $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); if ($subres !== FALSE) { $this->store( $result, $subres ); } - else { $_492 = FALSE; break; } - $_492 = TRUE; break; + else { $_530 = FALSE; break; } + $_530 = TRUE; break; } while(0); - if( $_492 === FALSE) { - $result = $res_493; - $this->pos = $pos_493; - unset( $res_493 ); - unset( $pos_493 ); + if( $_530 === FALSE) { + $result = $res_531; + $this->pos = $pos_531; + unset( $res_531 ); + unset( $pos_531 ); break; } } - $_494 = TRUE; break; + $_532 = TRUE; break; } while(0); - if( $_494 === FALSE) { - $result = $res_495; - $this->pos = $pos_495; - unset( $res_495 ); - unset( $pos_495 ); + if( $_532 === FALSE) { + $result = $res_533; + $this->pos = $pos_533; + unset( $res_533 ); + unset( $pos_533 ); } if (( $subres = $this->whitespace( ) ) !== FALSE) { $result["text"] .= $subres; } if (( $subres = $this->literal( '%>' ) ) !== FALSE) { $result["text"] .= $subres; } - else { $_498 = FALSE; break; } - $_498 = TRUE; break; + else { $_536 = FALSE; break; } + $_536 = TRUE; break; } while(0); - if( $_498 === TRUE ) { return $this->finalise($result); } - if( $_498 === FALSE) { return FALSE; } + if( $_536 === TRUE ) { return $this->finalise($result); } + if( $_536 === FALSE) { return FALSE; } } @@ -2835,198 +3096,44 @@ class SSTemplateParser extends Parser { protected $match_BlockArguments_typestack = array('BlockArguments'); function match_BlockArguments ($stack = array()) { $matchrule = "BlockArguments"; $result = $this->construct($matchrule, $matchrule, null); - $_507 = NULL; + $_545 = NULL; do { $matcher = 'match_'.'Argument'; $key = $matcher; $pos = $this->pos; $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); if ($subres !== FALSE) { $this->store( $result, $subres, "Argument" ); } - else { $_507 = FALSE; break; } + else { $_545 = FALSE; break; } while (true) { - $res_506 = $result; - $pos_506 = $this->pos; - $_505 = NULL; + $res_544 = $result; + $pos_544 = $this->pos; + $_543 = NULL; do { if (( $subres = $this->whitespace( ) ) !== FALSE) { $result["text"] .= $subres; } if (substr($this->string,$this->pos,1) == ',') { $this->pos += 1; $result["text"] .= ','; } - else { $_505 = FALSE; break; } + else { $_543 = FALSE; break; } if (( $subres = $this->whitespace( ) ) !== FALSE) { $result["text"] .= $subres; } $matcher = 'match_'.'Argument'; $key = $matcher; $pos = $this->pos; $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); if ($subres !== FALSE) { $this->store( $result, $subres, "Argument" ); } - else { $_505 = FALSE; break; } - $_505 = TRUE; break; + else { $_543 = FALSE; break; } + $_543 = TRUE; break; } while(0); - if( $_505 === FALSE) { - $result = $res_506; - $this->pos = $pos_506; - unset( $res_506 ); - unset( $pos_506 ); + if( $_543 === FALSE) { + $result = $res_544; + $this->pos = $pos_544; + unset( $res_544 ); + unset( $pos_544 ); break; } } - $_507 = TRUE; break; - } - while(0); - if( $_507 === TRUE ) { return $this->finalise($result); } - if( $_507 === FALSE) { return FALSE; } - } - - - /* NotBlockTag: "end_" | (("if" | "else_if" | "else" | "require" | "cached" | "uncached" | "cacheblock" | "include") ] ) */ - protected $match_NotBlockTag_typestack = array('NotBlockTag'); - function match_NotBlockTag ($stack = array()) { - $matchrule = "NotBlockTag"; $result = $this->construct($matchrule, $matchrule, null); - $_545 = NULL; - do { - $res_509 = $result; - $pos_509 = $this->pos; - if (( $subres = $this->literal( 'end_' ) ) !== FALSE) { - $result["text"] .= $subres; - $_545 = TRUE; break; - } - $result = $res_509; - $this->pos = $pos_509; - $_543 = NULL; - do { - $_540 = NULL; - do { - $_538 = NULL; - do { - $res_511 = $result; - $pos_511 = $this->pos; - if (( $subres = $this->literal( 'if' ) ) !== FALSE) { - $result["text"] .= $subres; - $_538 = TRUE; break; - } - $result = $res_511; - $this->pos = $pos_511; - $_536 = NULL; - do { - $res_513 = $result; - $pos_513 = $this->pos; - if (( $subres = $this->literal( 'else_if' ) ) !== FALSE) { - $result["text"] .= $subres; - $_536 = TRUE; break; - } - $result = $res_513; - $this->pos = $pos_513; - $_534 = NULL; - do { - $res_515 = $result; - $pos_515 = $this->pos; - if (( $subres = $this->literal( 'else' ) ) !== FALSE) { - $result["text"] .= $subres; - $_534 = TRUE; break; - } - $result = $res_515; - $this->pos = $pos_515; - $_532 = NULL; - do { - $res_517 = $result; - $pos_517 = $this->pos; - if (( $subres = $this->literal( 'require' ) ) !== FALSE) { - $result["text"] .= $subres; - $_532 = TRUE; break; - } - $result = $res_517; - $this->pos = $pos_517; - $_530 = NULL; - do { - $res_519 = $result; - $pos_519 = $this->pos; - if (( $subres = $this->literal( 'cached' ) ) !== FALSE) { - $result["text"] .= $subres; - $_530 = TRUE; break; - } - $result = $res_519; - $this->pos = $pos_519; - $_528 = NULL; - do { - $res_521 = $result; - $pos_521 = $this->pos; - if (( $subres = $this->literal( 'uncached' ) ) !== FALSE) { - $result["text"] .= $subres; - $_528 = TRUE; break; - } - $result = $res_521; - $this->pos = $pos_521; - $_526 = NULL; - do { - $res_523 = $result; - $pos_523 = $this->pos; - if (( $subres = $this->literal( 'cacheblock' ) ) !== FALSE) { - $result["text"] .= $subres; - $_526 = TRUE; break; - } - $result = $res_523; - $this->pos = $pos_523; - if (( $subres = $this->literal( 'include' ) ) !== FALSE) { - $result["text"] .= $subres; - $_526 = TRUE; break; - } - $result = $res_523; - $this->pos = $pos_523; - $_526 = FALSE; break; - } - while(0); - if( $_526 === TRUE ) { $_528 = TRUE; break; } - $result = $res_521; - $this->pos = $pos_521; - $_528 = FALSE; break; - } - while(0); - if( $_528 === TRUE ) { $_530 = TRUE; break; } - $result = $res_519; - $this->pos = $pos_519; - $_530 = FALSE; break; - } - while(0); - if( $_530 === TRUE ) { $_532 = TRUE; break; } - $result = $res_517; - $this->pos = $pos_517; - $_532 = FALSE; break; - } - while(0); - if( $_532 === TRUE ) { $_534 = TRUE; break; } - $result = $res_515; - $this->pos = $pos_515; - $_534 = FALSE; break; - } - while(0); - if( $_534 === TRUE ) { $_536 = TRUE; break; } - $result = $res_513; - $this->pos = $pos_513; - $_536 = FALSE; break; - } - while(0); - if( $_536 === TRUE ) { $_538 = TRUE; break; } - $result = $res_511; - $this->pos = $pos_511; - $_538 = FALSE; break; - } - while(0); - if( $_538 === FALSE) { $_540 = FALSE; break; } - $_540 = TRUE; break; - } - while(0); - if( $_540 === FALSE) { $_543 = FALSE; break; } - if (( $subres = $this->whitespace( ) ) !== FALSE) { $result["text"] .= $subres; } - else { $_543 = FALSE; break; } - $_543 = TRUE; break; - } - while(0); - if( $_543 === TRUE ) { $_545 = TRUE; break; } - $result = $res_509; - $this->pos = $pos_509; - $_545 = FALSE; break; + $_545 = TRUE; break; } while(0); if( $_545 === TRUE ) { return $this->finalise($result); } @@ -3034,57 +3141,211 @@ class SSTemplateParser extends Parser { } + /* NotBlockTag: "end_" | (("if" | "else_if" | "else" | "require" | "cached" | "uncached" | "cacheblock" | "include") ] ) */ + protected $match_NotBlockTag_typestack = array('NotBlockTag'); + function match_NotBlockTag ($stack = array()) { + $matchrule = "NotBlockTag"; $result = $this->construct($matchrule, $matchrule, null); + $_583 = NULL; + do { + $res_547 = $result; + $pos_547 = $this->pos; + if (( $subres = $this->literal( 'end_' ) ) !== FALSE) { + $result["text"] .= $subres; + $_583 = TRUE; break; + } + $result = $res_547; + $this->pos = $pos_547; + $_581 = NULL; + do { + $_578 = NULL; + do { + $_576 = NULL; + do { + $res_549 = $result; + $pos_549 = $this->pos; + if (( $subres = $this->literal( 'if' ) ) !== FALSE) { + $result["text"] .= $subres; + $_576 = TRUE; break; + } + $result = $res_549; + $this->pos = $pos_549; + $_574 = NULL; + do { + $res_551 = $result; + $pos_551 = $this->pos; + if (( $subres = $this->literal( 'else_if' ) ) !== FALSE) { + $result["text"] .= $subres; + $_574 = TRUE; break; + } + $result = $res_551; + $this->pos = $pos_551; + $_572 = NULL; + do { + $res_553 = $result; + $pos_553 = $this->pos; + if (( $subres = $this->literal( 'else' ) ) !== FALSE) { + $result["text"] .= $subres; + $_572 = TRUE; break; + } + $result = $res_553; + $this->pos = $pos_553; + $_570 = NULL; + do { + $res_555 = $result; + $pos_555 = $this->pos; + if (( $subres = $this->literal( 'require' ) ) !== FALSE) { + $result["text"] .= $subres; + $_570 = TRUE; break; + } + $result = $res_555; + $this->pos = $pos_555; + $_568 = NULL; + do { + $res_557 = $result; + $pos_557 = $this->pos; + if (( $subres = $this->literal( 'cached' ) ) !== FALSE) { + $result["text"] .= $subres; + $_568 = TRUE; break; + } + $result = $res_557; + $this->pos = $pos_557; + $_566 = NULL; + do { + $res_559 = $result; + $pos_559 = $this->pos; + if (( $subres = $this->literal( 'uncached' ) ) !== FALSE) { + $result["text"] .= $subres; + $_566 = TRUE; break; + } + $result = $res_559; + $this->pos = $pos_559; + $_564 = NULL; + do { + $res_561 = $result; + $pos_561 = $this->pos; + if (( $subres = $this->literal( 'cacheblock' ) ) !== FALSE) { + $result["text"] .= $subres; + $_564 = TRUE; break; + } + $result = $res_561; + $this->pos = $pos_561; + if (( $subres = $this->literal( 'include' ) ) !== FALSE) { + $result["text"] .= $subres; + $_564 = TRUE; break; + } + $result = $res_561; + $this->pos = $pos_561; + $_564 = FALSE; break; + } + while(0); + if( $_564 === TRUE ) { $_566 = TRUE; break; } + $result = $res_559; + $this->pos = $pos_559; + $_566 = FALSE; break; + } + while(0); + if( $_566 === TRUE ) { $_568 = TRUE; break; } + $result = $res_557; + $this->pos = $pos_557; + $_568 = FALSE; break; + } + while(0); + if( $_568 === TRUE ) { $_570 = TRUE; break; } + $result = $res_555; + $this->pos = $pos_555; + $_570 = FALSE; break; + } + while(0); + if( $_570 === TRUE ) { $_572 = TRUE; break; } + $result = $res_553; + $this->pos = $pos_553; + $_572 = FALSE; break; + } + while(0); + if( $_572 === TRUE ) { $_574 = TRUE; break; } + $result = $res_551; + $this->pos = $pos_551; + $_574 = FALSE; break; + } + while(0); + if( $_574 === TRUE ) { $_576 = TRUE; break; } + $result = $res_549; + $this->pos = $pos_549; + $_576 = FALSE; break; + } + while(0); + if( $_576 === FALSE) { $_578 = FALSE; break; } + $_578 = TRUE; break; + } + while(0); + if( $_578 === FALSE) { $_581 = FALSE; break; } + if (( $subres = $this->whitespace( ) ) !== FALSE) { $result["text"] .= $subres; } + else { $_581 = FALSE; break; } + $_581 = TRUE; break; + } + while(0); + if( $_581 === TRUE ) { $_583 = TRUE; break; } + $result = $res_547; + $this->pos = $pos_547; + $_583 = FALSE; break; + } + while(0); + if( $_583 === TRUE ) { return $this->finalise($result); } + if( $_583 === FALSE) { return FALSE; } + } + + /* ClosedBlock: '<%' < !NotBlockTag BlockName:Word ( [ :BlockArguments ] )? > Zap:'%>' Template:$TemplateMatcher? '<%' < 'end_' '$BlockName' > '%>' */ protected $match_ClosedBlock_typestack = array('ClosedBlock'); function match_ClosedBlock ($stack = array()) { $matchrule = "ClosedBlock"; $result = $this->construct($matchrule, $matchrule, null); - $_565 = NULL; + $_603 = NULL; do { if (( $subres = $this->literal( '<%' ) ) !== FALSE) { $result["text"] .= $subres; } - else { $_565 = FALSE; break; } + else { $_603 = FALSE; break; } if (( $subres = $this->whitespace( ) ) !== FALSE) { $result["text"] .= $subres; } - $res_549 = $result; - $pos_549 = $this->pos; + $res_587 = $result; + $pos_587 = $this->pos; $matcher = 'match_'.'NotBlockTag'; $key = $matcher; $pos = $this->pos; $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); if ($subres !== FALSE) { $this->store( $result, $subres ); - $result = $res_549; - $this->pos = $pos_549; - $_565 = FALSE; break; + $result = $res_587; + $this->pos = $pos_587; + $_603 = FALSE; break; } else { - $result = $res_549; - $this->pos = $pos_549; + $result = $res_587; + $this->pos = $pos_587; } $matcher = 'match_'.'Word'; $key = $matcher; $pos = $this->pos; $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); if ($subres !== FALSE) { $this->store( $result, $subres, "BlockName" ); } - else { $_565 = FALSE; break; } - $res_555 = $result; - $pos_555 = $this->pos; - $_554 = NULL; + else { $_603 = FALSE; break; } + $res_593 = $result; + $pos_593 = $this->pos; + $_592 = NULL; do { if (( $subres = $this->whitespace( ) ) !== FALSE) { $result["text"] .= $subres; } - else { $_554 = FALSE; break; } + else { $_592 = FALSE; break; } $matcher = 'match_'.'BlockArguments'; $key = $matcher; $pos = $this->pos; $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); if ($subres !== FALSE) { $this->store( $result, $subres, "BlockArguments" ); } - else { $_554 = FALSE; break; } + else { $_592 = FALSE; break; } if (( $subres = $this->whitespace( ) ) !== FALSE) { $result["text"] .= $subres; } - else { $_554 = FALSE; break; } - $_554 = TRUE; break; + else { $_592 = FALSE; break; } + $_592 = TRUE; break; } while(0); - if( $_554 === FALSE) { - $result = $res_555; - $this->pos = $pos_555; - unset( $res_555 ); - unset( $pos_555 ); + if( $_592 === FALSE) { + $result = $res_593; + $this->pos = $pos_593; + unset( $res_593 ); + unset( $pos_593 ); } if (( $subres = $this->whitespace( ) ) !== FALSE) { $result["text"] .= $subres; } $stack[] = $result; $result = $this->construct( $matchrule, "Zap" ); @@ -3095,36 +3356,36 @@ class SSTemplateParser extends Parser { } else { $result = array_pop($stack); - $_565 = FALSE; break; + $_603 = FALSE; break; } - $res_558 = $result; - $pos_558 = $this->pos; + $res_596 = $result; + $pos_596 = $this->pos; $matcher = 'match_'.$this->expression($result, $stack, 'TemplateMatcher'); $key = $matcher; $pos = $this->pos; $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); if ($subres !== FALSE) { $this->store( $result, $subres, "Template" ); } else { - $result = $res_558; - $this->pos = $pos_558; - unset( $res_558 ); - unset( $pos_558 ); + $result = $res_596; + $this->pos = $pos_596; + unset( $res_596 ); + unset( $pos_596 ); } if (( $subres = $this->literal( '<%' ) ) !== FALSE) { $result["text"] .= $subres; } - else { $_565 = FALSE; break; } + else { $_603 = FALSE; break; } if (( $subres = $this->whitespace( ) ) !== FALSE) { $result["text"] .= $subres; } if (( $subres = $this->literal( 'end_' ) ) !== FALSE) { $result["text"] .= $subres; } - else { $_565 = FALSE; break; } + else { $_603 = FALSE; break; } if (( $subres = $this->literal( ''.$this->expression($result, $stack, 'BlockName').'' ) ) !== FALSE) { $result["text"] .= $subres; } - else { $_565 = FALSE; break; } + else { $_603 = FALSE; break; } if (( $subres = $this->whitespace( ) ) !== FALSE) { $result["text"] .= $subres; } if (( $subres = $this->literal( '%>' ) ) !== FALSE) { $result["text"] .= $subres; } - else { $_565 = FALSE; break; } - $_565 = TRUE; break; + else { $_603 = FALSE; break; } + $_603 = TRUE; break; } while(0); - if( $_565 === TRUE ) { return $this->finalise($result); } - if( $_565 === FALSE) { return FALSE; } + if( $_603 === TRUE ) { return $this->finalise($result); } + if( $_603 === FALSE) { return FALSE; } } @@ -3227,62 +3488,62 @@ class SSTemplateParser extends Parser { protected $match_OpenBlock_typestack = array('OpenBlock'); function match_OpenBlock ($stack = array()) { $matchrule = "OpenBlock"; $result = $this->construct($matchrule, $matchrule, null); - $_578 = NULL; + $_616 = NULL; do { if (( $subres = $this->literal( '<%' ) ) !== FALSE) { $result["text"] .= $subres; } - else { $_578 = FALSE; break; } + else { $_616 = FALSE; break; } if (( $subres = $this->whitespace( ) ) !== FALSE) { $result["text"] .= $subres; } - $res_569 = $result; - $pos_569 = $this->pos; + $res_607 = $result; + $pos_607 = $this->pos; $matcher = 'match_'.'NotBlockTag'; $key = $matcher; $pos = $this->pos; $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); if ($subres !== FALSE) { $this->store( $result, $subres ); - $result = $res_569; - $this->pos = $pos_569; - $_578 = FALSE; break; + $result = $res_607; + $this->pos = $pos_607; + $_616 = FALSE; break; } else { - $result = $res_569; - $this->pos = $pos_569; + $result = $res_607; + $this->pos = $pos_607; } $matcher = 'match_'.'Word'; $key = $matcher; $pos = $this->pos; $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); if ($subres !== FALSE) { $this->store( $result, $subres, "BlockName" ); } - else { $_578 = FALSE; break; } - $res_575 = $result; - $pos_575 = $this->pos; - $_574 = NULL; + else { $_616 = FALSE; break; } + $res_613 = $result; + $pos_613 = $this->pos; + $_612 = NULL; do { if (( $subres = $this->whitespace( ) ) !== FALSE) { $result["text"] .= $subres; } - else { $_574 = FALSE; break; } + else { $_612 = FALSE; break; } $matcher = 'match_'.'BlockArguments'; $key = $matcher; $pos = $this->pos; $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); if ($subres !== FALSE) { $this->store( $result, $subres, "BlockArguments" ); } - else { $_574 = FALSE; break; } + else { $_612 = FALSE; break; } if (( $subres = $this->whitespace( ) ) !== FALSE) { $result["text"] .= $subres; } - else { $_574 = FALSE; break; } - $_574 = TRUE; break; + else { $_612 = FALSE; break; } + $_612 = TRUE; break; } while(0); - if( $_574 === FALSE) { - $result = $res_575; - $this->pos = $pos_575; - unset( $res_575 ); - unset( $pos_575 ); + if( $_612 === FALSE) { + $result = $res_613; + $this->pos = $pos_613; + unset( $res_613 ); + unset( $pos_613 ); } if (( $subres = $this->whitespace( ) ) !== FALSE) { $result["text"] .= $subres; } if (( $subres = $this->literal( '%>' ) ) !== FALSE) { $result["text"] .= $subres; } - else { $_578 = FALSE; break; } - $_578 = TRUE; break; + else { $_616 = FALSE; break; } + $_616 = TRUE; break; } while(0); - if( $_578 === TRUE ) { return $this->finalise($result); } - if( $_578 === FALSE) { return FALSE; } + if( $_616 === TRUE ) { return $this->finalise($result); } + if( $_616 === FALSE) { return FALSE; } } @@ -3350,27 +3611,27 @@ class SSTemplateParser extends Parser { protected $match_MismatchedEndBlock_typestack = array('MismatchedEndBlock'); function match_MismatchedEndBlock ($stack = array()) { $matchrule = "MismatchedEndBlock"; $result = $this->construct($matchrule, $matchrule, null); - $_586 = NULL; + $_624 = NULL; do { if (( $subres = $this->literal( '<%' ) ) !== FALSE) { $result["text"] .= $subres; } - else { $_586 = FALSE; break; } + else { $_624 = FALSE; break; } if (( $subres = $this->whitespace( ) ) !== FALSE) { $result["text"] .= $subres; } if (( $subres = $this->literal( 'end_' ) ) !== FALSE) { $result["text"] .= $subres; } - else { $_586 = FALSE; break; } + else { $_624 = FALSE; break; } $matcher = 'match_'.'Word'; $key = $matcher; $pos = $this->pos; $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); if ($subres !== FALSE) { $this->store( $result, $subres, "Word" ); } - else { $_586 = FALSE; break; } + else { $_624 = FALSE; break; } if (( $subres = $this->whitespace( ) ) !== FALSE) { $result["text"] .= $subres; } if (( $subres = $this->literal( '%>' ) ) !== FALSE) { $result["text"] .= $subres; } - else { $_586 = FALSE; break; } - $_586 = TRUE; break; + else { $_624 = FALSE; break; } + $_624 = TRUE; break; } while(0); - if( $_586 === TRUE ) { return $this->finalise($result); } - if( $_586 === FALSE) { return FALSE; } + if( $_624 === TRUE ) { return $this->finalise($result); } + if( $_624 === FALSE) { return FALSE; } } @@ -3384,78 +3645,78 @@ class SSTemplateParser extends Parser { protected $match_MalformedOpenTag_typestack = array('MalformedOpenTag'); function match_MalformedOpenTag ($stack = array()) { $matchrule = "MalformedOpenTag"; $result = $this->construct($matchrule, $matchrule, null); - $_601 = NULL; + $_639 = NULL; do { if (( $subres = $this->literal( '<%' ) ) !== FALSE) { $result["text"] .= $subres; } - else { $_601 = FALSE; break; } + else { $_639 = FALSE; break; } if (( $subres = $this->whitespace( ) ) !== FALSE) { $result["text"] .= $subres; } - $res_590 = $result; - $pos_590 = $this->pos; + $res_628 = $result; + $pos_628 = $this->pos; $matcher = 'match_'.'NotBlockTag'; $key = $matcher; $pos = $this->pos; $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); if ($subres !== FALSE) { $this->store( $result, $subres ); - $result = $res_590; - $this->pos = $pos_590; - $_601 = FALSE; break; + $result = $res_628; + $this->pos = $pos_628; + $_639 = FALSE; break; } else { - $result = $res_590; - $this->pos = $pos_590; + $result = $res_628; + $this->pos = $pos_628; } $matcher = 'match_'.'Word'; $key = $matcher; $pos = $this->pos; $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); if ($subres !== FALSE) { $this->store( $result, $subres, "Tag" ); } - else { $_601 = FALSE; break; } - $res_600 = $result; - $pos_600 = $this->pos; - $_599 = NULL; + else { $_639 = FALSE; break; } + $res_638 = $result; + $pos_638 = $this->pos; + $_637 = NULL; do { - $res_596 = $result; - $pos_596 = $this->pos; - $_595 = NULL; + $res_634 = $result; + $pos_634 = $this->pos; + $_633 = NULL; do { if (( $subres = $this->whitespace( ) ) !== FALSE) { $result["text"] .= $subres; } - else { $_595 = FALSE; break; } + else { $_633 = FALSE; break; } $matcher = 'match_'.'BlockArguments'; $key = $matcher; $pos = $this->pos; $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); if ($subres !== FALSE) { $this->store( $result, $subres, "BlockArguments" ); } - else { $_595 = FALSE; break; } + else { $_633 = FALSE; break; } if (( $subres = $this->whitespace( ) ) !== FALSE) { $result["text"] .= $subres; } - else { $_595 = FALSE; break; } - $_595 = TRUE; break; + else { $_633 = FALSE; break; } + $_633 = TRUE; break; } while(0); - if( $_595 === FALSE) { - $result = $res_596; - $this->pos = $pos_596; - unset( $res_596 ); - unset( $pos_596 ); + if( $_633 === FALSE) { + $result = $res_634; + $this->pos = $pos_634; + unset( $res_634 ); + unset( $pos_634 ); } if (( $subres = $this->whitespace( ) ) !== FALSE) { $result["text"] .= $subres; } if (( $subres = $this->literal( '%>' ) ) !== FALSE) { $result["text"] .= $subres; } - else { $_599 = FALSE; break; } - $_599 = TRUE; break; + else { $_637 = FALSE; break; } + $_637 = TRUE; break; } while(0); - if( $_599 === TRUE ) { - $result = $res_600; - $this->pos = $pos_600; - $_601 = FALSE; break; + if( $_637 === TRUE ) { + $result = $res_638; + $this->pos = $pos_638; + $_639 = FALSE; break; } - if( $_599 === FALSE) { - $result = $res_600; - $this->pos = $pos_600; + if( $_637 === FALSE) { + $result = $res_638; + $this->pos = $pos_638; } - $_601 = TRUE; break; + $_639 = TRUE; break; } while(0); - if( $_601 === TRUE ) { return $this->finalise($result); } - if( $_601 === FALSE) { return FALSE; } + if( $_639 === TRUE ) { return $this->finalise($result); } + if( $_639 === FALSE) { return FALSE; } } @@ -3469,57 +3730,57 @@ class SSTemplateParser extends Parser { protected $match_MalformedCloseTag_typestack = array('MalformedCloseTag'); function match_MalformedCloseTag ($stack = array()) { $matchrule = "MalformedCloseTag"; $result = $this->construct($matchrule, $matchrule, null); - $_613 = NULL; + $_651 = NULL; do { if (( $subres = $this->literal( '<%' ) ) !== FALSE) { $result["text"] .= $subres; } - else { $_613 = FALSE; break; } + else { $_651 = FALSE; break; } if (( $subres = $this->whitespace( ) ) !== FALSE) { $result["text"] .= $subres; } $stack[] = $result; $result = $this->construct( $matchrule, "Tag" ); - $_607 = NULL; + $_645 = NULL; do { if (( $subres = $this->literal( 'end_' ) ) !== FALSE) { $result["text"] .= $subres; } - else { $_607 = FALSE; break; } + else { $_645 = FALSE; break; } $matcher = 'match_'.'Word'; $key = $matcher; $pos = $this->pos; $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); if ($subres !== FALSE) { $this->store( $result, $subres, "Word" ); } - else { $_607 = FALSE; break; } - $_607 = TRUE; break; + else { $_645 = FALSE; break; } + $_645 = TRUE; break; } while(0); - if( $_607 === TRUE ) { + if( $_645 === TRUE ) { $subres = $result; $result = array_pop($stack); $this->store( $result, $subres, 'Tag' ); } - if( $_607 === FALSE) { + if( $_645 === FALSE) { $result = array_pop($stack); - $_613 = FALSE; break; + $_651 = FALSE; break; } - $res_612 = $result; - $pos_612 = $this->pos; - $_611 = NULL; + $res_650 = $result; + $pos_650 = $this->pos; + $_649 = NULL; do { if (( $subres = $this->whitespace( ) ) !== FALSE) { $result["text"] .= $subres; } if (( $subres = $this->literal( '%>' ) ) !== FALSE) { $result["text"] .= $subres; } - else { $_611 = FALSE; break; } - $_611 = TRUE; break; + else { $_649 = FALSE; break; } + $_649 = TRUE; break; } while(0); - if( $_611 === TRUE ) { - $result = $res_612; - $this->pos = $pos_612; - $_613 = FALSE; break; + if( $_649 === TRUE ) { + $result = $res_650; + $this->pos = $pos_650; + $_651 = FALSE; break; } - if( $_611 === FALSE) { - $result = $res_612; - $this->pos = $pos_612; + if( $_649 === FALSE) { + $result = $res_650; + $this->pos = $pos_650; } - $_613 = TRUE; break; + $_651 = TRUE; break; } while(0); - if( $_613 === TRUE ) { return $this->finalise($result); } - if( $_613 === FALSE) { return FALSE; } + if( $_651 === TRUE ) { return $this->finalise($result); } + if( $_651 === FALSE) { return FALSE; } } @@ -3533,31 +3794,31 @@ class SSTemplateParser extends Parser { protected $match_MalformedBlock_typestack = array('MalformedBlock'); function match_MalformedBlock ($stack = array()) { $matchrule = "MalformedBlock"; $result = $this->construct($matchrule, $matchrule, null); - $_618 = NULL; + $_656 = NULL; do { - $res_615 = $result; - $pos_615 = $this->pos; + $res_653 = $result; + $pos_653 = $this->pos; $matcher = 'match_'.'MalformedOpenTag'; $key = $matcher; $pos = $this->pos; $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); if ($subres !== FALSE) { $this->store( $result, $subres ); - $_618 = TRUE; break; + $_656 = TRUE; break; } - $result = $res_615; - $this->pos = $pos_615; + $result = $res_653; + $this->pos = $pos_653; $matcher = 'match_'.'MalformedCloseTag'; $key = $matcher; $pos = $this->pos; $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); if ($subres !== FALSE) { $this->store( $result, $subres ); - $_618 = TRUE; break; + $_656 = TRUE; break; } - $result = $res_615; - $this->pos = $pos_615; - $_618 = FALSE; break; + $result = $res_653; + $this->pos = $pos_653; + $_656 = FALSE; break; } while(0); - if( $_618 === TRUE ) { return $this->finalise($result); } - if( $_618 === FALSE) { return FALSE; } + if( $_656 === TRUE ) { return $this->finalise($result); } + if( $_656 === FALSE) { return FALSE; } } @@ -3567,51 +3828,51 @@ class SSTemplateParser extends Parser { protected $match_Comment_typestack = array('Comment'); function match_Comment ($stack = array()) { $matchrule = "Comment"; $result = $this->construct($matchrule, $matchrule, null); - $_626 = NULL; + $_664 = NULL; do { if (( $subres = $this->literal( '<%--' ) ) !== FALSE) { $result["text"] .= $subres; } - else { $_626 = FALSE; break; } + else { $_664 = FALSE; break; } $count = 0; while (true) { - $res_624 = $result; - $pos_624 = $this->pos; - $_623 = NULL; + $res_662 = $result; + $pos_662 = $this->pos; + $_661 = NULL; do { - $res_621 = $result; - $pos_621 = $this->pos; + $res_659 = $result; + $pos_659 = $this->pos; if (( $subres = $this->literal( '--%>' ) ) !== FALSE) { $result["text"] .= $subres; - $result = $res_621; - $this->pos = $pos_621; - $_623 = FALSE; break; + $result = $res_659; + $this->pos = $pos_659; + $_661 = FALSE; break; } else { - $result = $res_621; - $this->pos = $pos_621; + $result = $res_659; + $this->pos = $pos_659; } if (( $subres = $this->rx( '/./' ) ) !== FALSE) { $result["text"] .= $subres; } - else { $_623 = FALSE; break; } - $_623 = TRUE; break; + else { $_661 = FALSE; break; } + $_661 = TRUE; break; } while(0); - if( $_623 === FALSE) { - $result = $res_624; - $this->pos = $pos_624; - unset( $res_624 ); - unset( $pos_624 ); + if( $_661 === FALSE) { + $result = $res_662; + $this->pos = $pos_662; + unset( $res_662 ); + unset( $pos_662 ); break; } $count += 1; } if ($count > 0) { } - else { $_626 = FALSE; break; } + else { $_664 = FALSE; break; } if (( $subres = $this->literal( '--%>' ) ) !== FALSE) { $result["text"] .= $subres; } - else { $_626 = FALSE; break; } - $_626 = TRUE; break; + else { $_664 = FALSE; break; } + $_664 = TRUE; break; } while(0); - if( $_626 === TRUE ) { return $this->finalise($result); } - if( $_626 === FALSE) { return FALSE; } + if( $_664 === TRUE ) { return $this->finalise($result); } + if( $_664 === FALSE) { return FALSE; } } @@ -3620,246 +3881,246 @@ class SSTemplateParser extends Parser { $res['php'] = ''; } - /* TopTemplate: (Comment | If | Require | CacheBlock | UncachedBlock | OldI18NTag | Include | ClosedBlock | OpenBlock | MalformedBlock | MismatchedEndBlock | Injection | Text)+ */ + /* TopTemplate: (Comment | Translate | If | Require | CacheBlock | UncachedBlock | OldI18NTag | ClosedBlock | OpenBlock | MalformedBlock | MismatchedEndBlock | Injection | Text)+ */ protected $match_TopTemplate_typestack = array('TopTemplate','Template'); function match_TopTemplate ($stack = array()) { $matchrule = "TopTemplate"; $result = $this->construct($matchrule, $matchrule, array('TemplateMatcher' => 'Template')); $count = 0; while (true) { - $res_678 = $result; - $pos_678 = $this->pos; - $_677 = NULL; + $res_716 = $result; + $pos_716 = $this->pos; + $_715 = NULL; do { - $_675 = NULL; + $_713 = NULL; do { - $res_628 = $result; - $pos_628 = $this->pos; + $res_666 = $result; + $pos_666 = $this->pos; $matcher = 'match_'.'Comment'; $key = $matcher; $pos = $this->pos; $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); if ($subres !== FALSE) { $this->store( $result, $subres ); - $_675 = TRUE; break; + $_713 = TRUE; break; } - $result = $res_628; - $this->pos = $pos_628; - $_673 = NULL; + $result = $res_666; + $this->pos = $pos_666; + $_711 = NULL; do { - $res_630 = $result; - $pos_630 = $this->pos; - $matcher = 'match_'.'If'; $key = $matcher; $pos = $this->pos; + $res_668 = $result; + $pos_668 = $this->pos; + $matcher = 'match_'.'Translate'; $key = $matcher; $pos = $this->pos; $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); if ($subres !== FALSE) { $this->store( $result, $subres ); - $_673 = TRUE; break; + $_711 = TRUE; break; } - $result = $res_630; - $this->pos = $pos_630; - $_671 = NULL; + $result = $res_668; + $this->pos = $pos_668; + $_709 = NULL; do { - $res_632 = $result; - $pos_632 = $this->pos; - $matcher = 'match_'.'Require'; $key = $matcher; $pos = $this->pos; + $res_670 = $result; + $pos_670 = $this->pos; + $matcher = 'match_'.'If'; $key = $matcher; $pos = $this->pos; $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); if ($subres !== FALSE) { $this->store( $result, $subres ); - $_671 = TRUE; break; + $_709 = TRUE; break; } - $result = $res_632; - $this->pos = $pos_632; - $_669 = NULL; + $result = $res_670; + $this->pos = $pos_670; + $_707 = NULL; do { - $res_634 = $result; - $pos_634 = $this->pos; - $matcher = 'match_'.'CacheBlock'; $key = $matcher; $pos = $this->pos; + $res_672 = $result; + $pos_672 = $this->pos; + $matcher = 'match_'.'Require'; $key = $matcher; $pos = $this->pos; $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); if ($subres !== FALSE) { $this->store( $result, $subres ); - $_669 = TRUE; break; + $_707 = TRUE; break; } - $result = $res_634; - $this->pos = $pos_634; - $_667 = NULL; + $result = $res_672; + $this->pos = $pos_672; + $_705 = NULL; do { - $res_636 = $result; - $pos_636 = $this->pos; - $matcher = 'match_'.'UncachedBlock'; $key = $matcher; $pos = $this->pos; + $res_674 = $result; + $pos_674 = $this->pos; + $matcher = 'match_'.'CacheBlock'; $key = $matcher; $pos = $this->pos; $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); if ($subres !== FALSE) { $this->store( $result, $subres ); - $_667 = TRUE; break; + $_705 = TRUE; break; } - $result = $res_636; - $this->pos = $pos_636; - $_665 = NULL; + $result = $res_674; + $this->pos = $pos_674; + $_703 = NULL; do { - $res_638 = $result; - $pos_638 = $this->pos; - $matcher = 'match_'.'OldI18NTag'; $key = $matcher; $pos = $this->pos; + $res_676 = $result; + $pos_676 = $this->pos; + $matcher = 'match_'.'UncachedBlock'; $key = $matcher; $pos = $this->pos; $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); if ($subres !== FALSE) { $this->store( $result, $subres ); - $_665 = TRUE; break; + $_703 = TRUE; break; } - $result = $res_638; - $this->pos = $pos_638; - $_663 = NULL; + $result = $res_676; + $this->pos = $pos_676; + $_701 = NULL; do { - $res_640 = $result; - $pos_640 = $this->pos; - $matcher = 'match_'.'Include'; $key = $matcher; $pos = $this->pos; + $res_678 = $result; + $pos_678 = $this->pos; + $matcher = 'match_'.'OldI18NTag'; $key = $matcher; $pos = $this->pos; $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); if ($subres !== FALSE) { $this->store( $result, $subres ); - $_663 = TRUE; break; + $_701 = TRUE; break; } - $result = $res_640; - $this->pos = $pos_640; - $_661 = NULL; + $result = $res_678; + $this->pos = $pos_678; + $_699 = NULL; do { - $res_642 = $result; - $pos_642 = $this->pos; + $res_680 = $result; + $pos_680 = $this->pos; $matcher = 'match_'.'ClosedBlock'; $key = $matcher; $pos = $this->pos; $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); if ($subres !== FALSE) { $this->store( $result, $subres ); - $_661 = TRUE; break; + $_699 = TRUE; break; } - $result = $res_642; - $this->pos = $pos_642; - $_659 = NULL; + $result = $res_680; + $this->pos = $pos_680; + $_697 = NULL; do { - $res_644 = $result; - $pos_644 = $this->pos; + $res_682 = $result; + $pos_682 = $this->pos; $matcher = 'match_'.'OpenBlock'; $key = $matcher; $pos = $this->pos; $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); if ($subres !== FALSE) { $this->store( $result, $subres ); - $_659 = TRUE; break; + $_697 = TRUE; break; } - $result = $res_644; - $this->pos = $pos_644; - $_657 = NULL; + $result = $res_682; + $this->pos = $pos_682; + $_695 = NULL; do { - $res_646 = $result; - $pos_646 = $this->pos; + $res_684 = $result; + $pos_684 = $this->pos; $matcher = 'match_'.'MalformedBlock'; $key = $matcher; $pos = $this->pos; $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); if ($subres !== FALSE) { $this->store( $result, $subres ); - $_657 = TRUE; break; + $_695 = TRUE; break; } - $result = $res_646; - $this->pos = $pos_646; - $_655 = NULL; + $result = $res_684; + $this->pos = $pos_684; + $_693 = NULL; do { - $res_648 = $result; - $pos_648 = $this->pos; + $res_686 = $result; + $pos_686 = $this->pos; $matcher = 'match_'.'MismatchedEndBlock'; $key = $matcher; $pos = $this->pos; $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); if ($subres !== FALSE) { $this->store( $result, $subres ); - $_655 = TRUE; break; + $_693 = TRUE; break; } - $result = $res_648; - $this->pos = $pos_648; - $_653 = NULL; + $result = $res_686; + $this->pos = $pos_686; + $_691 = NULL; do { - $res_650 = $result; - $pos_650 = $this->pos; + $res_688 = $result; + $pos_688 = $this->pos; $matcher = 'match_'.'Injection'; $key = $matcher; $pos = $this->pos; $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); if ($subres !== FALSE) { $this->store( $result, $subres ); - $_653 = TRUE; break; + $_691 = TRUE; break; } - $result = $res_650; - $this->pos = $pos_650; + $result = $res_688; + $this->pos = $pos_688; $matcher = 'match_'.'Text'; $key = $matcher; $pos = $this->pos; $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); if ($subres !== FALSE) { $this->store( $result, $subres ); - $_653 = TRUE; break; + $_691 = TRUE; break; } - $result = $res_650; - $this->pos = $pos_650; - $_653 = FALSE; break; + $result = $res_688; + $this->pos = $pos_688; + $_691 = FALSE; break; } while(0); - if( $_653 === TRUE ) { $_655 = TRUE; break; } - $result = $res_648; - $this->pos = $pos_648; - $_655 = FALSE; break; + if( $_691 === TRUE ) { $_693 = TRUE; break; } + $result = $res_686; + $this->pos = $pos_686; + $_693 = FALSE; break; } while(0); - if( $_655 === TRUE ) { $_657 = TRUE; break; } - $result = $res_646; - $this->pos = $pos_646; - $_657 = FALSE; break; + if( $_693 === TRUE ) { $_695 = TRUE; break; } + $result = $res_684; + $this->pos = $pos_684; + $_695 = FALSE; break; } while(0); - if( $_657 === TRUE ) { $_659 = TRUE; break; } - $result = $res_644; - $this->pos = $pos_644; - $_659 = FALSE; break; + if( $_695 === TRUE ) { $_697 = TRUE; break; } + $result = $res_682; + $this->pos = $pos_682; + $_697 = FALSE; break; } while(0); - if( $_659 === TRUE ) { $_661 = TRUE; break; } - $result = $res_642; - $this->pos = $pos_642; - $_661 = FALSE; break; + if( $_697 === TRUE ) { $_699 = TRUE; break; } + $result = $res_680; + $this->pos = $pos_680; + $_699 = FALSE; break; } while(0); - if( $_661 === TRUE ) { $_663 = TRUE; break; } - $result = $res_640; - $this->pos = $pos_640; - $_663 = FALSE; break; + if( $_699 === TRUE ) { $_701 = TRUE; break; } + $result = $res_678; + $this->pos = $pos_678; + $_701 = FALSE; break; } while(0); - if( $_663 === TRUE ) { $_665 = TRUE; break; } - $result = $res_638; - $this->pos = $pos_638; - $_665 = FALSE; break; + if( $_701 === TRUE ) { $_703 = TRUE; break; } + $result = $res_676; + $this->pos = $pos_676; + $_703 = FALSE; break; } while(0); - if( $_665 === TRUE ) { $_667 = TRUE; break; } - $result = $res_636; - $this->pos = $pos_636; - $_667 = FALSE; break; + if( $_703 === TRUE ) { $_705 = TRUE; break; } + $result = $res_674; + $this->pos = $pos_674; + $_705 = FALSE; break; } while(0); - if( $_667 === TRUE ) { $_669 = TRUE; break; } - $result = $res_634; - $this->pos = $pos_634; - $_669 = FALSE; break; + if( $_705 === TRUE ) { $_707 = TRUE; break; } + $result = $res_672; + $this->pos = $pos_672; + $_707 = FALSE; break; } while(0); - if( $_669 === TRUE ) { $_671 = TRUE; break; } - $result = $res_632; - $this->pos = $pos_632; - $_671 = FALSE; break; + if( $_707 === TRUE ) { $_709 = TRUE; break; } + $result = $res_670; + $this->pos = $pos_670; + $_709 = FALSE; break; } while(0); - if( $_671 === TRUE ) { $_673 = TRUE; break; } - $result = $res_630; - $this->pos = $pos_630; - $_673 = FALSE; break; + if( $_709 === TRUE ) { $_711 = TRUE; break; } + $result = $res_668; + $this->pos = $pos_668; + $_711 = FALSE; break; } while(0); - if( $_673 === TRUE ) { $_675 = TRUE; break; } - $result = $res_628; - $this->pos = $pos_628; - $_675 = FALSE; break; + if( $_711 === TRUE ) { $_713 = TRUE; break; } + $result = $res_666; + $this->pos = $pos_666; + $_713 = FALSE; break; } while(0); - if( $_675 === FALSE) { $_677 = FALSE; break; } - $_677 = TRUE; break; + if( $_713 === FALSE) { $_715 = FALSE; break; } + $_715 = TRUE; break; } while(0); - if( $_677 === FALSE) { - $result = $res_678; - $this->pos = $pos_678; - unset( $res_678 ); - unset( $pos_678 ); + if( $_715 === FALSE) { + $result = $res_716; + $this->pos = $pos_716; + unset( $res_716 ); + unset( $pos_716 ); break; } $count += 1; @@ -3891,189 +4152,189 @@ class SSTemplateParser extends Parser { $matchrule = "Text"; $result = $this->construct($matchrule, $matchrule, null); $count = 0; while (true) { - $res_717 = $result; - $pos_717 = $this->pos; - $_716 = NULL; + $res_755 = $result; + $pos_755 = $this->pos; + $_754 = NULL; do { - $_714 = NULL; + $_752 = NULL; do { - $res_679 = $result; - $pos_679 = $this->pos; + $res_717 = $result; + $pos_717 = $this->pos; if (( $subres = $this->rx( '/ [^<${\\\\]+ /' ) ) !== FALSE) { $result["text"] .= $subres; - $_714 = TRUE; break; + $_752 = TRUE; break; } - $result = $res_679; - $this->pos = $pos_679; - $_712 = NULL; + $result = $res_717; + $this->pos = $pos_717; + $_750 = NULL; do { - $res_681 = $result; - $pos_681 = $this->pos; + $res_719 = $result; + $pos_719 = $this->pos; if (( $subres = $this->rx( '/ (\\\\.) /' ) ) !== FALSE) { $result["text"] .= $subres; - $_712 = TRUE; break; + $_750 = TRUE; break; } - $result = $res_681; - $this->pos = $pos_681; - $_710 = NULL; + $result = $res_719; + $this->pos = $pos_719; + $_748 = NULL; do { - $res_683 = $result; - $pos_683 = $this->pos; - $_686 = NULL; + $res_721 = $result; + $pos_721 = $this->pos; + $_724 = NULL; do { if (substr($this->string,$this->pos,1) == '<') { $this->pos += 1; $result["text"] .= '<'; } - else { $_686 = FALSE; break; } - $res_685 = $result; - $pos_685 = $this->pos; + else { $_724 = FALSE; break; } + $res_723 = $result; + $pos_723 = $this->pos; if (substr($this->string,$this->pos,1) == '%') { $this->pos += 1; $result["text"] .= '%'; - $result = $res_685; - $this->pos = $pos_685; - $_686 = FALSE; break; + $result = $res_723; + $this->pos = $pos_723; + $_724 = FALSE; break; } else { - $result = $res_685; - $this->pos = $pos_685; + $result = $res_723; + $this->pos = $pos_723; } - $_686 = TRUE; break; + $_724 = TRUE; break; } while(0); - if( $_686 === TRUE ) { $_710 = TRUE; break; } - $result = $res_683; - $this->pos = $pos_683; - $_708 = NULL; + if( $_724 === TRUE ) { $_748 = TRUE; break; } + $result = $res_721; + $this->pos = $pos_721; + $_746 = NULL; do { - $res_688 = $result; - $pos_688 = $this->pos; - $_693 = NULL; + $res_726 = $result; + $pos_726 = $this->pos; + $_731 = NULL; do { if (substr($this->string,$this->pos,1) == '$') { $this->pos += 1; $result["text"] .= '$'; } - else { $_693 = FALSE; break; } - $res_692 = $result; - $pos_692 = $this->pos; - $_691 = NULL; + else { $_731 = FALSE; break; } + $res_730 = $result; + $pos_730 = $this->pos; + $_729 = NULL; do { if (( $subres = $this->rx( '/[A-Za-z_]/' ) ) !== FALSE) { $result["text"] .= $subres; } - else { $_691 = FALSE; break; } - $_691 = TRUE; break; + else { $_729 = FALSE; break; } + $_729 = TRUE; break; } while(0); - if( $_691 === TRUE ) { - $result = $res_692; - $this->pos = $pos_692; - $_693 = FALSE; break; + if( $_729 === TRUE ) { + $result = $res_730; + $this->pos = $pos_730; + $_731 = FALSE; break; } - if( $_691 === FALSE) { - $result = $res_692; - $this->pos = $pos_692; + if( $_729 === FALSE) { + $result = $res_730; + $this->pos = $pos_730; } - $_693 = TRUE; break; + $_731 = TRUE; break; } while(0); - if( $_693 === TRUE ) { $_708 = TRUE; break; } - $result = $res_688; - $this->pos = $pos_688; - $_706 = NULL; + if( $_731 === TRUE ) { $_746 = TRUE; break; } + $result = $res_726; + $this->pos = $pos_726; + $_744 = NULL; do { - $res_695 = $result; - $pos_695 = $this->pos; - $_698 = NULL; + $res_733 = $result; + $pos_733 = $this->pos; + $_736 = NULL; do { if (substr($this->string,$this->pos,1) == '{') { $this->pos += 1; $result["text"] .= '{'; } - else { $_698 = FALSE; break; } - $res_697 = $result; - $pos_697 = $this->pos; + else { $_736 = FALSE; break; } + $res_735 = $result; + $pos_735 = $this->pos; if (substr($this->string,$this->pos,1) == '$') { $this->pos += 1; $result["text"] .= '$'; - $result = $res_697; - $this->pos = $pos_697; - $_698 = FALSE; break; + $result = $res_735; + $this->pos = $pos_735; + $_736 = FALSE; break; } else { - $result = $res_697; - $this->pos = $pos_697; + $result = $res_735; + $this->pos = $pos_735; } - $_698 = TRUE; break; + $_736 = TRUE; break; } while(0); - if( $_698 === TRUE ) { $_706 = TRUE; break; } - $result = $res_695; - $this->pos = $pos_695; - $_704 = NULL; + if( $_736 === TRUE ) { $_744 = TRUE; break; } + $result = $res_733; + $this->pos = $pos_733; + $_742 = NULL; do { if (( $subres = $this->literal( '{$' ) ) !== FALSE) { $result["text"] .= $subres; } - else { $_704 = FALSE; break; } - $res_703 = $result; - $pos_703 = $this->pos; - $_702 = NULL; + else { $_742 = FALSE; break; } + $res_741 = $result; + $pos_741 = $this->pos; + $_740 = NULL; do { if (( $subres = $this->rx( '/[A-Za-z_]/' ) ) !== FALSE) { $result["text"] .= $subres; } - else { $_702 = FALSE; break; } - $_702 = TRUE; break; + else { $_740 = FALSE; break; } + $_740 = TRUE; break; } while(0); - if( $_702 === TRUE ) { - $result = $res_703; - $this->pos = $pos_703; - $_704 = FALSE; break; + if( $_740 === TRUE ) { + $result = $res_741; + $this->pos = $pos_741; + $_742 = FALSE; break; } - if( $_702 === FALSE) { - $result = $res_703; - $this->pos = $pos_703; + if( $_740 === FALSE) { + $result = $res_741; + $this->pos = $pos_741; } - $_704 = TRUE; break; + $_742 = TRUE; break; } while(0); - if( $_704 === TRUE ) { $_706 = TRUE; break; } - $result = $res_695; - $this->pos = $pos_695; - $_706 = FALSE; break; + if( $_742 === TRUE ) { $_744 = TRUE; break; } + $result = $res_733; + $this->pos = $pos_733; + $_744 = FALSE; break; } while(0); - if( $_706 === TRUE ) { $_708 = TRUE; break; } - $result = $res_688; - $this->pos = $pos_688; - $_708 = FALSE; break; + if( $_744 === TRUE ) { $_746 = TRUE; break; } + $result = $res_726; + $this->pos = $pos_726; + $_746 = FALSE; break; } while(0); - if( $_708 === TRUE ) { $_710 = TRUE; break; } - $result = $res_683; - $this->pos = $pos_683; - $_710 = FALSE; break; + if( $_746 === TRUE ) { $_748 = TRUE; break; } + $result = $res_721; + $this->pos = $pos_721; + $_748 = FALSE; break; } while(0); - if( $_710 === TRUE ) { $_712 = TRUE; break; } - $result = $res_681; - $this->pos = $pos_681; - $_712 = FALSE; break; + if( $_748 === TRUE ) { $_750 = TRUE; break; } + $result = $res_719; + $this->pos = $pos_719; + $_750 = FALSE; break; } while(0); - if( $_712 === TRUE ) { $_714 = TRUE; break; } - $result = $res_679; - $this->pos = $pos_679; - $_714 = FALSE; break; + if( $_750 === TRUE ) { $_752 = TRUE; break; } + $result = $res_717; + $this->pos = $pos_717; + $_752 = FALSE; break; } while(0); - if( $_714 === FALSE) { $_716 = FALSE; break; } - $_716 = TRUE; break; + if( $_752 === FALSE) { $_754 = FALSE; break; } + $_754 = TRUE; break; } while(0); - if( $_716 === FALSE) { - $result = $res_717; - $this->pos = $pos_717; - unset( $res_717 ); - unset( $pos_717 ); + if( $_754 === FALSE) { + $result = $res_755; + $this->pos = $pos_755; + unset( $res_755 ); + unset( $pos_755 ); break; } $count += 1; diff --git a/view/SSTemplateParser.php.inc b/view/SSTemplateParser.php.inc index 64aefc517..0ef048312 100644 --- a/view/SSTemplateParser.php.inc +++ b/view/SSTemplateParser.php.inc @@ -7,7 +7,7 @@ This is the uncompiled parser for the SilverStripe template language, PHP with s It gets run through the php-peg parser compiler to have those comments turned into code that match parts of the template language, producing the executable version SSTemplateParser.php -To recompile after changing this file, run this from the 'framework/core' directory via command line: +To recompile after changing this file, run this from the 'framework/view' directory via command line (in most cases this is: sapphire/view): php ../thirdparty/php-peg/cli.php SSTemplateParser.php.inc > SSTemplateParser.php @@ -76,6 +76,9 @@ forbidden) Closed Block: An SS template block that wraps content, and requires a counterpart <% end_blockname %> tag +Angle Bracket: angle brackets "<" and ">" are used to eat whitespace between template elements +N: eats white space including newlines (using in legacy _t support) + */ class SSTemplateParser extends Parser { @@ -97,9 +100,10 @@ class SSTemplateParser extends Parser { /*!* SSTemplateParser # Template is any structurally-complete portion of template (a full nested level in other words). It's the primary matcher, - # and is used by all enclosing blocks, as well as a base for the top level + # and is used by all enclosing blocks, as well as a base for the top level. + # Any new template elements need to be included in this list, if they are to work. - Template: (Comment | If | Require | CacheBlock | UncachedBlock | OldI18NTag | Include | ClosedBlock | OpenBlock | MalformedBlock | Injection | Text)+ + Template: (Comment | Translate | If | Require | CacheBlock | UncachedBlock | OldI18NTag | ClosedBlock | OpenBlock | MalformedBlock | Injection | Text)+ */ function Template_STR(&$res, $sub) { $res['php'] .= $sub['php'] . PHP_EOL ; @@ -177,40 +181,55 @@ class SSTemplateParser extends Parser { /*!* - # Translatable call - Translate: "<%t" Entity (Default)? (!("is" "=") "is" Context)? (InjectionVariables)* "%>" - InjectionVariables: InjectionName:Word "=" Argument + # New Translatable Syntax + # <%t Entity DefaultString is Context name1=string name2=$functionCall + # (This is a new way to call translatable strings. The parser transforms this into a call to the _t() method) + + Translate: "<%t" < Entity < (Default:QuotedString)? < (!("is" "=") < "is" < Context:QuotedString)? < (InjectionVariables)? > "%>" + InjectionVariables: (< InjectionName:Word "=" Argument)+ + Entity: / [A-Za-z_] [\w\.]* / */ function Translate__construct(&$res) { - $res['php'] = "_t("; + $res['php'] = '$val .= _t('; } function Translate_Entity(&$res, $sub) { - $res['php'] .= $sub['php']; - Debug::show($sub); + $res['php'] .= "'$sub[text]'"; } + function Translate_Default(&$res, $sub) { - Debug::show($sub); + $res['php'] .= ",$sub[text]"; } + function Translate_Context(&$res, $sub) { - Debug::show($sub); + $res['php'] .= ",$sub[text]"; + } + + function Translate_InjectionVariables(&$res, $sub) { + $res['php'] .= ",$sub[php]"; } function Translate__finalise(&$res) { - $res['php'] .= ')'; + $res['php'] .= ');'; } - function InjectionVariables__construct(&$res) { + $res['php'] = "array("; } function InjectionVariables_InjectionName(&$res, $sub) { + $res['php'] .= "'$sub[text]'=>"; } function InjectionVariables_Argument(&$res, $sub) { + $res['php'] .= str_replace('$$FINAL', 'XML_val', $sub['php']) . ','; + } + function InjectionVariables__finalise(&$res) { + if (substr($res['php'], -1) == ',') $res['php'] = substr($res['php'], 0, -1); //remove last comma in the array + $res['php'] .= ')'; } @@ -303,7 +322,7 @@ class SSTemplateParser extends Parser { function Argument_FreeString(&$res, $sub) { $res['ArgumentMode'] = 'string'; - $res['php'] = "'" . str_replace("'", "\\'", rtrim($sub['text'])) . "'"; + $res['php'] = "'" . str_replace("'", "\\'", $sub['text']) . "'"; } /*!* @@ -546,8 +565,10 @@ class SSTemplateParser extends Parser { # This is the core used by both syntaxes, without the block start & end tags - OldTPart: "_t" < "(" < QuotedString (< "," < CallArguments)? > ")" - + OldTPart: "_t" N "(" N QuotedString (N "," N CallArguments)? N ")" N (";")? + + # whitespace with a newline + N: / [\s\n]* / */ function OldTPart__construct(&$res) { $res['php'] = "_t("; From f926242b7792e4664382b66af8019d73f7d363d9 Mon Sep 17 00:00:00 2001 From: Julian Seidenberg Date: Thu, 14 Apr 2011 16:25:33 +1200 Subject: [PATCH 13/23] BUGFIX: fixed a template so it can parsed by the new parser --- templates/ModelViewer_dotsrc.ss | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 templates/ModelViewer_dotsrc.ss diff --git a/templates/ModelViewer_dotsrc.ss b/templates/ModelViewer_dotsrc.ss new file mode 100644 index 000000000..63eb31994 --- /dev/null +++ b/templates/ModelViewer_dotsrc.ss @@ -0,0 +1,20 @@ +digraph g { + orientation=portrait; + overlap=false; + splines=true; + + edge[fontsize=8,len=1.5]; + node[fontsize=10,shape=box]; + + <% control Modules %> + <% control Models %> + $Name [shape=record,label="{{$Name}|<% control Fields %>$Name\\n<% end_control %>}"]; + <% if ParentModel %> + $Name -> $ParentModel [style=dotted]; + <% end_if %> + <% control Relations %> + $Model.Name -> $RelatedClass [label="$Name\\n$RelationType"]; + <% end_control %> + <% end_control %> + <% end_control %> +} From c314d0b6595f703f5391ee88ab6a9f265f443ff5 Mon Sep 17 00:00:00 2001 From: Julian Seidenberg Date: Mon, 16 Apr 2012 17:24:48 +1200 Subject: [PATCH 14/23] API-CHANGE: i18nTextCollector can now extract the new translatable entities (<%t) from templates and populate them in language tables (uses PEG parser) --- i18n/i18nTextCollector.php | 230 ++++++++++++++++++++------- tests/i18n/i18nTextCollectorTest.php | 62 +++++++- 2 files changed, 232 insertions(+), 60 deletions(-) diff --git a/i18n/i18nTextCollector.php b/i18n/i18nTextCollector.php index db670c397..612719011 100644 --- a/i18n/i18nTextCollector.php +++ b/i18n/i18nTextCollector.php @@ -195,70 +195,134 @@ class i18nTextCollector extends Object { } public function collectFromCode($content, $module) { - $entities = array(); + $entitiesArr = array(); - $tokens = token_get_all(" 0) { //we have at least one match + + //take all the matched _t entities + foreach($matchesArray[1] as $match) { + //replace all commas with backticks (unique character to explode on later) + $replacedMatch = preg_replace('/("|\'|_LOW|_MEDIUM|_HIGH)\s*,\s*([\'"]|"|\'|array|PR)/','$1`$2',$match); //keep array text + + //$replacedMatch = trim($replacedMatch," \"'\n"); //remove starting and ending quotes + $replacedMatch = trim($replacedMatch," \n"); //remove starting and ending spaces and newlines + + $parts = explode('`',$replacedMatch); //cut up the _t call + + $partsWOQuotes = array(); + foreach($parts as $part) { + $part = trim($part,"\n"); //remove spaces and newlines from part + + $firstChar = substr($part,0,1); + if ($firstChar == "'" || $firstChar == '"') { + //remove wrapping quotes + $part = substr($part,1,-1); + + //remove inner concatenation + $part = preg_replace("/$firstChar\\s*\\.\\s*$firstChar/",'',$part); } - - if($inConcat) { - $currentEntity[count($currentEntity)-1] .= $text; - } else { - $currentEntity[] = $text; - } - } - } elseif($inTransFn && $token == '.') { - $inConcat = true; - } elseif($inTransFn && $token == ',') { - $inConcat = false; - } elseif($inTransFn && $token == ')') { - // finalize definition - $inTransFn = false; - $inConcat = false; - $entity = array_shift($currentEntity); - $entities[$entity] = $currentEntity; - $currentEntity = array(); - } - } - - foreach($entities as $entity => $spec) { - // call without master language definition - if(!$spec) { - unset($entities[$entity]); - continue; - } - unset($entities[$entity]); - $entities[$this->normalizeEntity($entity, $module)] = $spec; + $partsWOQuotes[] = $part; //remove starting and ending quotes from inner parts + } + + if ($parts && count($partsWOQuotes) > 0) { + + $entitiesArr = array_merge($entitiesArr, (array)$this->entitySpecFromNewParts($partsWOQuotes)); + } + } } - ksort($entities); - - return $entities; + + ksort($entitiesArr); + + return $entitiesArr; } + + /** + * Test if one string starts with another + */ + protected function startsWith($haystack, $needle) { + $length = strlen($needle); + return (substr($haystack, 0, $length) === $needle); + } + + /** + * Converts a parts array from explode function into an array of entities for the i18n text collector + * @return array + */ + protected function entitySpecFromNewParts($parts, $namespace = null) { + // first thing in the parts array will always be the entity + // split fullname into entity parts + //set defaults + $value = ""; + $prio = null; + $comment = null; + + $entityParts = explode('.', $parts[0]); + if(count($entityParts) > 1) { + // templates don't have a custom namespace + $entity = array_pop($entityParts); + // namespace might contain dots, so we explode + $namespace = implode('.',$entityParts); + } else { + $entity = array_pop($entityParts); + $namespace = $namespace; + } + + //find the array (if found, then we are dealing with the new _t syntax + $newSyntax = false; + $offset = 0; + foreach($parts as $p) { + if ($this->startsWith($p,'array')) { //remove everything after (and including) the array + $newSyntax = true; + $parts = array_splice($parts,0,$offset); + break; + } + $offset++; + } + + //2nd part of array is always "string" + if (isset($parts[1])) $value = $parts[1]; + + + //3rd part can either be priority or context, if old or now syntax is used + if (isset($parts[2])) { + if ($newSyntax) { + $prio = 40; //default priority + $comment = $parts[2]; + } else { + if (stripos($parts[2], 'PR_LOW') !== false || + stripos($parts[2], 'PR_MEDIUM') !== false || + stripos($parts[2], 'PR_HIGH') !== false) { //definitely old syntax + $prio = $parts[2]; + } else { //default to new syntax (3rd position is comment/context + $prio = 40; //default priority + $comment = $parts[2]; + } + } + } + + //if 4th position is set then this is old syntax and it is the context + //it would be array in the new syntax and therefore should have already been spliced off + if (isset($parts[3])) { + $comment = $parts[3]; + $prio = $parts[2]; //3rd position is now definitely priority + } + + return array( + "{$namespace}.{$entity}" => array( + $value, + $prio, + $comment + ) + ); + } + + + public function collectFromTemplate($content, $fileName, $module) { $entities = array(); @@ -276,6 +340,11 @@ class i18nTextCollector extends Object { // @todo Will get massively confused if you include the includer -> infinite loop } + // use parser to extract <%t style translatable entities + $translatables = i18nTextCollector_Parser::GetTranslatables($content); + $entities = array_merge($entities,(array)$translatables); + + // use the old method of getting _t() style translatable entities // Collect in actual template if(preg_match_all('/<%\s*(_t\(.*)%>/ms', $content, $matches)) { foreach($matches as $match) { @@ -516,4 +585,49 @@ class i18nTextCollector_Writer_RailsYaml implements i18nTextCollector_Writer { // TODO Dumper can't handle YAML comments, so the context information is currently discarded return $yamlHandler->dump(array($locale => $entitiesNested), 99); } +} + +/** + * Parser that scans through a template and extracts the parameters to the _t and <%t calls + */ +class i18nTextCollector_Parser extends SSTemplateParser { + + static $entities = array(); + static $currentEntity = array(); + + function Translate__construct(&$res) { + self::$currentEntity = array(null,null,null); //start with empty array + } + + function Translate_Entity(&$res, $sub) { + self::$currentEntity[0] = $sub['text']; //entity + } + + function Translate_Default(&$res, $sub) { + self::$currentEntity[1] = $sub['String']['text']; //value + } + + function Translate_Context(&$res, $sub) { + self::$currentEntity[2] = $sub['String']['text']; //comment + } + + function Translate__finalise(&$res) { + // set the entity name and the value (default), as well as the context (comment) + // priority is no longer used, so that is blank + self::$entities[self::$currentEntity[0]] = array(self::$currentEntity[1],null,self::$currentEntity[2]); + } + + /** + * Parses a template and returns any translatable entities + */ + static function GetTranslatables($template) { + self::$entities = array(); + + // Run the parser and throw away the result + $parser = new i18nTextCollector_Parser($template); + if(substr($template, 0,3) == pack("CCC", 0xef, 0xbb, 0xbf)) $parser->pos = 3; + $parser->match_TopTemplate(); + + return self::$entities; + } } \ No newline at end of file diff --git a/tests/i18n/i18nTextCollectorTest.php b/tests/i18n/i18nTextCollectorTest.php index 14e25cf6c..53f483aae 100644 --- a/tests/i18n/i18nTextCollectorTest.php +++ b/tests/i18n/i18nTextCollectorTest.php @@ -58,7 +58,7 @@ _t( _t( 'Test.CONCATENATED2', -"Line \"4\" and " . +"Line "4" and " . "Line 5"); PHP; $this->assertEquals( @@ -68,7 +68,36 @@ PHP; 'Test.CONCATENATED2' => array("Line \"4\" and Line 5") ) ); - } + } + + function testCollectFromNewTemplateSyntaxUsingParserSubclass() { + $c = new i18nTextCollector(); + + $html = << +<%t i18nTestModule.NEWMETHODSIG "New _t method signature test" %> +<%t i18nTestModule.INJECTIONS_0 "Hello {name} {greeting}. But it is late, {goodbye}" name="Mark" greeting="welcome" goodbye="bye" %> +<%t i18nTestModule.INJECTIONS_1 "Hello {name} {greeting}. But it is late, {goodbye}" name="Paul" greeting="good you are here" goodbye="see you" %> +<%t i18nTestModule.INJECTIONS_2 "Hello {name} {greeting}. But it is late, {goodbye}" is "New context (this should be ignored)" name="Steffen" greeting="willkommen" goodbye="wiedersehen" %> +<%t i18nTestModule.INJECTIONS_3 name="Cat" greeting='meow' goodbye="meow" %> +<%t i18nTestModule.INJECTIONS_4 name=\$absoluteBaseURL greeting=\$get_locale goodbye="global calls" %> +SS; + $c->collectFromTemplate($html, 'mymodule', 'Test'); + + $this->assertEquals( + $c->collectFromTemplate($html, 'mymodule', 'Test'), + array( + 'Test.SINGLEQUOTE' => array('Single Quote',null,null), + 'i18nTestModule.NEWMETHODSIG' => array("New _t method signature test",null,null), + 'i18nTestModule.INJECTIONS_0' => array("Hello {name} {greeting}. But it is late, {goodbye}", null, null), + 'i18nTestModule.INJECTIONS_1' => array("Hello {name} {greeting}. But it is late, {goodbye}", null, null), + 'i18nTestModule.INJECTIONS_2' => array("Hello {name} {greeting}. But it is late, {goodbye}", null, "New context (this should be ignored)"), + 'i18nTestModule.INJECTIONS_3' => array(null, null, null), + 'i18nTestModule.INJECTIONS_4' => array(null, null, null), + ) + ); + } + function testCollectFromTemplateSimple() { $c = new i18nTextCollector(); @@ -282,6 +311,35 @@ PHP; ); } + /** + * Test extracting entities from the new _t method signature + */ + function testCollectFromCodeNewSignature() { + $c = new i18nTextCollector(); + + $php = <<"Mark", "greeting"=>"welcome", "goodbye"=>"bye")); +_t('i18nTestModule.INJECTIONS2', "Hello {name} {greeting}. But it is late, {goodbye}", array("name"=>"Paul", "greeting"=>"good you are here", "goodbye"=>"see you")); +_t("i18nTestModule.INJECTIONS3", "Hello {name} {greeting}. But it is late, {goodbye}", "New context (this should be ignored)", array("name"=>"Steffen", "greeting"=>"willkommen", "goodbye"=>"wiedersehen")); +_t('i18nTestModule.INJECTIONS4', array("name"=>"Cat", "greeting"=>"meow", "goodbye"=>"meow")); +PHP; + + $collectedTranslatables = $c->collectFromCode($php, 'mymodule'); + + $expectedArray = (array( + 'i18nTestModule.NEWMETHODSIG' => array("New _t method signature test", null, null), + 'i18nTestModule.INJECTIONS1' => array("_DOES_NOT_EXIST", 40, "Hello {name} {greeting}. But it is late, {goodbye}"), + 'i18nTestModule.INJECTIONS2' => array("Hello {name} {greeting}. But it is late, {goodbye}", null, null), + 'i18nTestModule.INJECTIONS3' => array("Hello {name} {greeting}. But it is late, {goodbye}", 40, "New context (this should be ignored)"), + 'i18nTestModule.INJECTIONS4' => array(null, null, null), + )); + + ksort($expectedArray); + + $this->assertEquals($collectedTranslatables, $expectedArray); + } + /** * Input for langArrayCodeForEntitySpec() should be suitable for insertion * into single-quoted strings, so needs to be escaped already. From 65e3651ff4ee46959ac8a7ba7806235ed7b5b85d Mon Sep 17 00:00:00 2001 From: Julian Seidenberg Date: Mon, 16 Apr 2012 17:37:57 +1200 Subject: [PATCH 15/23] API-CHANGE: new translatable syntax _t function --- i18n/i18n.php | 41 +- view/SSTemplateParser.php | 3304 +++++++++++++++++---------------- view/SSTemplateParser.php.inc | 2 +- 3 files changed, 1720 insertions(+), 1627 deletions(-) diff --git a/i18n/i18n.php b/i18n/i18n.php index 2c593b06f..d1ac5cb52 100644 --- a/i18n/i18n.php +++ b/i18n/i18n.php @@ -1456,25 +1456,39 @@ class i18n extends Object implements TemplateGlobalProvider { * the class name where this string is used and Entity identifies the string inside the namespace. * @param string $string The original string itself. In a usual call this is a mandatory parameter, but if you are reusing a string which * has already been "declared" (using another call to this function, with the same class and entity), you can omit it. - * @param string $context If the string can be difficult to translate by any reason, you can help translators with some more info using this param + * @param string $context (optional) If the string can be difficult to translate by any reason, you can help translators with some more info using this param + * @param string injectionArray (optional) array of key value pairs that are used to replace corresponding expressions in {curly brackets} in the $string * @return string The translated string, according to the currently set locale {@link i18n::set_locale()} */ - static function _t($entity, $string = "", $context = "") { + static function _t($entity, $string = "", $context = "", $injection = "") { if(is_numeric($context) && in_array($context, array(PR_LOW, PR_MEDIUM, PR_HIGH))) { - $context = func_get_arg(4); Deprecation::notice( - '3.0', + '3.0', 'The $priority argument to _t() is deprecated, please use module inclusion priorities instead' ); } + + //fetch the injection array out of the parameters (if it is present) + $argList = func_get_args(); + $argNum = func_num_args(); + //_t($entity, $string = "", $context (optional), $injectionArray (optional)) + $injectionArray = null; + for($i = 0; $i < $argNum; $i++) { + if (is_array($argList[$i])) { //we have reached the injectionArray + $injectionArray = $argList[$i]; //any array in the args will be the injection array + } + } + // get current locale (either default or user preference) $locale = i18n::get_locale(); $lang = i18n::get_lang_from_locale($locale); - + // Only call getter if static isn't already defined (for performance reasons) $translatorsByPrio = self::$translators; if(!$translatorsByPrio) $translatorsByPrio = self::get_translators(); - + + $returnValue = $string; // Fall back to default string argument + foreach($translatorsByPrio as $priority => $translators) { foreach($translators as $name => $translator) { $adapter = $translator->getAdapter(); @@ -1489,14 +1503,21 @@ class i18n extends Object implements TemplateGlobalProvider { $translation = $adapter->translate($entity, $locale); // Return translation only if we found a match thats not the entity itself (Zend fallback) - if($translation && $translation != $entity) return $translation; + if($translation && $translation != $entity) $returnValue = $translation; } } - - // Fall back to default string argument - return $string; + + // inject the variables from injectionArray (if present) + if ($injectionArray && count($injectionArray) > 0) { + foreach($injectionArray as $variable => $injection) { + $returnValue = str_replace('{'.$variable.'}', $injection, $returnValue); + } + } + + return $returnValue; } + /** * @return array Array of priority keys to instances of Zend_Translate, mapped by name. */ diff --git a/view/SSTemplateParser.php b/view/SSTemplateParser.php index 6cbeadf24..867c018b6 100644 --- a/view/SSTemplateParser.php +++ b/view/SSTemplateParser.php @@ -79,17 +79,17 @@ class SSTemplateParser extends Parser { return $res; } - /* Template: (Comment | Translate | If | Require | CacheBlock | UncachedBlock | OldI18NTag | ClosedBlock | OpenBlock | MalformedBlock | Injection | Text)+ */ + /* Template: (Comment | Translate | If | Require | CacheBlock | UncachedBlock | OldI18NTag | Include | ClosedBlock | OpenBlock | MalformedBlock | Injection | Text)+ */ protected $match_Template_typestack = array('Template'); function match_Template ($stack = array()) { $matchrule = "Template"; $result = $this->construct($matchrule, $matchrule, null); $count = 0; while (true) { - $res_46 = $result; - $pos_46 = $this->pos; - $_45 = NULL; + $res_50 = $result; + $pos_50 = $this->pos; + $_49 = NULL; do { - $_43 = NULL; + $_47 = NULL; do { $res_0 = $result; $pos_0 = $this->pos; @@ -97,11 +97,11 @@ class SSTemplateParser extends Parser { $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); if ($subres !== FALSE) { $this->store( $result, $subres ); - $_43 = TRUE; break; + $_47 = TRUE; break; } $result = $res_0; $this->pos = $pos_0; - $_41 = NULL; + $_45 = NULL; do { $res_2 = $result; $pos_2 = $this->pos; @@ -109,11 +109,11 @@ class SSTemplateParser extends Parser { $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); if ($subres !== FALSE) { $this->store( $result, $subres ); - $_41 = TRUE; break; + $_45 = TRUE; break; } $result = $res_2; $this->pos = $pos_2; - $_39 = NULL; + $_43 = NULL; do { $res_4 = $result; $pos_4 = $this->pos; @@ -121,11 +121,11 @@ class SSTemplateParser extends Parser { $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); if ($subres !== FALSE) { $this->store( $result, $subres ); - $_39 = TRUE; break; + $_43 = TRUE; break; } $result = $res_4; $this->pos = $pos_4; - $_37 = NULL; + $_41 = NULL; do { $res_6 = $result; $pos_6 = $this->pos; @@ -133,11 +133,11 @@ class SSTemplateParser extends Parser { $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); if ($subres !== FALSE) { $this->store( $result, $subres ); - $_37 = TRUE; break; + $_41 = TRUE; break; } $result = $res_6; $this->pos = $pos_6; - $_35 = NULL; + $_39 = NULL; do { $res_8 = $result; $pos_8 = $this->pos; @@ -145,11 +145,11 @@ class SSTemplateParser extends Parser { $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); if ($subres !== FALSE) { $this->store( $result, $subres ); - $_35 = TRUE; break; + $_39 = TRUE; break; } $result = $res_8; $this->pos = $pos_8; - $_33 = NULL; + $_37 = NULL; do { $res_10 = $result; $pos_10 = $this->pos; @@ -157,11 +157,11 @@ class SSTemplateParser extends Parser { $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); if ($subres !== FALSE) { $this->store( $result, $subres ); - $_33 = TRUE; break; + $_37 = TRUE; break; } $result = $res_10; $this->pos = $pos_10; - $_31 = NULL; + $_35 = NULL; do { $res_12 = $result; $pos_12 = $this->pos; @@ -169,138 +169,156 @@ class SSTemplateParser extends Parser { $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); if ($subres !== FALSE) { $this->store( $result, $subres ); - $_31 = TRUE; break; + $_35 = TRUE; break; } $result = $res_12; $this->pos = $pos_12; - $_29 = NULL; + $_33 = NULL; do { $res_14 = $result; $pos_14 = $this->pos; - $matcher = 'match_'.'ClosedBlock'; $key = $matcher; $pos = $this->pos; + $matcher = 'match_'.'Include'; $key = $matcher; $pos = $this->pos; $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); if ($subres !== FALSE) { $this->store( $result, $subres ); - $_29 = TRUE; break; + $_33 = TRUE; break; } $result = $res_14; $this->pos = $pos_14; - $_27 = NULL; + $_31 = NULL; do { $res_16 = $result; $pos_16 = $this->pos; - $matcher = 'match_'.'OpenBlock'; $key = $matcher; $pos = $this->pos; + $matcher = 'match_'.'ClosedBlock'; $key = $matcher; $pos = $this->pos; $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); if ($subres !== FALSE) { $this->store( $result, $subres ); - $_27 = TRUE; break; + $_31 = TRUE; break; } $result = $res_16; $this->pos = $pos_16; - $_25 = NULL; + $_29 = NULL; do { $res_18 = $result; $pos_18 = $this->pos; - $matcher = 'match_'.'MalformedBlock'; $key = $matcher; $pos = $this->pos; + $matcher = 'match_'.'OpenBlock'; $key = $matcher; $pos = $this->pos; $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); if ($subres !== FALSE) { $this->store( $result, $subres ); - $_25 = TRUE; break; + $_29 = TRUE; break; } $result = $res_18; $this->pos = $pos_18; - $_23 = NULL; + $_27 = NULL; do { $res_20 = $result; $pos_20 = $this->pos; - $matcher = 'match_'.'Injection'; $key = $matcher; $pos = $this->pos; + $matcher = 'match_'.'MalformedBlock'; $key = $matcher; $pos = $this->pos; $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); if ($subres !== FALSE) { $this->store( $result, $subres ); - $_23 = TRUE; break; + $_27 = TRUE; break; } $result = $res_20; $this->pos = $pos_20; - $matcher = 'match_'.'Text'; $key = $matcher; $pos = $this->pos; - $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); - if ($subres !== FALSE) { - $this->store( $result, $subres ); - $_23 = TRUE; break; + $_25 = NULL; + do { + $res_22 = $result; + $pos_22 = $this->pos; + $matcher = 'match_'.'Injection'; $key = $matcher; $pos = $this->pos; + $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); + if ($subres !== FALSE) { + $this->store( $result, $subres ); + $_25 = TRUE; break; + } + $result = $res_22; + $this->pos = $pos_22; + $matcher = 'match_'.'Text'; $key = $matcher; $pos = $this->pos; + $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); + if ($subres !== FALSE) { + $this->store( $result, $subres ); + $_25 = TRUE; break; + } + $result = $res_22; + $this->pos = $pos_22; + $_25 = FALSE; break; } + while(0); + if( $_25 === TRUE ) { $_27 = TRUE; break; } $result = $res_20; $this->pos = $pos_20; - $_23 = FALSE; break; + $_27 = FALSE; break; } while(0); - if( $_23 === TRUE ) { $_25 = TRUE; break; } + if( $_27 === TRUE ) { $_29 = TRUE; break; } $result = $res_18; $this->pos = $pos_18; - $_25 = FALSE; break; + $_29 = FALSE; break; } while(0); - if( $_25 === TRUE ) { $_27 = TRUE; break; } + if( $_29 === TRUE ) { $_31 = TRUE; break; } $result = $res_16; $this->pos = $pos_16; - $_27 = FALSE; break; + $_31 = FALSE; break; } while(0); - if( $_27 === TRUE ) { $_29 = TRUE; break; } + if( $_31 === TRUE ) { $_33 = TRUE; break; } $result = $res_14; $this->pos = $pos_14; - $_29 = FALSE; break; + $_33 = FALSE; break; } while(0); - if( $_29 === TRUE ) { $_31 = TRUE; break; } + if( $_33 === TRUE ) { $_35 = TRUE; break; } $result = $res_12; $this->pos = $pos_12; - $_31 = FALSE; break; + $_35 = FALSE; break; } while(0); - if( $_31 === TRUE ) { $_33 = TRUE; break; } + if( $_35 === TRUE ) { $_37 = TRUE; break; } $result = $res_10; $this->pos = $pos_10; - $_33 = FALSE; break; + $_37 = FALSE; break; } while(0); - if( $_33 === TRUE ) { $_35 = TRUE; break; } + if( $_37 === TRUE ) { $_39 = TRUE; break; } $result = $res_8; $this->pos = $pos_8; - $_35 = FALSE; break; + $_39 = FALSE; break; } while(0); - if( $_35 === TRUE ) { $_37 = TRUE; break; } + if( $_39 === TRUE ) { $_41 = TRUE; break; } $result = $res_6; $this->pos = $pos_6; - $_37 = FALSE; break; + $_41 = FALSE; break; } while(0); - if( $_37 === TRUE ) { $_39 = TRUE; break; } + if( $_41 === TRUE ) { $_43 = TRUE; break; } $result = $res_4; $this->pos = $pos_4; - $_39 = FALSE; break; + $_43 = FALSE; break; } while(0); - if( $_39 === TRUE ) { $_41 = TRUE; break; } + if( $_43 === TRUE ) { $_45 = TRUE; break; } $result = $res_2; $this->pos = $pos_2; - $_41 = FALSE; break; + $_45 = FALSE; break; } while(0); - if( $_41 === TRUE ) { $_43 = TRUE; break; } + if( $_45 === TRUE ) { $_47 = TRUE; break; } $result = $res_0; $this->pos = $pos_0; - $_43 = FALSE; break; + $_47 = FALSE; break; } while(0); - if( $_43 === FALSE) { $_45 = FALSE; break; } - $_45 = TRUE; break; + if( $_47 === FALSE) { $_49 = FALSE; break; } + $_49 = TRUE; break; } while(0); - if( $_45 === FALSE) { - $result = $res_46; - $this->pos = $pos_46; - unset( $res_46 ); - unset( $pos_46 ); + if( $_49 === FALSE) { + $result = $res_50; + $this->pos = $pos_50; + unset( $res_50 ); + unset( $pos_50 ); break; } $count += 1; @@ -355,48 +373,48 @@ class SSTemplateParser extends Parser { protected $match_CallArguments_typestack = array('CallArguments'); function match_CallArguments ($stack = array()) { $matchrule = "CallArguments"; $result = $this->construct($matchrule, $matchrule, null); - $_57 = NULL; + $_61 = NULL; do { $matcher = 'match_'.'Argument'; $key = $matcher; $pos = $this->pos; $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); if ($subres !== FALSE) { $this->store( $result, $subres, "Argument" ); } - else { $_57 = FALSE; break; } + else { $_61 = FALSE; break; } while (true) { - $res_56 = $result; - $pos_56 = $this->pos; - $_55 = NULL; + $res_60 = $result; + $pos_60 = $this->pos; + $_59 = NULL; do { if (( $subres = $this->whitespace( ) ) !== FALSE) { $result["text"] .= $subres; } if (substr($this->string,$this->pos,1) == ',') { $this->pos += 1; $result["text"] .= ','; } - else { $_55 = FALSE; break; } + else { $_59 = FALSE; break; } if (( $subres = $this->whitespace( ) ) !== FALSE) { $result["text"] .= $subres; } $matcher = 'match_'.'Argument'; $key = $matcher; $pos = $this->pos; $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); if ($subres !== FALSE) { $this->store( $result, $subres, "Argument" ); } - else { $_55 = FALSE; break; } - $_55 = TRUE; break; + else { $_59 = FALSE; break; } + $_59 = TRUE; break; } while(0); - if( $_55 === FALSE) { - $result = $res_56; - $this->pos = $pos_56; - unset( $res_56 ); - unset( $pos_56 ); + if( $_59 === FALSE) { + $result = $res_60; + $this->pos = $pos_60; + unset( $res_60 ); + unset( $pos_60 ); break; } } - $_57 = TRUE; break; + $_61 = TRUE; break; } while(0); - if( $_57 === TRUE ) { return $this->finalise($result); } - if( $_57 === FALSE) { return FALSE; } + if( $_61 === TRUE ) { return $this->finalise($result); } + if( $_61 === FALSE) { return FALSE; } } @@ -416,57 +434,57 @@ class SSTemplateParser extends Parser { protected $match_Call_typestack = array('Call'); function match_Call ($stack = array()) { $matchrule = "Call"; $result = $this->construct($matchrule, $matchrule, null); - $_67 = NULL; + $_71 = NULL; do { $matcher = 'match_'.'Word'; $key = $matcher; $pos = $this->pos; $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); if ($subres !== FALSE) { $this->store( $result, $subres, "Method" ); } - else { $_67 = FALSE; break; } - $res_66 = $result; - $pos_66 = $this->pos; - $_65 = NULL; + else { $_71 = FALSE; break; } + $res_70 = $result; + $pos_70 = $this->pos; + $_69 = NULL; do { if (substr($this->string,$this->pos,1) == '(') { $this->pos += 1; $result["text"] .= '('; } - else { $_65 = FALSE; break; } + else { $_69 = FALSE; break; } if (( $subres = $this->whitespace( ) ) !== FALSE) { $result["text"] .= $subres; } - $res_62 = $result; - $pos_62 = $this->pos; + $res_66 = $result; + $pos_66 = $this->pos; $matcher = 'match_'.'CallArguments'; $key = $matcher; $pos = $this->pos; $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); if ($subres !== FALSE) { $this->store( $result, $subres, "CallArguments" ); } else { - $result = $res_62; - $this->pos = $pos_62; - unset( $res_62 ); - unset( $pos_62 ); + $result = $res_66; + $this->pos = $pos_66; + unset( $res_66 ); + unset( $pos_66 ); } if (( $subres = $this->whitespace( ) ) !== FALSE) { $result["text"] .= $subres; } if (substr($this->string,$this->pos,1) == ')') { $this->pos += 1; $result["text"] .= ')'; } - else { $_65 = FALSE; break; } - $_65 = TRUE; break; + else { $_69 = FALSE; break; } + $_69 = TRUE; break; } while(0); - if( $_65 === FALSE) { - $result = $res_66; - $this->pos = $pos_66; - unset( $res_66 ); - unset( $pos_66 ); + if( $_69 === FALSE) { + $result = $res_70; + $this->pos = $pos_70; + unset( $res_70 ); + unset( $pos_70 ); } - $_67 = TRUE; break; + $_71 = TRUE; break; } while(0); - if( $_67 === TRUE ) { return $this->finalise($result); } - if( $_67 === FALSE) { return FALSE; } + if( $_71 === TRUE ) { return $this->finalise($result); } + if( $_71 === FALSE) { return FALSE; } } @@ -474,32 +492,32 @@ class SSTemplateParser extends Parser { protected $match_LookupStep_typestack = array('LookupStep'); function match_LookupStep ($stack = array()) { $matchrule = "LookupStep"; $result = $this->construct($matchrule, $matchrule, null); - $_71 = NULL; + $_75 = NULL; do { $matcher = 'match_'.'Call'; $key = $matcher; $pos = $this->pos; $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); if ($subres !== FALSE) { $this->store( $result, $subres, "Call" ); } - else { $_71 = FALSE; break; } - $res_70 = $result; - $pos_70 = $this->pos; + else { $_75 = FALSE; break; } + $res_74 = $result; + $pos_74 = $this->pos; if (substr($this->string,$this->pos,1) == '.') { $this->pos += 1; $result["text"] .= '.'; - $result = $res_70; - $this->pos = $pos_70; + $result = $res_74; + $this->pos = $pos_74; } else { - $result = $res_70; - $this->pos = $pos_70; - $_71 = FALSE; break; + $result = $res_74; + $this->pos = $pos_74; + $_75 = FALSE; break; } - $_71 = TRUE; break; + $_75 = TRUE; break; } while(0); - if( $_71 === TRUE ) { return $this->finalise($result); } - if( $_71 === FALSE) { return FALSE; } + if( $_75 === TRUE ) { return $this->finalise($result); } + if( $_75 === FALSE) { return FALSE; } } @@ -521,40 +539,40 @@ class SSTemplateParser extends Parser { protected $match_Lookup_typestack = array('Lookup'); function match_Lookup ($stack = array()) { $matchrule = "Lookup"; $result = $this->construct($matchrule, $matchrule, null); - $_85 = NULL; + $_89 = NULL; do { - $res_74 = $result; - $pos_74 = $this->pos; - $_82 = NULL; + $res_78 = $result; + $pos_78 = $this->pos; + $_86 = NULL; do { $matcher = 'match_'.'LookupStep'; $key = $matcher; $pos = $this->pos; $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); if ($subres !== FALSE) { $this->store( $result, $subres ); } - else { $_82 = FALSE; break; } + else { $_86 = FALSE; break; } while (true) { - $res_79 = $result; - $pos_79 = $this->pos; - $_78 = NULL; + $res_83 = $result; + $pos_83 = $this->pos; + $_82 = NULL; do { if (substr($this->string,$this->pos,1) == '.') { $this->pos += 1; $result["text"] .= '.'; } - else { $_78 = FALSE; break; } + else { $_82 = FALSE; break; } $matcher = 'match_'.'LookupStep'; $key = $matcher; $pos = $this->pos; $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); if ($subres !== FALSE) { $this->store( $result, $subres ); } - else { $_78 = FALSE; break; } - $_78 = TRUE; break; + else { $_82 = FALSE; break; } + $_82 = TRUE; break; } while(0); - if( $_78 === FALSE) { - $result = $res_79; - $this->pos = $pos_79; - unset( $res_79 ); - unset( $pos_79 ); + if( $_82 === FALSE) { + $result = $res_83; + $this->pos = $pos_83; + unset( $res_83 ); + unset( $pos_83 ); break; } } @@ -562,30 +580,30 @@ class SSTemplateParser extends Parser { $this->pos += 1; $result["text"] .= '.'; } - else { $_82 = FALSE; break; } + else { $_86 = FALSE; break; } $matcher = 'match_'.'LastLookupStep'; $key = $matcher; $pos = $this->pos; $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); if ($subres !== FALSE) { $this->store( $result, $subres ); } - else { $_82 = FALSE; break; } - $_82 = TRUE; break; + else { $_86 = FALSE; break; } + $_86 = TRUE; break; } while(0); - if( $_82 === TRUE ) { $_85 = TRUE; break; } - $result = $res_74; - $this->pos = $pos_74; + if( $_86 === TRUE ) { $_89 = TRUE; break; } + $result = $res_78; + $this->pos = $pos_78; $matcher = 'match_'.'LastLookupStep'; $key = $matcher; $pos = $this->pos; $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); if ($subres !== FALSE) { $this->store( $result, $subres ); - $_85 = TRUE; break; + $_89 = TRUE; break; } - $result = $res_74; - $this->pos = $pos_74; - $_85 = FALSE; break; + $result = $res_78; + $this->pos = $pos_78; + $_89 = FALSE; break; } while(0); - if( $_85 === TRUE ) { return $this->finalise($result); } - if( $_85 === FALSE) { return FALSE; } + if( $_89 === TRUE ) { return $this->finalise($result); } + if( $_89 === FALSE) { return FALSE; } } @@ -627,90 +645,72 @@ class SSTemplateParser extends Parser { protected $match_Translate_typestack = array('Translate'); function match_Translate ($stack = array()) { $matchrule = "Translate"; $result = $this->construct($matchrule, $matchrule, null); - $_111 = NULL; + $_115 = NULL; do { if (( $subres = $this->literal( '<%t' ) ) !== FALSE) { $result["text"] .= $subres; } - else { $_111 = FALSE; break; } + else { $_115 = FALSE; break; } if (( $subres = $this->whitespace( ) ) !== FALSE) { $result["text"] .= $subres; } $matcher = 'match_'.'Entity'; $key = $matcher; $pos = $this->pos; $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); if ($subres !== FALSE) { $this->store( $result, $subres ); } - else { $_111 = FALSE; break; } + else { $_115 = FALSE; break; } if (( $subres = $this->whitespace( ) ) !== FALSE) { $result["text"] .= $subres; } - $res_93 = $result; - $pos_93 = $this->pos; - $_92 = NULL; + $res_97 = $result; + $pos_97 = $this->pos; + $_96 = NULL; do { $matcher = 'match_'.'QuotedString'; $key = $matcher; $pos = $this->pos; $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); if ($subres !== FALSE) { $this->store( $result, $subres, "Default" ); } - else { $_92 = FALSE; break; } - $_92 = TRUE; break; + else { $_96 = FALSE; break; } + $_96 = TRUE; break; } while(0); - if( $_92 === FALSE) { - $result = $res_93; - $this->pos = $pos_93; - unset( $res_93 ); - unset( $pos_93 ); - } - if (( $subres = $this->whitespace( ) ) !== FALSE) { $result["text"] .= $subres; } - $res_104 = $result; - $pos_104 = $this->pos; - $_103 = NULL; - do { - $res_98 = $result; - $pos_98 = $this->pos; - $_97 = NULL; - do { - if (( $subres = $this->literal( 'is' ) ) !== FALSE) { $result["text"] .= $subres; } - else { $_97 = FALSE; break; } - if (substr($this->string,$this->pos,1) == '=') { - $this->pos += 1; - $result["text"] .= '='; - } - else { $_97 = FALSE; break; } - $_97 = TRUE; break; - } - while(0); - if( $_97 === TRUE ) { - $result = $res_98; - $this->pos = $pos_98; - $_103 = FALSE; break; - } - if( $_97 === FALSE) { - $result = $res_98; - $this->pos = $pos_98; - } - if (( $subres = $this->whitespace( ) ) !== FALSE) { $result["text"] .= $subres; } - if (( $subres = $this->literal( 'is' ) ) !== FALSE) { $result["text"] .= $subres; } - else { $_103 = FALSE; break; } - if (( $subres = $this->whitespace( ) ) !== FALSE) { $result["text"] .= $subres; } - $matcher = 'match_'.'QuotedString'; $key = $matcher; $pos = $this->pos; - $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); - if ($subres !== FALSE) { - $this->store( $result, $subres, "Context" ); - } - else { $_103 = FALSE; break; } - $_103 = TRUE; break; - } - while(0); - if( $_103 === FALSE) { - $result = $res_104; - $this->pos = $pos_104; - unset( $res_104 ); - unset( $pos_104 ); + if( $_96 === FALSE) { + $result = $res_97; + $this->pos = $pos_97; + unset( $res_97 ); + unset( $pos_97 ); } if (( $subres = $this->whitespace( ) ) !== FALSE) { $result["text"] .= $subres; } $res_108 = $result; $pos_108 = $this->pos; $_107 = NULL; do { - $matcher = 'match_'.'InjectionVariables'; $key = $matcher; $pos = $this->pos; + $res_102 = $result; + $pos_102 = $this->pos; + $_101 = NULL; + do { + if (( $subres = $this->literal( 'is' ) ) !== FALSE) { $result["text"] .= $subres; } + else { $_101 = FALSE; break; } + if (substr($this->string,$this->pos,1) == '=') { + $this->pos += 1; + $result["text"] .= '='; + } + else { $_101 = FALSE; break; } + $_101 = TRUE; break; + } + while(0); + if( $_101 === TRUE ) { + $result = $res_102; + $this->pos = $pos_102; + $_107 = FALSE; break; + } + if( $_101 === FALSE) { + $result = $res_102; + $this->pos = $pos_102; + } + if (( $subres = $this->whitespace( ) ) !== FALSE) { $result["text"] .= $subres; } + if (( $subres = $this->literal( 'is' ) ) !== FALSE) { $result["text"] .= $subres; } + else { $_107 = FALSE; break; } + if (( $subres = $this->whitespace( ) ) !== FALSE) { $result["text"] .= $subres; } + $matcher = 'match_'.'QuotedString'; $key = $matcher; $pos = $this->pos; $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); - if ($subres !== FALSE) { $this->store( $result, $subres ); } + if ($subres !== FALSE) { + $this->store( $result, $subres, "Context" ); + } else { $_107 = FALSE; break; } $_107 = TRUE; break; } @@ -722,13 +722,31 @@ class SSTemplateParser extends Parser { unset( $pos_108 ); } if (( $subres = $this->whitespace( ) ) !== FALSE) { $result["text"] .= $subres; } + $res_112 = $result; + $pos_112 = $this->pos; + $_111 = NULL; + do { + $matcher = 'match_'.'InjectionVariables'; $key = $matcher; $pos = $this->pos; + $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); + if ($subres !== FALSE) { $this->store( $result, $subres ); } + else { $_111 = FALSE; break; } + $_111 = TRUE; break; + } + while(0); + if( $_111 === FALSE) { + $result = $res_112; + $this->pos = $pos_112; + unset( $res_112 ); + unset( $pos_112 ); + } + if (( $subres = $this->whitespace( ) ) !== FALSE) { $result["text"] .= $subres; } if (( $subres = $this->literal( '%>' ) ) !== FALSE) { $result["text"] .= $subres; } - else { $_111 = FALSE; break; } - $_111 = TRUE; break; + else { $_115 = FALSE; break; } + $_115 = TRUE; break; } while(0); - if( $_111 === TRUE ) { return $this->finalise($result); } - if( $_111 === FALSE) { return FALSE; } + if( $_115 === TRUE ) { return $this->finalise($result); } + if( $_115 === FALSE) { return FALSE; } } @@ -738,9 +756,9 @@ class SSTemplateParser extends Parser { $matchrule = "InjectionVariables"; $result = $this->construct($matchrule, $matchrule, null); $count = 0; while (true) { - $res_118 = $result; - $pos_118 = $this->pos; - $_117 = NULL; + $res_122 = $result; + $pos_122 = $this->pos; + $_121 = NULL; do { if (( $subres = $this->whitespace( ) ) !== FALSE) { $result["text"] .= $subres; } $matcher = 'match_'.'Word'; $key = $matcher; $pos = $this->pos; @@ -748,24 +766,24 @@ class SSTemplateParser extends Parser { if ($subres !== FALSE) { $this->store( $result, $subres, "InjectionName" ); } - else { $_117 = FALSE; break; } + else { $_121 = FALSE; break; } if (substr($this->string,$this->pos,1) == '=') { $this->pos += 1; $result["text"] .= '='; } - else { $_117 = FALSE; break; } + else { $_121 = FALSE; break; } $matcher = 'match_'.'Argument'; $key = $matcher; $pos = $this->pos; $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); if ($subres !== FALSE) { $this->store( $result, $subres ); } - else { $_117 = FALSE; break; } - $_117 = TRUE; break; + else { $_121 = FALSE; break; } + $_121 = TRUE; break; } while(0); - if( $_117 === FALSE) { - $result = $res_118; - $this->pos = $pos_118; - unset( $res_118 ); - unset( $pos_118 ); + if( $_121 === FALSE) { + $result = $res_122; + $this->pos = $pos_122; + unset( $res_122 ); + unset( $pos_122 ); break; } $count += 1; @@ -835,24 +853,24 @@ class SSTemplateParser extends Parser { protected $match_SimpleInjection_typestack = array('SimpleInjection'); function match_SimpleInjection ($stack = array()) { $matchrule = "SimpleInjection"; $result = $this->construct($matchrule, $matchrule, null); - $_122 = NULL; + $_126 = NULL; do { if (substr($this->string,$this->pos,1) == '$') { $this->pos += 1; $result["text"] .= '$'; } - else { $_122 = FALSE; break; } + else { $_126 = FALSE; break; } $matcher = 'match_'.'Lookup'; $key = $matcher; $pos = $this->pos; $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); if ($subres !== FALSE) { $this->store( $result, $subres, "Lookup" ); } - else { $_122 = FALSE; break; } - $_122 = TRUE; break; + else { $_126 = FALSE; break; } + $_126 = TRUE; break; } while(0); - if( $_122 === TRUE ) { return $this->finalise($result); } - if( $_122 === FALSE) { return FALSE; } + if( $_126 === TRUE ) { return $this->finalise($result); } + if( $_126 === FALSE) { return FALSE; } } @@ -860,26 +878,26 @@ class SSTemplateParser extends Parser { protected $match_BracketInjection_typestack = array('BracketInjection'); function match_BracketInjection ($stack = array()) { $matchrule = "BracketInjection"; $result = $this->construct($matchrule, $matchrule, null); - $_127 = NULL; + $_131 = NULL; do { if (( $subres = $this->literal( '{$' ) ) !== FALSE) { $result["text"] .= $subres; } - else { $_127 = FALSE; break; } + else { $_131 = FALSE; break; } $matcher = 'match_'.'Lookup'; $key = $matcher; $pos = $this->pos; $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); if ($subres !== FALSE) { $this->store( $result, $subres, "Lookup" ); } - else { $_127 = FALSE; break; } + else { $_131 = FALSE; break; } if (substr($this->string,$this->pos,1) == '}') { $this->pos += 1; $result["text"] .= '}'; } - else { $_127 = FALSE; break; } - $_127 = TRUE; break; + else { $_131 = FALSE; break; } + $_131 = TRUE; break; } while(0); - if( $_127 === TRUE ) { return $this->finalise($result); } - if( $_127 === FALSE) { return FALSE; } + if( $_131 === TRUE ) { return $this->finalise($result); } + if( $_131 === FALSE) { return FALSE; } } @@ -887,31 +905,31 @@ class SSTemplateParser extends Parser { protected $match_Injection_typestack = array('Injection'); function match_Injection ($stack = array()) { $matchrule = "Injection"; $result = $this->construct($matchrule, $matchrule, null); - $_132 = NULL; + $_136 = NULL; do { - $res_129 = $result; - $pos_129 = $this->pos; + $res_133 = $result; + $pos_133 = $this->pos; $matcher = 'match_'.'BracketInjection'; $key = $matcher; $pos = $this->pos; $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); if ($subres !== FALSE) { $this->store( $result, $subres ); - $_132 = TRUE; break; + $_136 = TRUE; break; } - $result = $res_129; - $this->pos = $pos_129; + $result = $res_133; + $this->pos = $pos_133; $matcher = 'match_'.'SimpleInjection'; $key = $matcher; $pos = $this->pos; $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); if ($subres !== FALSE) { $this->store( $result, $subres ); - $_132 = TRUE; break; + $_136 = TRUE; break; } - $result = $res_129; - $this->pos = $pos_129; - $_132 = FALSE; break; + $result = $res_133; + $this->pos = $pos_133; + $_136 = FALSE; break; } while(0); - if( $_132 === TRUE ) { return $this->finalise($result); } - if( $_132 === FALSE) { return FALSE; } + if( $_136 === TRUE ) { return $this->finalise($result); } + if( $_136 === FALSE) { return FALSE; } } @@ -943,7 +961,7 @@ class SSTemplateParser extends Parser { protected $match_QuotedString_typestack = array('QuotedString'); function match_QuotedString ($stack = array()) { $matchrule = "QuotedString"; $result = $this->construct($matchrule, $matchrule, null); - $_138 = NULL; + $_142 = NULL; do { $stack[] = $result; $result = $this->construct( $matchrule, "q" ); if (( $subres = $this->rx( '/[\'"]/' ) ) !== FALSE) { @@ -953,7 +971,7 @@ class SSTemplateParser extends Parser { } else { $result = array_pop($stack); - $_138 = FALSE; break; + $_142 = FALSE; break; } $stack[] = $result; $result = $this->construct( $matchrule, "String" ); if (( $subres = $this->rx( '/ (\\\\\\\\ | \\\\. | [^'.$this->expression($result, $stack, 'q').'\\\\])* /' ) ) !== FALSE) { @@ -963,15 +981,15 @@ class SSTemplateParser extends Parser { } else { $result = array_pop($stack); - $_138 = FALSE; break; + $_142 = FALSE; break; } if (( $subres = $this->literal( ''.$this->expression($result, $stack, 'q').'' ) ) !== FALSE) { $result["text"] .= $subres; } - else { $_138 = FALSE; break; } - $_138 = TRUE; break; + else { $_142 = FALSE; break; } + $_142 = TRUE; break; } while(0); - if( $_138 === TRUE ) { return $this->finalise($result); } - if( $_138 === FALSE) { return FALSE; } + if( $_142 === TRUE ) { return $this->finalise($result); } + if( $_142 === FALSE) { return FALSE; } } @@ -995,45 +1013,45 @@ class SSTemplateParser extends Parser { protected $match_Argument_typestack = array('Argument'); function match_Argument ($stack = array()) { $matchrule = "Argument"; $result = $this->construct($matchrule, $matchrule, null); - $_158 = NULL; + $_162 = NULL; do { - $res_141 = $result; - $pos_141 = $this->pos; + $res_145 = $result; + $pos_145 = $this->pos; $matcher = 'match_'.'DollarMarkedLookup'; $key = $matcher; $pos = $this->pos; $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); if ($subres !== FALSE) { $this->store( $result, $subres, "DollarMarkedLookup" ); - $_158 = TRUE; break; + $_162 = TRUE; break; } - $result = $res_141; - $this->pos = $pos_141; - $_156 = NULL; + $result = $res_145; + $this->pos = $pos_145; + $_160 = NULL; do { - $res_143 = $result; - $pos_143 = $this->pos; + $res_147 = $result; + $pos_147 = $this->pos; $matcher = 'match_'.'QuotedString'; $key = $matcher; $pos = $this->pos; $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); if ($subres !== FALSE) { $this->store( $result, $subres, "QuotedString" ); - $_156 = TRUE; break; + $_160 = TRUE; break; } - $result = $res_143; - $this->pos = $pos_143; - $_154 = NULL; + $result = $res_147; + $this->pos = $pos_147; + $_158 = NULL; do { - $res_145 = $result; - $pos_145 = $this->pos; - $_151 = NULL; + $res_149 = $result; + $pos_149 = $this->pos; + $_155 = NULL; do { $matcher = 'match_'.'Lookup'; $key = $matcher; $pos = $this->pos; $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); if ($subres !== FALSE) { $this->store( $result, $subres, "Lookup" ); } - else { $_151 = FALSE; break; } - $res_150 = $result; - $pos_150 = $this->pos; - $_149 = NULL; + else { $_155 = FALSE; break; } + $res_154 = $result; + $pos_154 = $this->pos; + $_153 = NULL; do { if (( $subres = $this->whitespace( ) ) !== FALSE) { $result["text"] .= $subres; } $matcher = 'match_'.'FreeString'; $key = $matcher; $pos = $this->pos; @@ -1041,50 +1059,50 @@ class SSTemplateParser extends Parser { if ($subres !== FALSE) { $this->store( $result, $subres ); } - else { $_149 = FALSE; break; } - $_149 = TRUE; break; + else { $_153 = FALSE; break; } + $_153 = TRUE; break; } while(0); - if( $_149 === TRUE ) { - $result = $res_150; - $this->pos = $pos_150; - $_151 = FALSE; break; + if( $_153 === TRUE ) { + $result = $res_154; + $this->pos = $pos_154; + $_155 = FALSE; break; } - if( $_149 === FALSE) { - $result = $res_150; - $this->pos = $pos_150; + if( $_153 === FALSE) { + $result = $res_154; + $this->pos = $pos_154; } - $_151 = TRUE; break; + $_155 = TRUE; break; } while(0); - if( $_151 === TRUE ) { $_154 = TRUE; break; } - $result = $res_145; - $this->pos = $pos_145; + if( $_155 === TRUE ) { $_158 = TRUE; break; } + $result = $res_149; + $this->pos = $pos_149; $matcher = 'match_'.'FreeString'; $key = $matcher; $pos = $this->pos; $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); if ($subres !== FALSE) { $this->store( $result, $subres, "FreeString" ); - $_154 = TRUE; break; + $_158 = TRUE; break; } - $result = $res_145; - $this->pos = $pos_145; - $_154 = FALSE; break; + $result = $res_149; + $this->pos = $pos_149; + $_158 = FALSE; break; } while(0); - if( $_154 === TRUE ) { $_156 = TRUE; break; } - $result = $res_143; - $this->pos = $pos_143; - $_156 = FALSE; break; + if( $_158 === TRUE ) { $_160 = TRUE; break; } + $result = $res_147; + $this->pos = $pos_147; + $_160 = FALSE; break; } while(0); - if( $_156 === TRUE ) { $_158 = TRUE; break; } - $result = $res_141; - $this->pos = $pos_141; - $_158 = FALSE; break; + if( $_160 === TRUE ) { $_162 = TRUE; break; } + $result = $res_145; + $this->pos = $pos_145; + $_162 = FALSE; break; } while(0); - if( $_158 === TRUE ) { return $this->finalise($result); } - if( $_158 === FALSE) { return FALSE; } + if( $_162 === TRUE ) { return $this->finalise($result); } + if( $_162 === FALSE) { return FALSE; } } @@ -1135,44 +1153,44 @@ class SSTemplateParser extends Parser { protected $match_ComparisonOperator_typestack = array('ComparisonOperator'); function match_ComparisonOperator ($stack = array()) { $matchrule = "ComparisonOperator"; $result = $this->construct($matchrule, $matchrule, null); - $_167 = NULL; + $_171 = NULL; do { - $res_160 = $result; - $pos_160 = $this->pos; + $res_164 = $result; + $pos_164 = $this->pos; if (( $subres = $this->literal( '==' ) ) !== FALSE) { $result["text"] .= $subres; - $_167 = TRUE; break; + $_171 = TRUE; break; } - $result = $res_160; - $this->pos = $pos_160; - $_165 = NULL; + $result = $res_164; + $this->pos = $pos_164; + $_169 = NULL; do { - $res_162 = $result; - $pos_162 = $this->pos; + $res_166 = $result; + $pos_166 = $this->pos; if (( $subres = $this->literal( '!=' ) ) !== FALSE) { $result["text"] .= $subres; - $_165 = TRUE; break; + $_169 = TRUE; break; } - $result = $res_162; - $this->pos = $pos_162; + $result = $res_166; + $this->pos = $pos_166; if (substr($this->string,$this->pos,1) == '=') { $this->pos += 1; $result["text"] .= '='; - $_165 = TRUE; break; + $_169 = TRUE; break; } - $result = $res_162; - $this->pos = $pos_162; - $_165 = FALSE; break; + $result = $res_166; + $this->pos = $pos_166; + $_169 = FALSE; break; } while(0); - if( $_165 === TRUE ) { $_167 = TRUE; break; } - $result = $res_160; - $this->pos = $pos_160; - $_167 = FALSE; break; + if( $_169 === TRUE ) { $_171 = TRUE; break; } + $result = $res_164; + $this->pos = $pos_164; + $_171 = FALSE; break; } while(0); - if( $_167 === TRUE ) { return $this->finalise($result); } - if( $_167 === FALSE) { return FALSE; } + if( $_171 === TRUE ) { return $this->finalise($result); } + if( $_171 === FALSE) { return FALSE; } } @@ -1180,27 +1198,27 @@ class SSTemplateParser extends Parser { protected $match_Comparison_typestack = array('Comparison'); function match_Comparison ($stack = array()) { $matchrule = "Comparison"; $result = $this->construct($matchrule, $matchrule, null); - $_174 = NULL; + $_178 = NULL; do { $matcher = 'match_'.'Argument'; $key = $matcher; $pos = $this->pos; $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); if ($subres !== FALSE) { $this->store( $result, $subres ); } - else { $_174 = FALSE; break; } + else { $_178 = FALSE; break; } if (( $subres = $this->whitespace( ) ) !== FALSE) { $result["text"] .= $subres; } $matcher = 'match_'.'ComparisonOperator'; $key = $matcher; $pos = $this->pos; $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); if ($subres !== FALSE) { $this->store( $result, $subres ); } - else { $_174 = FALSE; break; } + else { $_178 = FALSE; break; } if (( $subres = $this->whitespace( ) ) !== FALSE) { $result["text"] .= $subres; } $matcher = 'match_'.'Argument'; $key = $matcher; $pos = $this->pos; $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); if ($subres !== FALSE) { $this->store( $result, $subres ); } - else { $_174 = FALSE; break; } - $_174 = TRUE; break; + else { $_178 = FALSE; break; } + $_178 = TRUE; break; } while(0); - if( $_174 === TRUE ) { return $this->finalise($result); } - if( $_174 === FALSE) { return FALSE; } + if( $_178 === TRUE ) { return $this->finalise($result); } + if( $_178 === FALSE) { return FALSE; } } @@ -1223,11 +1241,11 @@ class SSTemplateParser extends Parser { protected $match_PresenceCheck_typestack = array('PresenceCheck'); function match_PresenceCheck ($stack = array()) { $matchrule = "PresenceCheck"; $result = $this->construct($matchrule, $matchrule, null); - $_181 = NULL; + $_185 = NULL; do { - $res_179 = $result; - $pos_179 = $this->pos; - $_178 = NULL; + $res_183 = $result; + $pos_183 = $this->pos; + $_182 = NULL; do { $stack[] = $result; $result = $this->construct( $matchrule, "Not" ); if (( $subres = $this->literal( 'not' ) ) !== FALSE) { @@ -1237,27 +1255,27 @@ class SSTemplateParser extends Parser { } else { $result = array_pop($stack); - $_178 = FALSE; break; + $_182 = FALSE; break; } if (( $subres = $this->whitespace( ) ) !== FALSE) { $result["text"] .= $subres; } - $_178 = TRUE; break; + $_182 = TRUE; break; } while(0); - if( $_178 === FALSE) { - $result = $res_179; - $this->pos = $pos_179; - unset( $res_179 ); - unset( $pos_179 ); + if( $_182 === FALSE) { + $result = $res_183; + $this->pos = $pos_183; + unset( $res_183 ); + unset( $pos_183 ); } $matcher = 'match_'.'Argument'; $key = $matcher; $pos = $this->pos; $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); if ($subres !== FALSE) { $this->store( $result, $subres ); } - else { $_181 = FALSE; break; } - $_181 = TRUE; break; + else { $_185 = FALSE; break; } + $_185 = TRUE; break; } while(0); - if( $_181 === TRUE ) { return $this->finalise($result); } - if( $_181 === FALSE) { return FALSE; } + if( $_185 === TRUE ) { return $this->finalise($result); } + if( $_185 === FALSE) { return FALSE; } } @@ -1282,31 +1300,31 @@ class SSTemplateParser extends Parser { protected $match_IfArgumentPortion_typestack = array('IfArgumentPortion'); function match_IfArgumentPortion ($stack = array()) { $matchrule = "IfArgumentPortion"; $result = $this->construct($matchrule, $matchrule, null); - $_186 = NULL; + $_190 = NULL; do { - $res_183 = $result; - $pos_183 = $this->pos; + $res_187 = $result; + $pos_187 = $this->pos; $matcher = 'match_'.'Comparison'; $key = $matcher; $pos = $this->pos; $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); if ($subres !== FALSE) { $this->store( $result, $subres ); - $_186 = TRUE; break; + $_190 = TRUE; break; } - $result = $res_183; - $this->pos = $pos_183; + $result = $res_187; + $this->pos = $pos_187; $matcher = 'match_'.'PresenceCheck'; $key = $matcher; $pos = $this->pos; $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); if ($subres !== FALSE) { $this->store( $result, $subres ); - $_186 = TRUE; break; + $_190 = TRUE; break; } - $result = $res_183; - $this->pos = $pos_183; - $_186 = FALSE; break; + $result = $res_187; + $this->pos = $pos_187; + $_190 = FALSE; break; } while(0); - if( $_186 === TRUE ) { return $this->finalise($result); } - if( $_186 === FALSE) { return FALSE; } + if( $_190 === TRUE ) { return $this->finalise($result); } + if( $_190 === FALSE) { return FALSE; } } @@ -1319,27 +1337,27 @@ class SSTemplateParser extends Parser { protected $match_BooleanOperator_typestack = array('BooleanOperator'); function match_BooleanOperator ($stack = array()) { $matchrule = "BooleanOperator"; $result = $this->construct($matchrule, $matchrule, null); - $_191 = NULL; + $_195 = NULL; do { - $res_188 = $result; - $pos_188 = $this->pos; + $res_192 = $result; + $pos_192 = $this->pos; if (( $subres = $this->literal( '||' ) ) !== FALSE) { $result["text"] .= $subres; - $_191 = TRUE; break; + $_195 = TRUE; break; } - $result = $res_188; - $this->pos = $pos_188; + $result = $res_192; + $this->pos = $pos_192; if (( $subres = $this->literal( '&&' ) ) !== FALSE) { $result["text"] .= $subres; - $_191 = TRUE; break; + $_195 = TRUE; break; } - $result = $res_188; - $this->pos = $pos_188; - $_191 = FALSE; break; + $result = $res_192; + $this->pos = $pos_192; + $_195 = FALSE; break; } while(0); - if( $_191 === TRUE ) { return $this->finalise($result); } - if( $_191 === FALSE) { return FALSE; } + if( $_195 === TRUE ) { return $this->finalise($result); } + if( $_195 === FALSE) { return FALSE; } } @@ -1347,18 +1365,18 @@ class SSTemplateParser extends Parser { protected $match_IfArgument_typestack = array('IfArgument'); function match_IfArgument ($stack = array()) { $matchrule = "IfArgument"; $result = $this->construct($matchrule, $matchrule, null); - $_200 = NULL; + $_204 = NULL; do { $matcher = 'match_'.'IfArgumentPortion'; $key = $matcher; $pos = $this->pos; $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); if ($subres !== FALSE) { $this->store( $result, $subres, "IfArgumentPortion" ); } - else { $_200 = FALSE; break; } + else { $_204 = FALSE; break; } while (true) { - $res_199 = $result; - $pos_199 = $this->pos; - $_198 = NULL; + $res_203 = $result; + $pos_203 = $this->pos; + $_202 = NULL; do { if (( $subres = $this->whitespace( ) ) !== FALSE) { $result["text"] .= $subres; } $matcher = 'match_'.'BooleanOperator'; $key = $matcher; $pos = $this->pos; @@ -1366,30 +1384,30 @@ class SSTemplateParser extends Parser { if ($subres !== FALSE) { $this->store( $result, $subres, "BooleanOperator" ); } - else { $_198 = FALSE; break; } + else { $_202 = FALSE; break; } if (( $subres = $this->whitespace( ) ) !== FALSE) { $result["text"] .= $subres; } $matcher = 'match_'.'IfArgumentPortion'; $key = $matcher; $pos = $this->pos; $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); if ($subres !== FALSE) { $this->store( $result, $subres, "IfArgumentPortion" ); } - else { $_198 = FALSE; break; } - $_198 = TRUE; break; + else { $_202 = FALSE; break; } + $_202 = TRUE; break; } while(0); - if( $_198 === FALSE) { - $result = $res_199; - $this->pos = $pos_199; - unset( $res_199 ); - unset( $pos_199 ); + if( $_202 === FALSE) { + $result = $res_203; + $this->pos = $pos_203; + unset( $res_203 ); + unset( $pos_203 ); break; } } - $_200 = TRUE; break; + $_204 = TRUE; break; } while(0); - if( $_200 === TRUE ) { return $this->finalise($result); } - if( $_200 === FALSE) { return FALSE; } + if( $_204 === TRUE ) { return $this->finalise($result); } + if( $_204 === FALSE) { return FALSE; } } @@ -1406,42 +1424,42 @@ class SSTemplateParser extends Parser { protected $match_IfPart_typestack = array('IfPart'); function match_IfPart ($stack = array()) { $matchrule = "IfPart"; $result = $this->construct($matchrule, $matchrule, null); - $_210 = NULL; + $_214 = NULL; do { if (( $subres = $this->literal( '<%' ) ) !== FALSE) { $result["text"] .= $subres; } - else { $_210 = FALSE; break; } + else { $_214 = FALSE; break; } if (( $subres = $this->whitespace( ) ) !== FALSE) { $result["text"] .= $subres; } if (( $subres = $this->literal( 'if' ) ) !== FALSE) { $result["text"] .= $subres; } - else { $_210 = FALSE; break; } + else { $_214 = FALSE; break; } if (( $subres = $this->whitespace( ) ) !== FALSE) { $result["text"] .= $subres; } - else { $_210 = FALSE; break; } + else { $_214 = FALSE; break; } $matcher = 'match_'.'IfArgument'; $key = $matcher; $pos = $this->pos; $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); if ($subres !== FALSE) { $this->store( $result, $subres, "IfArgument" ); } - else { $_210 = FALSE; break; } + else { $_214 = FALSE; break; } if (( $subres = $this->whitespace( ) ) !== FALSE) { $result["text"] .= $subres; } if (( $subres = $this->literal( '%>' ) ) !== FALSE) { $result["text"] .= $subres; } - else { $_210 = FALSE; break; } - $res_209 = $result; - $pos_209 = $this->pos; + else { $_214 = FALSE; break; } + $res_213 = $result; + $pos_213 = $this->pos; $matcher = 'match_'.$this->expression($result, $stack, 'TemplateMatcher'); $key = $matcher; $pos = $this->pos; $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); if ($subres !== FALSE) { $this->store( $result, $subres, "Template" ); } else { - $result = $res_209; - $this->pos = $pos_209; - unset( $res_209 ); - unset( $pos_209 ); + $result = $res_213; + $this->pos = $pos_213; + unset( $res_213 ); + unset( $pos_213 ); } - $_210 = TRUE; break; + $_214 = TRUE; break; } while(0); - if( $_210 === TRUE ) { return $this->finalise($result); } - if( $_210 === FALSE) { return FALSE; } + if( $_214 === TRUE ) { return $this->finalise($result); } + if( $_214 === FALSE) { return FALSE; } } @@ -1449,35 +1467,35 @@ class SSTemplateParser extends Parser { protected $match_ElseIfPart_typestack = array('ElseIfPart'); function match_ElseIfPart ($stack = array()) { $matchrule = "ElseIfPart"; $result = $this->construct($matchrule, $matchrule, null); - $_220 = NULL; + $_224 = NULL; do { if (( $subres = $this->literal( '<%' ) ) !== FALSE) { $result["text"] .= $subres; } - else { $_220 = FALSE; break; } + else { $_224 = FALSE; break; } if (( $subres = $this->whitespace( ) ) !== FALSE) { $result["text"] .= $subres; } if (( $subres = $this->literal( 'else_if' ) ) !== FALSE) { $result["text"] .= $subres; } - else { $_220 = FALSE; break; } + else { $_224 = FALSE; break; } if (( $subres = $this->whitespace( ) ) !== FALSE) { $result["text"] .= $subres; } - else { $_220 = FALSE; break; } + else { $_224 = FALSE; break; } $matcher = 'match_'.'IfArgument'; $key = $matcher; $pos = $this->pos; $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); if ($subres !== FALSE) { $this->store( $result, $subres, "IfArgument" ); } - else { $_220 = FALSE; break; } + else { $_224 = FALSE; break; } if (( $subres = $this->whitespace( ) ) !== FALSE) { $result["text"] .= $subres; } if (( $subres = $this->literal( '%>' ) ) !== FALSE) { $result["text"] .= $subres; } - else { $_220 = FALSE; break; } + else { $_224 = FALSE; break; } $matcher = 'match_'.$this->expression($result, $stack, 'TemplateMatcher'); $key = $matcher; $pos = $this->pos; $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); if ($subres !== FALSE) { $this->store( $result, $subres, "Template" ); } - else { $_220 = FALSE; break; } - $_220 = TRUE; break; + else { $_224 = FALSE; break; } + $_224 = TRUE; break; } while(0); - if( $_220 === TRUE ) { return $this->finalise($result); } - if( $_220 === FALSE) { return FALSE; } + if( $_224 === TRUE ) { return $this->finalise($result); } + if( $_224 === FALSE) { return FALSE; } } @@ -1485,27 +1503,27 @@ class SSTemplateParser extends Parser { protected $match_ElsePart_typestack = array('ElsePart'); function match_ElsePart ($stack = array()) { $matchrule = "ElsePart"; $result = $this->construct($matchrule, $matchrule, null); - $_228 = NULL; + $_232 = NULL; do { if (( $subres = $this->literal( '<%' ) ) !== FALSE) { $result["text"] .= $subres; } - else { $_228 = FALSE; break; } + else { $_232 = FALSE; break; } if (( $subres = $this->whitespace( ) ) !== FALSE) { $result["text"] .= $subres; } if (( $subres = $this->literal( 'else' ) ) !== FALSE) { $result["text"] .= $subres; } - else { $_228 = FALSE; break; } + else { $_232 = FALSE; break; } if (( $subres = $this->whitespace( ) ) !== FALSE) { $result["text"] .= $subres; } if (( $subres = $this->literal( '%>' ) ) !== FALSE) { $result["text"] .= $subres; } - else { $_228 = FALSE; break; } + else { $_232 = FALSE; break; } $matcher = 'match_'.$this->expression($result, $stack, 'TemplateMatcher'); $key = $matcher; $pos = $this->pos; $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); if ($subres !== FALSE) { $this->store( $result, $subres, "Template" ); } - else { $_228 = FALSE; break; } - $_228 = TRUE; break; + else { $_232 = FALSE; break; } + $_232 = TRUE; break; } while(0); - if( $_228 === TRUE ) { return $this->finalise($result); } - if( $_228 === FALSE) { return FALSE; } + if( $_232 === TRUE ) { return $this->finalise($result); } + if( $_232 === FALSE) { return FALSE; } } @@ -1513,50 +1531,50 @@ class SSTemplateParser extends Parser { protected $match_If_typestack = array('If'); function match_If ($stack = array()) { $matchrule = "If"; $result = $this->construct($matchrule, $matchrule, null); - $_238 = NULL; + $_242 = NULL; do { $matcher = 'match_'.'IfPart'; $key = $matcher; $pos = $this->pos; $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); if ($subres !== FALSE) { $this->store( $result, $subres ); } - else { $_238 = FALSE; break; } + else { $_242 = FALSE; break; } while (true) { - $res_231 = $result; - $pos_231 = $this->pos; + $res_235 = $result; + $pos_235 = $this->pos; $matcher = 'match_'.'ElseIfPart'; $key = $matcher; $pos = $this->pos; $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); if ($subres !== FALSE) { $this->store( $result, $subres ); } else { - $result = $res_231; - $this->pos = $pos_231; - unset( $res_231 ); - unset( $pos_231 ); + $result = $res_235; + $this->pos = $pos_235; + unset( $res_235 ); + unset( $pos_235 ); break; } } - $res_232 = $result; - $pos_232 = $this->pos; + $res_236 = $result; + $pos_236 = $this->pos; $matcher = 'match_'.'ElsePart'; $key = $matcher; $pos = $this->pos; $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); if ($subres !== FALSE) { $this->store( $result, $subres ); } else { - $result = $res_232; - $this->pos = $pos_232; - unset( $res_232 ); - unset( $pos_232 ); + $result = $res_236; + $this->pos = $pos_236; + unset( $res_236 ); + unset( $pos_236 ); } if (( $subres = $this->literal( '<%' ) ) !== FALSE) { $result["text"] .= $subres; } - else { $_238 = FALSE; break; } + else { $_242 = FALSE; break; } if (( $subres = $this->whitespace( ) ) !== FALSE) { $result["text"] .= $subres; } if (( $subres = $this->literal( 'end_if' ) ) !== FALSE) { $result["text"] .= $subres; } - else { $_238 = FALSE; break; } + else { $_242 = FALSE; break; } if (( $subres = $this->whitespace( ) ) !== FALSE) { $result["text"] .= $subres; } if (( $subres = $this->literal( '%>' ) ) !== FALSE) { $result["text"] .= $subres; } - else { $_238 = FALSE; break; } - $_238 = TRUE; break; + else { $_242 = FALSE; break; } + $_242 = TRUE; break; } while(0); - if( $_238 === TRUE ) { return $this->finalise($result); } - if( $_238 === FALSE) { return FALSE; } + if( $_242 === TRUE ) { return $this->finalise($result); } + if( $_242 === FALSE) { return FALSE; } } @@ -1586,61 +1604,61 @@ class SSTemplateParser extends Parser { protected $match_Require_typestack = array('Require'); function match_Require ($stack = array()) { $matchrule = "Require"; $result = $this->construct($matchrule, $matchrule, null); - $_254 = NULL; + $_258 = NULL; do { if (( $subres = $this->literal( '<%' ) ) !== FALSE) { $result["text"] .= $subres; } - else { $_254 = FALSE; break; } + else { $_258 = FALSE; break; } if (( $subres = $this->whitespace( ) ) !== FALSE) { $result["text"] .= $subres; } if (( $subres = $this->literal( 'require' ) ) !== FALSE) { $result["text"] .= $subres; } - else { $_254 = FALSE; break; } + else { $_258 = FALSE; break; } if (( $subres = $this->whitespace( ) ) !== FALSE) { $result["text"] .= $subres; } - else { $_254 = FALSE; break; } + else { $_258 = FALSE; break; } $stack[] = $result; $result = $this->construct( $matchrule, "Call" ); - $_250 = NULL; + $_254 = NULL; do { $matcher = 'match_'.'Word'; $key = $matcher; $pos = $this->pos; $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); if ($subres !== FALSE) { $this->store( $result, $subres, "Method" ); } - else { $_250 = FALSE; break; } + else { $_254 = FALSE; break; } if (substr($this->string,$this->pos,1) == '(') { $this->pos += 1; $result["text"] .= '('; } - else { $_250 = FALSE; break; } + else { $_254 = FALSE; break; } if (( $subres = $this->whitespace( ) ) !== FALSE) { $result["text"] .= $subres; } $matcher = 'match_'.'CallArguments'; $key = $matcher; $pos = $this->pos; $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); if ($subres !== FALSE) { $this->store( $result, $subres, "CallArguments" ); } - else { $_250 = FALSE; break; } + else { $_254 = FALSE; break; } if (( $subres = $this->whitespace( ) ) !== FALSE) { $result["text"] .= $subres; } if (substr($this->string,$this->pos,1) == ')') { $this->pos += 1; $result["text"] .= ')'; } - else { $_250 = FALSE; break; } - $_250 = TRUE; break; + else { $_254 = FALSE; break; } + $_254 = TRUE; break; } while(0); - if( $_250 === TRUE ) { + if( $_254 === TRUE ) { $subres = $result; $result = array_pop($stack); $this->store( $result, $subres, 'Call' ); } - if( $_250 === FALSE) { + if( $_254 === FALSE) { $result = array_pop($stack); - $_254 = FALSE; break; + $_258 = FALSE; break; } if (( $subres = $this->whitespace( ) ) !== FALSE) { $result["text"] .= $subres; } if (( $subres = $this->literal( '%>' ) ) !== FALSE) { $result["text"] .= $subres; } - else { $_254 = FALSE; break; } - $_254 = TRUE; break; + else { $_258 = FALSE; break; } + $_258 = TRUE; break; } while(0); - if( $_254 === TRUE ) { return $this->finalise($result); } - if( $_254 === FALSE) { return FALSE; } + if( $_258 === TRUE ) { return $this->finalise($result); } + if( $_258 === FALSE) { return FALSE; } } @@ -1660,97 +1678,97 @@ class SSTemplateParser extends Parser { protected $match_CacheBlockArgument_typestack = array('CacheBlockArgument'); function match_CacheBlockArgument ($stack = array()) { $matchrule = "CacheBlockArgument"; $result = $this->construct($matchrule, $matchrule, null); - $_274 = NULL; + $_278 = NULL; do { - $res_262 = $result; - $pos_262 = $this->pos; - $_261 = NULL; + $res_266 = $result; + $pos_266 = $this->pos; + $_265 = NULL; do { - $_259 = NULL; + $_263 = NULL; do { - $res_256 = $result; - $pos_256 = $this->pos; + $res_260 = $result; + $pos_260 = $this->pos; if (( $subres = $this->literal( 'if ' ) ) !== FALSE) { $result["text"] .= $subres; - $_259 = TRUE; break; + $_263 = TRUE; break; } - $result = $res_256; - $this->pos = $pos_256; + $result = $res_260; + $this->pos = $pos_260; if (( $subres = $this->literal( 'unless ' ) ) !== FALSE) { $result["text"] .= $subres; - $_259 = TRUE; break; + $_263 = TRUE; break; } - $result = $res_256; - $this->pos = $pos_256; - $_259 = FALSE; break; + $result = $res_260; + $this->pos = $pos_260; + $_263 = FALSE; break; } while(0); - if( $_259 === FALSE) { $_261 = FALSE; break; } - $_261 = TRUE; break; + if( $_263 === FALSE) { $_265 = FALSE; break; } + $_265 = TRUE; break; } while(0); - if( $_261 === TRUE ) { - $result = $res_262; - $this->pos = $pos_262; - $_274 = FALSE; break; + if( $_265 === TRUE ) { + $result = $res_266; + $this->pos = $pos_266; + $_278 = FALSE; break; } - if( $_261 === FALSE) { - $result = $res_262; - $this->pos = $pos_262; + if( $_265 === FALSE) { + $result = $res_266; + $this->pos = $pos_266; } - $_272 = NULL; + $_276 = NULL; do { - $_270 = NULL; + $_274 = NULL; do { - $res_263 = $result; - $pos_263 = $this->pos; + $res_267 = $result; + $pos_267 = $this->pos; $matcher = 'match_'.'DollarMarkedLookup'; $key = $matcher; $pos = $this->pos; $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); if ($subres !== FALSE) { $this->store( $result, $subres, "DollarMarkedLookup" ); - $_270 = TRUE; break; + $_274 = TRUE; break; } - $result = $res_263; - $this->pos = $pos_263; - $_268 = NULL; + $result = $res_267; + $this->pos = $pos_267; + $_272 = NULL; do { - $res_265 = $result; - $pos_265 = $this->pos; + $res_269 = $result; + $pos_269 = $this->pos; $matcher = 'match_'.'QuotedString'; $key = $matcher; $pos = $this->pos; $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); if ($subres !== FALSE) { $this->store( $result, $subres, "QuotedString" ); - $_268 = TRUE; break; + $_272 = TRUE; break; } - $result = $res_265; - $this->pos = $pos_265; + $result = $res_269; + $this->pos = $pos_269; $matcher = 'match_'.'Lookup'; $key = $matcher; $pos = $this->pos; $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); if ($subres !== FALSE) { $this->store( $result, $subres, "Lookup" ); - $_268 = TRUE; break; + $_272 = TRUE; break; } - $result = $res_265; - $this->pos = $pos_265; - $_268 = FALSE; break; + $result = $res_269; + $this->pos = $pos_269; + $_272 = FALSE; break; } while(0); - if( $_268 === TRUE ) { $_270 = TRUE; break; } - $result = $res_263; - $this->pos = $pos_263; - $_270 = FALSE; break; + if( $_272 === TRUE ) { $_274 = TRUE; break; } + $result = $res_267; + $this->pos = $pos_267; + $_274 = FALSE; break; } while(0); - if( $_270 === FALSE) { $_272 = FALSE; break; } - $_272 = TRUE; break; + if( $_274 === FALSE) { $_276 = FALSE; break; } + $_276 = TRUE; break; } while(0); - if( $_272 === FALSE) { $_274 = FALSE; break; } - $_274 = TRUE; break; + if( $_276 === FALSE) { $_278 = FALSE; break; } + $_278 = TRUE; break; } while(0); - if( $_274 === TRUE ) { return $this->finalise($result); } - if( $_274 === FALSE) { return FALSE; } + if( $_278 === TRUE ) { return $this->finalise($result); } + if( $_278 === FALSE) { return FALSE; } } @@ -1771,44 +1789,44 @@ class SSTemplateParser extends Parser { protected $match_CacheBlockArguments_typestack = array('CacheBlockArguments'); function match_CacheBlockArguments ($stack = array()) { $matchrule = "CacheBlockArguments"; $result = $this->construct($matchrule, $matchrule, null); - $_283 = NULL; + $_287 = NULL; do { $matcher = 'match_'.'CacheBlockArgument'; $key = $matcher; $pos = $this->pos; $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); if ($subres !== FALSE) { $this->store( $result, $subres ); } - else { $_283 = FALSE; break; } + else { $_287 = FALSE; break; } while (true) { - $res_282 = $result; - $pos_282 = $this->pos; - $_281 = NULL; + $res_286 = $result; + $pos_286 = $this->pos; + $_285 = NULL; do { if (( $subres = $this->whitespace( ) ) !== FALSE) { $result["text"] .= $subres; } if (substr($this->string,$this->pos,1) == ',') { $this->pos += 1; $result["text"] .= ','; } - else { $_281 = FALSE; break; } + else { $_285 = FALSE; break; } if (( $subres = $this->whitespace( ) ) !== FALSE) { $result["text"] .= $subres; } $matcher = 'match_'.'CacheBlockArgument'; $key = $matcher; $pos = $this->pos; $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); if ($subres !== FALSE) { $this->store( $result, $subres ); } - else { $_281 = FALSE; break; } - $_281 = TRUE; break; + else { $_285 = FALSE; break; } + $_285 = TRUE; break; } while(0); - if( $_281 === FALSE) { - $result = $res_282; - $this->pos = $pos_282; - unset( $res_282 ); - unset( $pos_282 ); + if( $_285 === FALSE) { + $result = $res_286; + $this->pos = $pos_286; + unset( $res_286 ); + unset( $pos_286 ); break; } } - $_283 = TRUE; break; + $_287 = TRUE; break; } while(0); - if( $_283 === TRUE ) { return $this->finalise($result); } - if( $_283 === FALSE) { return FALSE; } + if( $_287 === TRUE ) { return $this->finalise($result); } + if( $_287 === FALSE) { return FALSE; } } @@ -1820,192 +1838,210 @@ class SSTemplateParser extends Parser { $res['php'] .= str_replace('$$FINAL', 'XML_val', $sub['php']); } - /* CacheBlockTemplate: (Comment | Translate | If | Require | OldI18NTag | ClosedBlock | OpenBlock | MalformedBlock | Injection | Text)+ */ + /* CacheBlockTemplate: (Comment | Translate | If | Require | OldI18NTag | Include | ClosedBlock | OpenBlock | MalformedBlock | Injection | Text)+ */ protected $match_CacheBlockTemplate_typestack = array('CacheBlockTemplate','Template'); function match_CacheBlockTemplate ($stack = array()) { $matchrule = "CacheBlockTemplate"; $result = $this->construct($matchrule, $matchrule, array('TemplateMatcher' => 'CacheRestrictedTemplate')); $count = 0; while (true) { - $res_323 = $result; - $pos_323 = $this->pos; - $_322 = NULL; + $res_331 = $result; + $pos_331 = $this->pos; + $_330 = NULL; do { - $_320 = NULL; + $_328 = NULL; do { - $res_285 = $result; - $pos_285 = $this->pos; + $res_289 = $result; + $pos_289 = $this->pos; $matcher = 'match_'.'Comment'; $key = $matcher; $pos = $this->pos; $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); if ($subres !== FALSE) { $this->store( $result, $subres ); - $_320 = TRUE; break; + $_328 = TRUE; break; } - $result = $res_285; - $this->pos = $pos_285; - $_318 = NULL; + $result = $res_289; + $this->pos = $pos_289; + $_326 = NULL; do { - $res_287 = $result; - $pos_287 = $this->pos; + $res_291 = $result; + $pos_291 = $this->pos; $matcher = 'match_'.'Translate'; $key = $matcher; $pos = $this->pos; $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); if ($subres !== FALSE) { $this->store( $result, $subres ); - $_318 = TRUE; break; + $_326 = TRUE; break; } - $result = $res_287; - $this->pos = $pos_287; - $_316 = NULL; + $result = $res_291; + $this->pos = $pos_291; + $_324 = NULL; do { - $res_289 = $result; - $pos_289 = $this->pos; + $res_293 = $result; + $pos_293 = $this->pos; $matcher = 'match_'.'If'; $key = $matcher; $pos = $this->pos; $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); if ($subres !== FALSE) { $this->store( $result, $subres ); - $_316 = TRUE; break; + $_324 = TRUE; break; } - $result = $res_289; - $this->pos = $pos_289; - $_314 = NULL; + $result = $res_293; + $this->pos = $pos_293; + $_322 = NULL; do { - $res_291 = $result; - $pos_291 = $this->pos; + $res_295 = $result; + $pos_295 = $this->pos; $matcher = 'match_'.'Require'; $key = $matcher; $pos = $this->pos; $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); if ($subres !== FALSE) { $this->store( $result, $subres ); - $_314 = TRUE; break; + $_322 = TRUE; break; } - $result = $res_291; - $this->pos = $pos_291; - $_312 = NULL; + $result = $res_295; + $this->pos = $pos_295; + $_320 = NULL; do { - $res_293 = $result; - $pos_293 = $this->pos; + $res_297 = $result; + $pos_297 = $this->pos; $matcher = 'match_'.'OldI18NTag'; $key = $matcher; $pos = $this->pos; $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); if ($subres !== FALSE) { $this->store( $result, $subres ); - $_312 = TRUE; break; + $_320 = TRUE; break; } - $result = $res_293; - $this->pos = $pos_293; - $_310 = NULL; + $result = $res_297; + $this->pos = $pos_297; + $_318 = NULL; do { - $res_295 = $result; - $pos_295 = $this->pos; - $matcher = 'match_'.'ClosedBlock'; $key = $matcher; $pos = $this->pos; + $res_299 = $result; + $pos_299 = $this->pos; + $matcher = 'match_'.'Include'; $key = $matcher; $pos = $this->pos; $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); if ($subres !== FALSE) { $this->store( $result, $subres ); - $_310 = TRUE; break; + $_318 = TRUE; break; } - $result = $res_295; - $this->pos = $pos_295; - $_308 = NULL; + $result = $res_299; + $this->pos = $pos_299; + $_316 = NULL; do { - $res_297 = $result; - $pos_297 = $this->pos; - $matcher = 'match_'.'OpenBlock'; $key = $matcher; $pos = $this->pos; + $res_301 = $result; + $pos_301 = $this->pos; + $matcher = 'match_'.'ClosedBlock'; $key = $matcher; $pos = $this->pos; $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); if ($subres !== FALSE) { $this->store( $result, $subres ); - $_308 = TRUE; break; + $_316 = TRUE; break; } - $result = $res_297; - $this->pos = $pos_297; - $_306 = NULL; + $result = $res_301; + $this->pos = $pos_301; + $_314 = NULL; do { - $res_299 = $result; - $pos_299 = $this->pos; - $matcher = 'match_'.'MalformedBlock'; $key = $matcher; $pos = $this->pos; + $res_303 = $result; + $pos_303 = $this->pos; + $matcher = 'match_'.'OpenBlock'; $key = $matcher; $pos = $this->pos; $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); if ($subres !== FALSE) { $this->store( $result, $subres ); - $_306 = TRUE; break; + $_314 = TRUE; break; } - $result = $res_299; - $this->pos = $pos_299; - $_304 = NULL; + $result = $res_303; + $this->pos = $pos_303; + $_312 = NULL; do { - $res_301 = $result; - $pos_301 = $this->pos; - $matcher = 'match_'.'Injection'; $key = $matcher; $pos = $this->pos; + $res_305 = $result; + $pos_305 = $this->pos; + $matcher = 'match_'.'MalformedBlock'; $key = $matcher; $pos = $this->pos; $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); if ($subres !== FALSE) { $this->store( $result, $subres ); - $_304 = TRUE; break; + $_312 = TRUE; break; } - $result = $res_301; - $this->pos = $pos_301; - $matcher = 'match_'.'Text'; $key = $matcher; $pos = $this->pos; - $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); - if ($subres !== FALSE) { - $this->store( $result, $subres ); - $_304 = TRUE; break; + $result = $res_305; + $this->pos = $pos_305; + $_310 = NULL; + do { + $res_307 = $result; + $pos_307 = $this->pos; + $matcher = 'match_'.'Injection'; $key = $matcher; $pos = $this->pos; + $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); + if ($subres !== FALSE) { + $this->store( $result, $subres ); + $_310 = TRUE; break; + } + $result = $res_307; + $this->pos = $pos_307; + $matcher = 'match_'.'Text'; $key = $matcher; $pos = $this->pos; + $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); + if ($subres !== FALSE) { + $this->store( $result, $subres ); + $_310 = TRUE; break; + } + $result = $res_307; + $this->pos = $pos_307; + $_310 = FALSE; break; } - $result = $res_301; - $this->pos = $pos_301; - $_304 = FALSE; break; + while(0); + if( $_310 === TRUE ) { $_312 = TRUE; break; } + $result = $res_305; + $this->pos = $pos_305; + $_312 = FALSE; break; } while(0); - if( $_304 === TRUE ) { $_306 = TRUE; break; } - $result = $res_299; - $this->pos = $pos_299; - $_306 = FALSE; break; + if( $_312 === TRUE ) { $_314 = TRUE; break; } + $result = $res_303; + $this->pos = $pos_303; + $_314 = FALSE; break; } while(0); - if( $_306 === TRUE ) { $_308 = TRUE; break; } - $result = $res_297; - $this->pos = $pos_297; - $_308 = FALSE; break; + if( $_314 === TRUE ) { $_316 = TRUE; break; } + $result = $res_301; + $this->pos = $pos_301; + $_316 = FALSE; break; } while(0); - if( $_308 === TRUE ) { $_310 = TRUE; break; } - $result = $res_295; - $this->pos = $pos_295; - $_310 = FALSE; break; + if( $_316 === TRUE ) { $_318 = TRUE; break; } + $result = $res_299; + $this->pos = $pos_299; + $_318 = FALSE; break; } while(0); - if( $_310 === TRUE ) { $_312 = TRUE; break; } - $result = $res_293; - $this->pos = $pos_293; - $_312 = FALSE; break; + if( $_318 === TRUE ) { $_320 = TRUE; break; } + $result = $res_297; + $this->pos = $pos_297; + $_320 = FALSE; break; } while(0); - if( $_312 === TRUE ) { $_314 = TRUE; break; } - $result = $res_291; - $this->pos = $pos_291; - $_314 = FALSE; break; + if( $_320 === TRUE ) { $_322 = TRUE; break; } + $result = $res_295; + $this->pos = $pos_295; + $_322 = FALSE; break; } while(0); - if( $_314 === TRUE ) { $_316 = TRUE; break; } - $result = $res_289; - $this->pos = $pos_289; - $_316 = FALSE; break; + if( $_322 === TRUE ) { $_324 = TRUE; break; } + $result = $res_293; + $this->pos = $pos_293; + $_324 = FALSE; break; } while(0); - if( $_316 === TRUE ) { $_318 = TRUE; break; } - $result = $res_287; - $this->pos = $pos_287; - $_318 = FALSE; break; + if( $_324 === TRUE ) { $_326 = TRUE; break; } + $result = $res_291; + $this->pos = $pos_291; + $_326 = FALSE; break; } while(0); - if( $_318 === TRUE ) { $_320 = TRUE; break; } - $result = $res_285; - $this->pos = $pos_285; - $_320 = FALSE; break; + if( $_326 === TRUE ) { $_328 = TRUE; break; } + $result = $res_289; + $this->pos = $pos_289; + $_328 = FALSE; break; } while(0); - if( $_320 === FALSE) { $_322 = FALSE; break; } - $_322 = TRUE; break; + if( $_328 === FALSE) { $_330 = FALSE; break; } + $_330 = TRUE; break; } while(0); - if( $_322 === FALSE) { - $result = $res_323; - $this->pos = $pos_323; - unset( $res_323 ); - unset( $pos_323 ); + if( $_330 === FALSE) { + $result = $res_331; + $this->pos = $pos_331; + unset( $res_331 ); + unset( $pos_331 ); break; } $count += 1; @@ -2024,63 +2060,63 @@ class SSTemplateParser extends Parser { protected $match_UncachedBlock_typestack = array('UncachedBlock'); function match_UncachedBlock ($stack = array()) { $matchrule = "UncachedBlock"; $result = $this->construct($matchrule, $matchrule, null); - $_360 = NULL; + $_368 = NULL; do { if (( $subres = $this->literal( '<%' ) ) !== FALSE) { $result["text"] .= $subres; } - else { $_360 = FALSE; break; } + else { $_368 = FALSE; break; } if (( $subres = $this->whitespace( ) ) !== FALSE) { $result["text"] .= $subres; } if (( $subres = $this->literal( 'uncached' ) ) !== FALSE) { $result["text"] .= $subres; } - else { $_360 = FALSE; break; } + else { $_368 = FALSE; break; } if (( $subres = $this->whitespace( ) ) !== FALSE) { $result["text"] .= $subres; } - $res_328 = $result; - $pos_328 = $this->pos; + $res_336 = $result; + $pos_336 = $this->pos; $matcher = 'match_'.'CacheBlockArguments'; $key = $matcher; $pos = $this->pos; $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); if ($subres !== FALSE) { $this->store( $result, $subres ); } else { - $result = $res_328; - $this->pos = $pos_328; - unset( $res_328 ); - unset( $pos_328 ); + $result = $res_336; + $this->pos = $pos_336; + unset( $res_336 ); + unset( $pos_336 ); } - $res_340 = $result; - $pos_340 = $this->pos; - $_339 = NULL; + $res_348 = $result; + $pos_348 = $this->pos; + $_347 = NULL; do { if (( $subres = $this->whitespace( ) ) !== FALSE) { $result["text"] .= $subres; } $stack[] = $result; $result = $this->construct( $matchrule, "Conditional" ); - $_335 = NULL; + $_343 = NULL; do { - $_333 = NULL; + $_341 = NULL; do { - $res_330 = $result; - $pos_330 = $this->pos; + $res_338 = $result; + $pos_338 = $this->pos; if (( $subres = $this->literal( 'if' ) ) !== FALSE) { $result["text"] .= $subres; - $_333 = TRUE; break; + $_341 = TRUE; break; } - $result = $res_330; - $this->pos = $pos_330; + $result = $res_338; + $this->pos = $pos_338; if (( $subres = $this->literal( 'unless' ) ) !== FALSE) { $result["text"] .= $subres; - $_333 = TRUE; break; + $_341 = TRUE; break; } - $result = $res_330; - $this->pos = $pos_330; - $_333 = FALSE; break; + $result = $res_338; + $this->pos = $pos_338; + $_341 = FALSE; break; } while(0); - if( $_333 === FALSE) { $_335 = FALSE; break; } - $_335 = TRUE; break; + if( $_341 === FALSE) { $_343 = FALSE; break; } + $_343 = TRUE; break; } while(0); - if( $_335 === TRUE ) { + if( $_343 === TRUE ) { $subres = $result; $result = array_pop($stack); $this->store( $result, $subres, 'Conditional' ); } - if( $_335 === FALSE) { + if( $_343 === FALSE) { $result = array_pop($stack); - $_339 = FALSE; break; + $_347 = FALSE; break; } if (( $subres = $this->whitespace( ) ) !== FALSE) { $result["text"] .= $subres; } $matcher = 'match_'.'IfArgument'; $key = $matcher; $pos = $this->pos; @@ -2088,87 +2124,87 @@ class SSTemplateParser extends Parser { if ($subres !== FALSE) { $this->store( $result, $subres, "Condition" ); } - else { $_339 = FALSE; break; } - $_339 = TRUE; break; + else { $_347 = FALSE; break; } + $_347 = TRUE; break; } while(0); - if( $_339 === FALSE) { - $result = $res_340; - $this->pos = $pos_340; - unset( $res_340 ); - unset( $pos_340 ); + if( $_347 === FALSE) { + $result = $res_348; + $this->pos = $pos_348; + unset( $res_348 ); + unset( $pos_348 ); } if (( $subres = $this->whitespace( ) ) !== FALSE) { $result["text"] .= $subres; } if (( $subres = $this->literal( '%>' ) ) !== FALSE) { $result["text"] .= $subres; } - else { $_360 = FALSE; break; } - $res_343 = $result; - $pos_343 = $this->pos; + else { $_368 = FALSE; break; } + $res_351 = $result; + $pos_351 = $this->pos; $matcher = 'match_'.$this->expression($result, $stack, 'TemplateMatcher'); $key = $matcher; $pos = $this->pos; $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); if ($subres !== FALSE) { $this->store( $result, $subres, "Template" ); } else { - $result = $res_343; - $this->pos = $pos_343; - unset( $res_343 ); - unset( $pos_343 ); + $result = $res_351; + $this->pos = $pos_351; + unset( $res_351 ); + unset( $pos_351 ); } if (( $subres = $this->literal( '<%' ) ) !== FALSE) { $result["text"] .= $subres; } - else { $_360 = FALSE; break; } + else { $_368 = FALSE; break; } if (( $subres = $this->whitespace( ) ) !== FALSE) { $result["text"] .= $subres; } if (( $subres = $this->literal( 'end_' ) ) !== FALSE) { $result["text"] .= $subres; } - else { $_360 = FALSE; break; } - $_356 = NULL; + else { $_368 = FALSE; break; } + $_364 = NULL; do { - $_354 = NULL; + $_362 = NULL; do { - $res_347 = $result; - $pos_347 = $this->pos; + $res_355 = $result; + $pos_355 = $this->pos; if (( $subres = $this->literal( 'uncached' ) ) !== FALSE) { $result["text"] .= $subres; - $_354 = TRUE; break; + $_362 = TRUE; break; } - $result = $res_347; - $this->pos = $pos_347; - $_352 = NULL; + $result = $res_355; + $this->pos = $pos_355; + $_360 = NULL; do { - $res_349 = $result; - $pos_349 = $this->pos; + $res_357 = $result; + $pos_357 = $this->pos; if (( $subres = $this->literal( 'cached' ) ) !== FALSE) { $result["text"] .= $subres; - $_352 = TRUE; break; + $_360 = TRUE; break; } - $result = $res_349; - $this->pos = $pos_349; + $result = $res_357; + $this->pos = $pos_357; if (( $subres = $this->literal( 'cacheblock' ) ) !== FALSE) { $result["text"] .= $subres; - $_352 = TRUE; break; + $_360 = TRUE; break; } - $result = $res_349; - $this->pos = $pos_349; - $_352 = FALSE; break; + $result = $res_357; + $this->pos = $pos_357; + $_360 = FALSE; break; } while(0); - if( $_352 === TRUE ) { $_354 = TRUE; break; } - $result = $res_347; - $this->pos = $pos_347; - $_354 = FALSE; break; + if( $_360 === TRUE ) { $_362 = TRUE; break; } + $result = $res_355; + $this->pos = $pos_355; + $_362 = FALSE; break; } while(0); - if( $_354 === FALSE) { $_356 = FALSE; break; } - $_356 = TRUE; break; + if( $_362 === FALSE) { $_364 = FALSE; break; } + $_364 = TRUE; break; } while(0); - if( $_356 === FALSE) { $_360 = FALSE; break; } + if( $_364 === FALSE) { $_368 = FALSE; break; } if (( $subres = $this->whitespace( ) ) !== FALSE) { $result["text"] .= $subres; } if (( $subres = $this->literal( '%>' ) ) !== FALSE) { $result["text"] .= $subres; } - else { $_360 = FALSE; break; } - $_360 = TRUE; break; + else { $_368 = FALSE; break; } + $_368 = TRUE; break; } while(0); - if( $_360 === TRUE ) { return $this->finalise($result); } - if( $_360 === FALSE) { return FALSE; } + if( $_368 === TRUE ) { return $this->finalise($result); } + if( $_368 === FALSE) { return FALSE; } } @@ -2177,228 +2213,246 @@ class SSTemplateParser extends Parser { $res['php'] = $sub['php']; } - /* CacheRestrictedTemplate: (Comment | Translate | If | Require | CacheBlock | UncachedBlock | OldI18NTag | ClosedBlock | OpenBlock | MalformedBlock | Injection | Text)+ */ + /* CacheRestrictedTemplate: (Comment | Translate | If | Require | CacheBlock | UncachedBlock | OldI18NTag | Include | ClosedBlock | OpenBlock | MalformedBlock | Injection | Text)+ */ protected $match_CacheRestrictedTemplate_typestack = array('CacheRestrictedTemplate','Template'); function match_CacheRestrictedTemplate ($stack = array()) { $matchrule = "CacheRestrictedTemplate"; $result = $this->construct($matchrule, $matchrule, null); $count = 0; while (true) { - $res_408 = $result; - $pos_408 = $this->pos; - $_407 = NULL; + $res_420 = $result; + $pos_420 = $this->pos; + $_419 = NULL; do { - $_405 = NULL; + $_417 = NULL; do { - $res_362 = $result; - $pos_362 = $this->pos; + $res_370 = $result; + $pos_370 = $this->pos; $matcher = 'match_'.'Comment'; $key = $matcher; $pos = $this->pos; $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); if ($subres !== FALSE) { $this->store( $result, $subres ); - $_405 = TRUE; break; + $_417 = TRUE; break; } - $result = $res_362; - $this->pos = $pos_362; - $_403 = NULL; + $result = $res_370; + $this->pos = $pos_370; + $_415 = NULL; do { - $res_364 = $result; - $pos_364 = $this->pos; + $res_372 = $result; + $pos_372 = $this->pos; $matcher = 'match_'.'Translate'; $key = $matcher; $pos = $this->pos; $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); if ($subres !== FALSE) { $this->store( $result, $subres ); - $_403 = TRUE; break; + $_415 = TRUE; break; } - $result = $res_364; - $this->pos = $pos_364; - $_401 = NULL; + $result = $res_372; + $this->pos = $pos_372; + $_413 = NULL; do { - $res_366 = $result; - $pos_366 = $this->pos; + $res_374 = $result; + $pos_374 = $this->pos; $matcher = 'match_'.'If'; $key = $matcher; $pos = $this->pos; $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); if ($subres !== FALSE) { $this->store( $result, $subres ); - $_401 = TRUE; break; + $_413 = TRUE; break; } - $result = $res_366; - $this->pos = $pos_366; - $_399 = NULL; + $result = $res_374; + $this->pos = $pos_374; + $_411 = NULL; do { - $res_368 = $result; - $pos_368 = $this->pos; + $res_376 = $result; + $pos_376 = $this->pos; $matcher = 'match_'.'Require'; $key = $matcher; $pos = $this->pos; $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); if ($subres !== FALSE) { $this->store( $result, $subres ); - $_399 = TRUE; break; + $_411 = TRUE; break; } - $result = $res_368; - $this->pos = $pos_368; - $_397 = NULL; + $result = $res_376; + $this->pos = $pos_376; + $_409 = NULL; do { - $res_370 = $result; - $pos_370 = $this->pos; + $res_378 = $result; + $pos_378 = $this->pos; $matcher = 'match_'.'CacheBlock'; $key = $matcher; $pos = $this->pos; $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); if ($subres !== FALSE) { $this->store( $result, $subres ); - $_397 = TRUE; break; + $_409 = TRUE; break; } - $result = $res_370; - $this->pos = $pos_370; - $_395 = NULL; + $result = $res_378; + $this->pos = $pos_378; + $_407 = NULL; do { - $res_372 = $result; - $pos_372 = $this->pos; + $res_380 = $result; + $pos_380 = $this->pos; $matcher = 'match_'.'UncachedBlock'; $key = $matcher; $pos = $this->pos; $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); if ($subres !== FALSE) { $this->store( $result, $subres ); - $_395 = TRUE; break; + $_407 = TRUE; break; } - $result = $res_372; - $this->pos = $pos_372; - $_393 = NULL; + $result = $res_380; + $this->pos = $pos_380; + $_405 = NULL; do { - $res_374 = $result; - $pos_374 = $this->pos; + $res_382 = $result; + $pos_382 = $this->pos; $matcher = 'match_'.'OldI18NTag'; $key = $matcher; $pos = $this->pos; $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); if ($subres !== FALSE) { $this->store( $result, $subres ); - $_393 = TRUE; break; + $_405 = TRUE; break; } - $result = $res_374; - $this->pos = $pos_374; - $_391 = NULL; + $result = $res_382; + $this->pos = $pos_382; + $_403 = NULL; do { - $res_376 = $result; - $pos_376 = $this->pos; - $matcher = 'match_'.'ClosedBlock'; $key = $matcher; $pos = $this->pos; + $res_384 = $result; + $pos_384 = $this->pos; + $matcher = 'match_'.'Include'; $key = $matcher; $pos = $this->pos; $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); if ($subres !== FALSE) { $this->store( $result, $subres ); - $_391 = TRUE; break; + $_403 = TRUE; break; } - $result = $res_376; - $this->pos = $pos_376; - $_389 = NULL; + $result = $res_384; + $this->pos = $pos_384; + $_401 = NULL; do { - $res_378 = $result; - $pos_378 = $this->pos; - $matcher = 'match_'.'OpenBlock'; $key = $matcher; $pos = $this->pos; + $res_386 = $result; + $pos_386 = $this->pos; + $matcher = 'match_'.'ClosedBlock'; $key = $matcher; $pos = $this->pos; $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); if ($subres !== FALSE) { $this->store( $result, $subres ); - $_389 = TRUE; break; + $_401 = TRUE; break; } - $result = $res_378; - $this->pos = $pos_378; - $_387 = NULL; + $result = $res_386; + $this->pos = $pos_386; + $_399 = NULL; do { - $res_380 = $result; - $pos_380 = $this->pos; - $matcher = 'match_'.'MalformedBlock'; $key = $matcher; $pos = $this->pos; + $res_388 = $result; + $pos_388 = $this->pos; + $matcher = 'match_'.'OpenBlock'; $key = $matcher; $pos = $this->pos; $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); if ($subres !== FALSE) { $this->store( $result, $subres ); - $_387 = TRUE; break; + $_399 = TRUE; break; } - $result = $res_380; - $this->pos = $pos_380; - $_385 = NULL; + $result = $res_388; + $this->pos = $pos_388; + $_397 = NULL; do { - $res_382 = $result; - $pos_382 = $this->pos; - $matcher = 'match_'.'Injection'; $key = $matcher; $pos = $this->pos; + $res_390 = $result; + $pos_390 = $this->pos; + $matcher = 'match_'.'MalformedBlock'; $key = $matcher; $pos = $this->pos; $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); if ($subres !== FALSE) { $this->store( $result, $subres ); - $_385 = TRUE; break; + $_397 = TRUE; break; } - $result = $res_382; - $this->pos = $pos_382; - $matcher = 'match_'.'Text'; $key = $matcher; $pos = $this->pos; - $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); - if ($subres !== FALSE) { - $this->store( $result, $subres ); - $_385 = TRUE; break; + $result = $res_390; + $this->pos = $pos_390; + $_395 = NULL; + do { + $res_392 = $result; + $pos_392 = $this->pos; + $matcher = 'match_'.'Injection'; $key = $matcher; $pos = $this->pos; + $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); + if ($subres !== FALSE) { + $this->store( $result, $subres ); + $_395 = TRUE; break; + } + $result = $res_392; + $this->pos = $pos_392; + $matcher = 'match_'.'Text'; $key = $matcher; $pos = $this->pos; + $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); + if ($subres !== FALSE) { + $this->store( $result, $subres ); + $_395 = TRUE; break; + } + $result = $res_392; + $this->pos = $pos_392; + $_395 = FALSE; break; } - $result = $res_382; - $this->pos = $pos_382; - $_385 = FALSE; break; + while(0); + if( $_395 === TRUE ) { $_397 = TRUE; break; } + $result = $res_390; + $this->pos = $pos_390; + $_397 = FALSE; break; } while(0); - if( $_385 === TRUE ) { $_387 = TRUE; break; } - $result = $res_380; - $this->pos = $pos_380; - $_387 = FALSE; break; + if( $_397 === TRUE ) { $_399 = TRUE; break; } + $result = $res_388; + $this->pos = $pos_388; + $_399 = FALSE; break; } while(0); - if( $_387 === TRUE ) { $_389 = TRUE; break; } - $result = $res_378; - $this->pos = $pos_378; - $_389 = FALSE; break; + if( $_399 === TRUE ) { $_401 = TRUE; break; } + $result = $res_386; + $this->pos = $pos_386; + $_401 = FALSE; break; } while(0); - if( $_389 === TRUE ) { $_391 = TRUE; break; } - $result = $res_376; - $this->pos = $pos_376; - $_391 = FALSE; break; + if( $_401 === TRUE ) { $_403 = TRUE; break; } + $result = $res_384; + $this->pos = $pos_384; + $_403 = FALSE; break; } while(0); - if( $_391 === TRUE ) { $_393 = TRUE; break; } - $result = $res_374; - $this->pos = $pos_374; - $_393 = FALSE; break; + if( $_403 === TRUE ) { $_405 = TRUE; break; } + $result = $res_382; + $this->pos = $pos_382; + $_405 = FALSE; break; } while(0); - if( $_393 === TRUE ) { $_395 = TRUE; break; } - $result = $res_372; - $this->pos = $pos_372; - $_395 = FALSE; break; + if( $_405 === TRUE ) { $_407 = TRUE; break; } + $result = $res_380; + $this->pos = $pos_380; + $_407 = FALSE; break; } while(0); - if( $_395 === TRUE ) { $_397 = TRUE; break; } - $result = $res_370; - $this->pos = $pos_370; - $_397 = FALSE; break; + if( $_407 === TRUE ) { $_409 = TRUE; break; } + $result = $res_378; + $this->pos = $pos_378; + $_409 = FALSE; break; } while(0); - if( $_397 === TRUE ) { $_399 = TRUE; break; } - $result = $res_368; - $this->pos = $pos_368; - $_399 = FALSE; break; + if( $_409 === TRUE ) { $_411 = TRUE; break; } + $result = $res_376; + $this->pos = $pos_376; + $_411 = FALSE; break; } while(0); - if( $_399 === TRUE ) { $_401 = TRUE; break; } - $result = $res_366; - $this->pos = $pos_366; - $_401 = FALSE; break; + if( $_411 === TRUE ) { $_413 = TRUE; break; } + $result = $res_374; + $this->pos = $pos_374; + $_413 = FALSE; break; } while(0); - if( $_401 === TRUE ) { $_403 = TRUE; break; } - $result = $res_364; - $this->pos = $pos_364; - $_403 = FALSE; break; + if( $_413 === TRUE ) { $_415 = TRUE; break; } + $result = $res_372; + $this->pos = $pos_372; + $_415 = FALSE; break; } while(0); - if( $_403 === TRUE ) { $_405 = TRUE; break; } - $result = $res_362; - $this->pos = $pos_362; - $_405 = FALSE; break; + if( $_415 === TRUE ) { $_417 = TRUE; break; } + $result = $res_370; + $this->pos = $pos_370; + $_417 = FALSE; break; } while(0); - if( $_405 === FALSE) { $_407 = FALSE; break; } - $_407 = TRUE; break; + if( $_417 === FALSE) { $_419 = FALSE; break; } + $_419 = TRUE; break; } while(0); - if( $_407 === FALSE) { - $result = $res_408; - $this->pos = $pos_408; - unset( $res_408 ); - unset( $pos_408 ); + if( $_419 === FALSE) { + $result = $res_420; + $this->pos = $pos_420; + unset( $res_420 ); + unset( $pos_420 ); break; } $count += 1; @@ -2424,108 +2478,53 @@ class SSTemplateParser extends Parser { protected $match_CacheBlock_typestack = array('CacheBlock'); function match_CacheBlock ($stack = array()) { $matchrule = "CacheBlock"; $result = $this->construct($matchrule, $matchrule, null); - $_463 = NULL; + $_475 = NULL; do { if (( $subres = $this->literal( '<%' ) ) !== FALSE) { $result["text"] .= $subres; } - else { $_463 = FALSE; break; } + else { $_475 = FALSE; break; } if (( $subres = $this->whitespace( ) ) !== FALSE) { $result["text"] .= $subres; } $stack[] = $result; $result = $this->construct( $matchrule, "CacheTag" ); - $_416 = NULL; + $_428 = NULL; do { - $_414 = NULL; + $_426 = NULL; do { - $res_411 = $result; - $pos_411 = $this->pos; + $res_423 = $result; + $pos_423 = $this->pos; if (( $subres = $this->literal( 'cached' ) ) !== FALSE) { $result["text"] .= $subres; - $_414 = TRUE; break; + $_426 = TRUE; break; } - $result = $res_411; - $this->pos = $pos_411; + $result = $res_423; + $this->pos = $pos_423; if (( $subres = $this->literal( 'cacheblock' ) ) !== FALSE) { $result["text"] .= $subres; - $_414 = TRUE; break; + $_426 = TRUE; break; } - $result = $res_411; - $this->pos = $pos_411; - $_414 = FALSE; break; + $result = $res_423; + $this->pos = $pos_423; + $_426 = FALSE; break; } while(0); - if( $_414 === FALSE) { $_416 = FALSE; break; } - $_416 = TRUE; break; + if( $_426 === FALSE) { $_428 = FALSE; break; } + $_428 = TRUE; break; } while(0); - if( $_416 === TRUE ) { + if( $_428 === TRUE ) { $subres = $result; $result = array_pop($stack); $this->store( $result, $subres, 'CacheTag' ); } - if( $_416 === FALSE) { + if( $_428 === FALSE) { $result = array_pop($stack); - $_463 = FALSE; break; + $_475 = FALSE; break; } if (( $subres = $this->whitespace( ) ) !== FALSE) { $result["text"] .= $subres; } - $res_421 = $result; - $pos_421 = $this->pos; - $_420 = NULL; - do { - $matcher = 'match_'.'CacheBlockArguments'; $key = $matcher; $pos = $this->pos; - $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); - if ($subres !== FALSE) { $this->store( $result, $subres ); } - else { $_420 = FALSE; break; } - $_420 = TRUE; break; - } - while(0); - if( $_420 === FALSE) { - $result = $res_421; - $this->pos = $pos_421; - unset( $res_421 ); - unset( $pos_421 ); - } $res_433 = $result; $pos_433 = $this->pos; $_432 = NULL; do { - if (( $subres = $this->whitespace( ) ) !== FALSE) { $result["text"] .= $subres; } - $stack[] = $result; $result = $this->construct( $matchrule, "Conditional" ); - $_428 = NULL; - do { - $_426 = NULL; - do { - $res_423 = $result; - $pos_423 = $this->pos; - if (( $subres = $this->literal( 'if' ) ) !== FALSE) { - $result["text"] .= $subres; - $_426 = TRUE; break; - } - $result = $res_423; - $this->pos = $pos_423; - if (( $subres = $this->literal( 'unless' ) ) !== FALSE) { - $result["text"] .= $subres; - $_426 = TRUE; break; - } - $result = $res_423; - $this->pos = $pos_423; - $_426 = FALSE; break; - } - while(0); - if( $_426 === FALSE) { $_428 = FALSE; break; } - $_428 = TRUE; break; - } - while(0); - if( $_428 === TRUE ) { - $subres = $result; $result = array_pop($stack); - $this->store( $result, $subres, 'Conditional' ); - } - if( $_428 === FALSE) { - $result = array_pop($stack); - $_432 = FALSE; break; - } - if (( $subres = $this->whitespace( ) ) !== FALSE) { $result["text"] .= $subres; } - $matcher = 'match_'.'IfArgument'; $key = $matcher; $pos = $this->pos; + $matcher = 'match_'.'CacheBlockArguments'; $key = $matcher; $pos = $this->pos; $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); - if ($subres !== FALSE) { - $this->store( $result, $subres, "Condition" ); - } + if ($subres !== FALSE) { $this->store( $result, $subres ); } else { $_432 = FALSE; break; } $_432 = TRUE; break; } @@ -2536,122 +2535,177 @@ class SSTemplateParser extends Parser { unset( $res_433 ); unset( $pos_433 ); } + $res_445 = $result; + $pos_445 = $this->pos; + $_444 = NULL; + do { + if (( $subres = $this->whitespace( ) ) !== FALSE) { $result["text"] .= $subres; } + $stack[] = $result; $result = $this->construct( $matchrule, "Conditional" ); + $_440 = NULL; + do { + $_438 = NULL; + do { + $res_435 = $result; + $pos_435 = $this->pos; + if (( $subres = $this->literal( 'if' ) ) !== FALSE) { + $result["text"] .= $subres; + $_438 = TRUE; break; + } + $result = $res_435; + $this->pos = $pos_435; + if (( $subres = $this->literal( 'unless' ) ) !== FALSE) { + $result["text"] .= $subres; + $_438 = TRUE; break; + } + $result = $res_435; + $this->pos = $pos_435; + $_438 = FALSE; break; + } + while(0); + if( $_438 === FALSE) { $_440 = FALSE; break; } + $_440 = TRUE; break; + } + while(0); + if( $_440 === TRUE ) { + $subres = $result; $result = array_pop($stack); + $this->store( $result, $subres, 'Conditional' ); + } + if( $_440 === FALSE) { + $result = array_pop($stack); + $_444 = FALSE; break; + } + if (( $subres = $this->whitespace( ) ) !== FALSE) { $result["text"] .= $subres; } + $matcher = 'match_'.'IfArgument'; $key = $matcher; $pos = $this->pos; + $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); + if ($subres !== FALSE) { + $this->store( $result, $subres, "Condition" ); + } + else { $_444 = FALSE; break; } + $_444 = TRUE; break; + } + while(0); + if( $_444 === FALSE) { + $result = $res_445; + $this->pos = $pos_445; + unset( $res_445 ); + unset( $pos_445 ); + } if (( $subres = $this->whitespace( ) ) !== FALSE) { $result["text"] .= $subres; } if (( $subres = $this->literal( '%>' ) ) !== FALSE) { $result["text"] .= $subres; } - else { $_463 = FALSE; break; } + else { $_475 = FALSE; break; } while (true) { - $res_446 = $result; - $pos_446 = $this->pos; - $_445 = NULL; + $res_458 = $result; + $pos_458 = $this->pos; + $_457 = NULL; do { - $_443 = NULL; + $_455 = NULL; do { - $res_436 = $result; - $pos_436 = $this->pos; + $res_448 = $result; + $pos_448 = $this->pos; $matcher = 'match_'.'CacheBlock'; $key = $matcher; $pos = $this->pos; $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); if ($subres !== FALSE) { $this->store( $result, $subres ); - $_443 = TRUE; break; + $_455 = TRUE; break; } - $result = $res_436; - $this->pos = $pos_436; - $_441 = NULL; + $result = $res_448; + $this->pos = $pos_448; + $_453 = NULL; do { - $res_438 = $result; - $pos_438 = $this->pos; + $res_450 = $result; + $pos_450 = $this->pos; $matcher = 'match_'.'UncachedBlock'; $key = $matcher; $pos = $this->pos; $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); if ($subres !== FALSE) { $this->store( $result, $subres ); - $_441 = TRUE; break; + $_453 = TRUE; break; } - $result = $res_438; - $this->pos = $pos_438; + $result = $res_450; + $this->pos = $pos_450; $matcher = 'match_'.'CacheBlockTemplate'; $key = $matcher; $pos = $this->pos; $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); if ($subres !== FALSE) { $this->store( $result, $subres ); - $_441 = TRUE; break; + $_453 = TRUE; break; } - $result = $res_438; - $this->pos = $pos_438; - $_441 = FALSE; break; + $result = $res_450; + $this->pos = $pos_450; + $_453 = FALSE; break; } while(0); - if( $_441 === TRUE ) { $_443 = TRUE; break; } - $result = $res_436; - $this->pos = $pos_436; - $_443 = FALSE; break; + if( $_453 === TRUE ) { $_455 = TRUE; break; } + $result = $res_448; + $this->pos = $pos_448; + $_455 = FALSE; break; } while(0); - if( $_443 === FALSE) { $_445 = FALSE; break; } - $_445 = TRUE; break; + if( $_455 === FALSE) { $_457 = FALSE; break; } + $_457 = TRUE; break; } while(0); - if( $_445 === FALSE) { - $result = $res_446; - $this->pos = $pos_446; - unset( $res_446 ); - unset( $pos_446 ); + if( $_457 === FALSE) { + $result = $res_458; + $this->pos = $pos_458; + unset( $res_458 ); + unset( $pos_458 ); break; } } if (( $subres = $this->literal( '<%' ) ) !== FALSE) { $result["text"] .= $subres; } - else { $_463 = FALSE; break; } + else { $_475 = FALSE; break; } if (( $subres = $this->whitespace( ) ) !== FALSE) { $result["text"] .= $subres; } if (( $subres = $this->literal( 'end_' ) ) !== FALSE) { $result["text"] .= $subres; } - else { $_463 = FALSE; break; } - $_459 = NULL; + else { $_475 = FALSE; break; } + $_471 = NULL; do { - $_457 = NULL; + $_469 = NULL; do { - $res_450 = $result; - $pos_450 = $this->pos; + $res_462 = $result; + $pos_462 = $this->pos; if (( $subres = $this->literal( 'cached' ) ) !== FALSE) { $result["text"] .= $subres; - $_457 = TRUE; break; + $_469 = TRUE; break; } - $result = $res_450; - $this->pos = $pos_450; - $_455 = NULL; + $result = $res_462; + $this->pos = $pos_462; + $_467 = NULL; do { - $res_452 = $result; - $pos_452 = $this->pos; + $res_464 = $result; + $pos_464 = $this->pos; if (( $subres = $this->literal( 'uncached' ) ) !== FALSE) { $result["text"] .= $subres; - $_455 = TRUE; break; + $_467 = TRUE; break; } - $result = $res_452; - $this->pos = $pos_452; + $result = $res_464; + $this->pos = $pos_464; if (( $subres = $this->literal( 'cacheblock' ) ) !== FALSE) { $result["text"] .= $subres; - $_455 = TRUE; break; + $_467 = TRUE; break; } - $result = $res_452; - $this->pos = $pos_452; - $_455 = FALSE; break; + $result = $res_464; + $this->pos = $pos_464; + $_467 = FALSE; break; } while(0); - if( $_455 === TRUE ) { $_457 = TRUE; break; } - $result = $res_450; - $this->pos = $pos_450; - $_457 = FALSE; break; + if( $_467 === TRUE ) { $_469 = TRUE; break; } + $result = $res_462; + $this->pos = $pos_462; + $_469 = FALSE; break; } while(0); - if( $_457 === FALSE) { $_459 = FALSE; break; } - $_459 = TRUE; break; + if( $_469 === FALSE) { $_471 = FALSE; break; } + $_471 = TRUE; break; } while(0); - if( $_459 === FALSE) { $_463 = FALSE; break; } + if( $_471 === FALSE) { $_475 = FALSE; break; } if (( $subres = $this->whitespace( ) ) !== FALSE) { $result["text"] .= $subres; } if (( $subres = $this->literal( '%>' ) ) !== FALSE) { $result["text"] .= $subres; } - else { $_463 = FALSE; break; } - $_463 = TRUE; break; + else { $_475 = FALSE; break; } + $_475 = TRUE; break; } while(0); - if( $_463 === TRUE ) { return $this->finalise($result); } - if( $_463 === FALSE) { return FALSE; } + if( $_475 === TRUE ) { return $this->finalise($result); } + if( $_475 === FALSE) { return FALSE; } } @@ -2695,93 +2749,93 @@ class SSTemplateParser extends Parser { protected $match_OldTPart_typestack = array('OldTPart'); function match_OldTPart ($stack = array()) { $matchrule = "OldTPart"; $result = $this->construct($matchrule, $matchrule, null); - $_482 = NULL; + $_494 = NULL; do { if (( $subres = $this->literal( '_t' ) ) !== FALSE) { $result["text"] .= $subres; } - else { $_482 = FALSE; break; } + else { $_494 = FALSE; break; } $matcher = 'match_'.'N'; $key = $matcher; $pos = $this->pos; $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); if ($subres !== FALSE) { $this->store( $result, $subres ); } - else { $_482 = FALSE; break; } + else { $_494 = FALSE; break; } if (substr($this->string,$this->pos,1) == '(') { $this->pos += 1; $result["text"] .= '('; } - else { $_482 = FALSE; break; } + else { $_494 = FALSE; break; } $matcher = 'match_'.'N'; $key = $matcher; $pos = $this->pos; $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); if ($subres !== FALSE) { $this->store( $result, $subres ); } - else { $_482 = FALSE; break; } + else { $_494 = FALSE; break; } $matcher = 'match_'.'QuotedString'; $key = $matcher; $pos = $this->pos; $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); if ($subres !== FALSE) { $this->store( $result, $subres ); } - else { $_482 = FALSE; break; } - $res_475 = $result; - $pos_475 = $this->pos; - $_474 = NULL; + else { $_494 = FALSE; break; } + $res_487 = $result; + $pos_487 = $this->pos; + $_486 = NULL; do { $matcher = 'match_'.'N'; $key = $matcher; $pos = $this->pos; $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); if ($subres !== FALSE) { $this->store( $result, $subres ); } - else { $_474 = FALSE; break; } + else { $_486 = FALSE; break; } if (substr($this->string,$this->pos,1) == ',') { $this->pos += 1; $result["text"] .= ','; } - else { $_474 = FALSE; break; } + else { $_486 = FALSE; break; } $matcher = 'match_'.'N'; $key = $matcher; $pos = $this->pos; $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); if ($subres !== FALSE) { $this->store( $result, $subres ); } - else { $_474 = FALSE; break; } + else { $_486 = FALSE; break; } $matcher = 'match_'.'CallArguments'; $key = $matcher; $pos = $this->pos; $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); if ($subres !== FALSE) { $this->store( $result, $subres ); } - else { $_474 = FALSE; break; } - $_474 = TRUE; break; + else { $_486 = FALSE; break; } + $_486 = TRUE; break; } while(0); - if( $_474 === FALSE) { - $result = $res_475; - $this->pos = $pos_475; - unset( $res_475 ); - unset( $pos_475 ); + if( $_486 === FALSE) { + $result = $res_487; + $this->pos = $pos_487; + unset( $res_487 ); + unset( $pos_487 ); } $matcher = 'match_'.'N'; $key = $matcher; $pos = $this->pos; $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); if ($subres !== FALSE) { $this->store( $result, $subres ); } - else { $_482 = FALSE; break; } + else { $_494 = FALSE; break; } if (substr($this->string,$this->pos,1) == ')') { $this->pos += 1; $result["text"] .= ')'; } - else { $_482 = FALSE; break; } + else { $_494 = FALSE; break; } $matcher = 'match_'.'N'; $key = $matcher; $pos = $this->pos; $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); if ($subres !== FALSE) { $this->store( $result, $subres ); } - else { $_482 = FALSE; break; } - $res_481 = $result; - $pos_481 = $this->pos; - $_480 = NULL; + else { $_494 = FALSE; break; } + $res_493 = $result; + $pos_493 = $this->pos; + $_492 = NULL; do { if (substr($this->string,$this->pos,1) == ';') { $this->pos += 1; $result["text"] .= ';'; } - else { $_480 = FALSE; break; } - $_480 = TRUE; break; + else { $_492 = FALSE; break; } + $_492 = TRUE; break; } while(0); - if( $_480 === FALSE) { - $result = $res_481; - $this->pos = $pos_481; - unset( $res_481 ); - unset( $pos_481 ); + if( $_492 === FALSE) { + $result = $res_493; + $this->pos = $pos_493; + unset( $res_493 ); + unset( $pos_493 ); } - $_482 = TRUE; break; + $_494 = TRUE; break; } while(0); - if( $_482 === TRUE ) { return $this->finalise($result); } - if( $_482 === FALSE) { return FALSE; } + if( $_494 === TRUE ) { return $this->finalise($result); } + if( $_494 === FALSE) { return FALSE; } } @@ -2824,23 +2878,23 @@ class SSTemplateParser extends Parser { protected $match_OldTTag_typestack = array('OldTTag'); function match_OldTTag ($stack = array()) { $matchrule = "OldTTag"; $result = $this->construct($matchrule, $matchrule, null); - $_490 = NULL; + $_502 = NULL; do { if (( $subres = $this->literal( '<%' ) ) !== FALSE) { $result["text"] .= $subres; } - else { $_490 = FALSE; break; } + else { $_502 = FALSE; break; } if (( $subres = $this->whitespace( ) ) !== FALSE) { $result["text"] .= $subres; } $matcher = 'match_'.'OldTPart'; $key = $matcher; $pos = $this->pos; $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); if ($subres !== FALSE) { $this->store( $result, $subres ); } - else { $_490 = FALSE; break; } + else { $_502 = FALSE; break; } if (( $subres = $this->whitespace( ) ) !== FALSE) { $result["text"] .= $subres; } if (( $subres = $this->literal( '%>' ) ) !== FALSE) { $result["text"] .= $subres; } - else { $_490 = FALSE; break; } - $_490 = TRUE; break; + else { $_502 = FALSE; break; } + $_502 = TRUE; break; } while(0); - if( $_490 === TRUE ) { return $this->finalise($result); } - if( $_490 === FALSE) { return FALSE; } + if( $_502 === TRUE ) { return $this->finalise($result); } + if( $_502 === FALSE) { return FALSE; } } @@ -2853,49 +2907,49 @@ class SSTemplateParser extends Parser { protected $match_OldSprintfTag_typestack = array('OldSprintfTag'); function match_OldSprintfTag ($stack = array()) { $matchrule = "OldSprintfTag"; $result = $this->construct($matchrule, $matchrule, null); - $_507 = NULL; + $_519 = NULL; do { if (( $subres = $this->literal( '<%' ) ) !== FALSE) { $result["text"] .= $subres; } - else { $_507 = FALSE; break; } + else { $_519 = FALSE; break; } if (( $subres = $this->whitespace( ) ) !== FALSE) { $result["text"] .= $subres; } if (( $subres = $this->literal( 'sprintf' ) ) !== FALSE) { $result["text"] .= $subres; } - else { $_507 = FALSE; break; } + else { $_519 = FALSE; break; } if (( $subres = $this->whitespace( ) ) !== FALSE) { $result["text"] .= $subres; } if (substr($this->string,$this->pos,1) == '(') { $this->pos += 1; $result["text"] .= '('; } - else { $_507 = FALSE; break; } + else { $_519 = FALSE; break; } if (( $subres = $this->whitespace( ) ) !== FALSE) { $result["text"] .= $subres; } $matcher = 'match_'.'OldTPart'; $key = $matcher; $pos = $this->pos; $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); if ($subres !== FALSE) { $this->store( $result, $subres ); } - else { $_507 = FALSE; break; } + else { $_519 = FALSE; break; } if (( $subres = $this->whitespace( ) ) !== FALSE) { $result["text"] .= $subres; } if (substr($this->string,$this->pos,1) == ',') { $this->pos += 1; $result["text"] .= ','; } - else { $_507 = FALSE; break; } + else { $_519 = FALSE; break; } if (( $subres = $this->whitespace( ) ) !== FALSE) { $result["text"] .= $subres; } $matcher = 'match_'.'CallArguments'; $key = $matcher; $pos = $this->pos; $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); if ($subres !== FALSE) { $this->store( $result, $subres ); } - else { $_507 = FALSE; break; } + else { $_519 = FALSE; break; } if (( $subres = $this->whitespace( ) ) !== FALSE) { $result["text"] .= $subres; } if (substr($this->string,$this->pos,1) == ')') { $this->pos += 1; $result["text"] .= ')'; } - else { $_507 = FALSE; break; } + else { $_519 = FALSE; break; } if (( $subres = $this->whitespace( ) ) !== FALSE) { $result["text"] .= $subres; } if (( $subres = $this->literal( '%>' ) ) !== FALSE) { $result["text"] .= $subres; } - else { $_507 = FALSE; break; } - $_507 = TRUE; break; + else { $_519 = FALSE; break; } + $_519 = TRUE; break; } while(0); - if( $_507 === TRUE ) { return $this->finalise($result); } - if( $_507 === FALSE) { return FALSE; } + if( $_519 === TRUE ) { return $this->finalise($result); } + if( $_519 === FALSE) { return FALSE; } } @@ -2916,31 +2970,31 @@ class SSTemplateParser extends Parser { protected $match_OldI18NTag_typestack = array('OldI18NTag'); function match_OldI18NTag ($stack = array()) { $matchrule = "OldI18NTag"; $result = $this->construct($matchrule, $matchrule, null); - $_512 = NULL; + $_524 = NULL; do { - $res_509 = $result; - $pos_509 = $this->pos; + $res_521 = $result; + $pos_521 = $this->pos; $matcher = 'match_'.'OldSprintfTag'; $key = $matcher; $pos = $this->pos; $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); if ($subres !== FALSE) { $this->store( $result, $subres ); - $_512 = TRUE; break; + $_524 = TRUE; break; } - $result = $res_509; - $this->pos = $pos_509; + $result = $res_521; + $this->pos = $pos_521; $matcher = 'match_'.'OldTTag'; $key = $matcher; $pos = $this->pos; $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); if ($subres !== FALSE) { $this->store( $result, $subres ); - $_512 = TRUE; break; + $_524 = TRUE; break; } - $result = $res_509; - $this->pos = $pos_509; - $_512 = FALSE; break; + $result = $res_521; + $this->pos = $pos_521; + $_524 = FALSE; break; } while(0); - if( $_512 === TRUE ) { return $this->finalise($result); } - if( $_512 === FALSE) { return FALSE; } + if( $_524 === TRUE ) { return $this->finalise($result); } + if( $_524 === FALSE) { return FALSE; } } @@ -2953,30 +3007,30 @@ class SSTemplateParser extends Parser { protected $match_NamedArgument_typestack = array('NamedArgument'); function match_NamedArgument ($stack = array()) { $matchrule = "NamedArgument"; $result = $this->construct($matchrule, $matchrule, null); - $_517 = NULL; + $_529 = NULL; do { $matcher = 'match_'.'Word'; $key = $matcher; $pos = $this->pos; $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); if ($subres !== FALSE) { $this->store( $result, $subres, "Name" ); } - else { $_517 = FALSE; break; } + else { $_529 = FALSE; break; } if (substr($this->string,$this->pos,1) == '=') { $this->pos += 1; $result["text"] .= '='; } - else { $_517 = FALSE; break; } + else { $_529 = FALSE; break; } $matcher = 'match_'.'Argument'; $key = $matcher; $pos = $this->pos; $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); if ($subres !== FALSE) { $this->store( $result, $subres, "Value" ); } - else { $_517 = FALSE; break; } - $_517 = TRUE; break; + else { $_529 = FALSE; break; } + $_529 = TRUE; break; } while(0); - if( $_517 === TRUE ) { return $this->finalise($result); } - if( $_517 === FALSE) { return FALSE; } + if( $_529 === TRUE ) { return $this->finalise($result); } + if( $_529 === FALSE) { return FALSE; } } @@ -2993,75 +3047,75 @@ class SSTemplateParser extends Parser { protected $match_Include_typestack = array('Include'); function match_Include ($stack = array()) { $matchrule = "Include"; $result = $this->construct($matchrule, $matchrule, null); - $_536 = NULL; + $_548 = NULL; do { if (( $subres = $this->literal( '<%' ) ) !== FALSE) { $result["text"] .= $subres; } - else { $_536 = FALSE; break; } + else { $_548 = FALSE; break; } if (( $subres = $this->whitespace( ) ) !== FALSE) { $result["text"] .= $subres; } if (( $subres = $this->literal( 'include' ) ) !== FALSE) { $result["text"] .= $subres; } - else { $_536 = FALSE; break; } + else { $_548 = FALSE; break; } if (( $subres = $this->whitespace( ) ) !== FALSE) { $result["text"] .= $subres; } $matcher = 'match_'.'Word'; $key = $matcher; $pos = $this->pos; $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); if ($subres !== FALSE) { $this->store( $result, $subres, "Template" ); } - else { $_536 = FALSE; break; } + else { $_548 = FALSE; break; } if (( $subres = $this->whitespace( ) ) !== FALSE) { $result["text"] .= $subres; } - $res_533 = $result; - $pos_533 = $this->pos; - $_532 = NULL; + $res_545 = $result; + $pos_545 = $this->pos; + $_544 = NULL; do { $matcher = 'match_'.'NamedArgument'; $key = $matcher; $pos = $this->pos; $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); if ($subres !== FALSE) { $this->store( $result, $subres ); } - else { $_532 = FALSE; break; } + else { $_544 = FALSE; break; } while (true) { - $res_531 = $result; - $pos_531 = $this->pos; - $_530 = NULL; + $res_543 = $result; + $pos_543 = $this->pos; + $_542 = NULL; do { if (( $subres = $this->whitespace( ) ) !== FALSE) { $result["text"] .= $subres; } if (substr($this->string,$this->pos,1) == ',') { $this->pos += 1; $result["text"] .= ','; } - else { $_530 = FALSE; break; } + else { $_542 = FALSE; break; } if (( $subres = $this->whitespace( ) ) !== FALSE) { $result["text"] .= $subres; } $matcher = 'match_'.'NamedArgument'; $key = $matcher; $pos = $this->pos; $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); if ($subres !== FALSE) { $this->store( $result, $subres ); } - else { $_530 = FALSE; break; } - $_530 = TRUE; break; + else { $_542 = FALSE; break; } + $_542 = TRUE; break; } while(0); - if( $_530 === FALSE) { - $result = $res_531; - $this->pos = $pos_531; - unset( $res_531 ); - unset( $pos_531 ); + if( $_542 === FALSE) { + $result = $res_543; + $this->pos = $pos_543; + unset( $res_543 ); + unset( $pos_543 ); break; } } - $_532 = TRUE; break; + $_544 = TRUE; break; } while(0); - if( $_532 === FALSE) { - $result = $res_533; - $this->pos = $pos_533; - unset( $res_533 ); - unset( $pos_533 ); + if( $_544 === FALSE) { + $result = $res_545; + $this->pos = $pos_545; + unset( $res_545 ); + unset( $pos_545 ); } if (( $subres = $this->whitespace( ) ) !== FALSE) { $result["text"] .= $subres; } if (( $subres = $this->literal( '%>' ) ) !== FALSE) { $result["text"] .= $subres; } - else { $_536 = FALSE; break; } - $_536 = TRUE; break; + else { $_548 = FALSE; break; } + $_548 = TRUE; break; } while(0); - if( $_536 === TRUE ) { return $this->finalise($result); } - if( $_536 === FALSE) { return FALSE; } + if( $_548 === TRUE ) { return $this->finalise($result); } + if( $_548 === FALSE) { return FALSE; } } @@ -3096,48 +3150,48 @@ class SSTemplateParser extends Parser { protected $match_BlockArguments_typestack = array('BlockArguments'); function match_BlockArguments ($stack = array()) { $matchrule = "BlockArguments"; $result = $this->construct($matchrule, $matchrule, null); - $_545 = NULL; + $_557 = NULL; do { $matcher = 'match_'.'Argument'; $key = $matcher; $pos = $this->pos; $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); if ($subres !== FALSE) { $this->store( $result, $subres, "Argument" ); } - else { $_545 = FALSE; break; } + else { $_557 = FALSE; break; } while (true) { - $res_544 = $result; - $pos_544 = $this->pos; - $_543 = NULL; + $res_556 = $result; + $pos_556 = $this->pos; + $_555 = NULL; do { if (( $subres = $this->whitespace( ) ) !== FALSE) { $result["text"] .= $subres; } if (substr($this->string,$this->pos,1) == ',') { $this->pos += 1; $result["text"] .= ','; } - else { $_543 = FALSE; break; } + else { $_555 = FALSE; break; } if (( $subres = $this->whitespace( ) ) !== FALSE) { $result["text"] .= $subres; } $matcher = 'match_'.'Argument'; $key = $matcher; $pos = $this->pos; $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); if ($subres !== FALSE) { $this->store( $result, $subres, "Argument" ); } - else { $_543 = FALSE; break; } - $_543 = TRUE; break; + else { $_555 = FALSE; break; } + $_555 = TRUE; break; } while(0); - if( $_543 === FALSE) { - $result = $res_544; - $this->pos = $pos_544; - unset( $res_544 ); - unset( $pos_544 ); + if( $_555 === FALSE) { + $result = $res_556; + $this->pos = $pos_556; + unset( $res_556 ); + unset( $pos_556 ); break; } } - $_545 = TRUE; break; + $_557 = TRUE; break; } while(0); - if( $_545 === TRUE ) { return $this->finalise($result); } - if( $_545 === FALSE) { return FALSE; } + if( $_557 === TRUE ) { return $this->finalise($result); } + if( $_557 === FALSE) { return FALSE; } } @@ -3145,153 +3199,153 @@ class SSTemplateParser extends Parser { protected $match_NotBlockTag_typestack = array('NotBlockTag'); function match_NotBlockTag ($stack = array()) { $matchrule = "NotBlockTag"; $result = $this->construct($matchrule, $matchrule, null); - $_583 = NULL; + $_595 = NULL; do { - $res_547 = $result; - $pos_547 = $this->pos; + $res_559 = $result; + $pos_559 = $this->pos; if (( $subres = $this->literal( 'end_' ) ) !== FALSE) { $result["text"] .= $subres; - $_583 = TRUE; break; + $_595 = TRUE; break; } - $result = $res_547; - $this->pos = $pos_547; - $_581 = NULL; + $result = $res_559; + $this->pos = $pos_559; + $_593 = NULL; do { - $_578 = NULL; + $_590 = NULL; do { - $_576 = NULL; + $_588 = NULL; do { - $res_549 = $result; - $pos_549 = $this->pos; + $res_561 = $result; + $pos_561 = $this->pos; if (( $subres = $this->literal( 'if' ) ) !== FALSE) { $result["text"] .= $subres; - $_576 = TRUE; break; + $_588 = TRUE; break; } - $result = $res_549; - $this->pos = $pos_549; - $_574 = NULL; + $result = $res_561; + $this->pos = $pos_561; + $_586 = NULL; do { - $res_551 = $result; - $pos_551 = $this->pos; + $res_563 = $result; + $pos_563 = $this->pos; if (( $subres = $this->literal( 'else_if' ) ) !== FALSE) { $result["text"] .= $subres; - $_574 = TRUE; break; + $_586 = TRUE; break; } - $result = $res_551; - $this->pos = $pos_551; - $_572 = NULL; + $result = $res_563; + $this->pos = $pos_563; + $_584 = NULL; do { - $res_553 = $result; - $pos_553 = $this->pos; + $res_565 = $result; + $pos_565 = $this->pos; if (( $subres = $this->literal( 'else' ) ) !== FALSE) { $result["text"] .= $subres; - $_572 = TRUE; break; + $_584 = TRUE; break; } - $result = $res_553; - $this->pos = $pos_553; - $_570 = NULL; + $result = $res_565; + $this->pos = $pos_565; + $_582 = NULL; do { - $res_555 = $result; - $pos_555 = $this->pos; + $res_567 = $result; + $pos_567 = $this->pos; if (( $subres = $this->literal( 'require' ) ) !== FALSE) { $result["text"] .= $subres; - $_570 = TRUE; break; + $_582 = TRUE; break; } - $result = $res_555; - $this->pos = $pos_555; - $_568 = NULL; + $result = $res_567; + $this->pos = $pos_567; + $_580 = NULL; do { - $res_557 = $result; - $pos_557 = $this->pos; + $res_569 = $result; + $pos_569 = $this->pos; if (( $subres = $this->literal( 'cached' ) ) !== FALSE) { $result["text"] .= $subres; - $_568 = TRUE; break; + $_580 = TRUE; break; } - $result = $res_557; - $this->pos = $pos_557; - $_566 = NULL; + $result = $res_569; + $this->pos = $pos_569; + $_578 = NULL; do { - $res_559 = $result; - $pos_559 = $this->pos; + $res_571 = $result; + $pos_571 = $this->pos; if (( $subres = $this->literal( 'uncached' ) ) !== FALSE) { $result["text"] .= $subres; - $_566 = TRUE; break; + $_578 = TRUE; break; } - $result = $res_559; - $this->pos = $pos_559; - $_564 = NULL; + $result = $res_571; + $this->pos = $pos_571; + $_576 = NULL; do { - $res_561 = $result; - $pos_561 = $this->pos; + $res_573 = $result; + $pos_573 = $this->pos; if (( $subres = $this->literal( 'cacheblock' ) ) !== FALSE) { $result["text"] .= $subres; - $_564 = TRUE; break; + $_576 = TRUE; break; } - $result = $res_561; - $this->pos = $pos_561; + $result = $res_573; + $this->pos = $pos_573; if (( $subres = $this->literal( 'include' ) ) !== FALSE) { $result["text"] .= $subres; - $_564 = TRUE; break; + $_576 = TRUE; break; } - $result = $res_561; - $this->pos = $pos_561; - $_564 = FALSE; break; + $result = $res_573; + $this->pos = $pos_573; + $_576 = FALSE; break; } while(0); - if( $_564 === TRUE ) { $_566 = TRUE; break; } - $result = $res_559; - $this->pos = $pos_559; - $_566 = FALSE; break; + if( $_576 === TRUE ) { $_578 = TRUE; break; } + $result = $res_571; + $this->pos = $pos_571; + $_578 = FALSE; break; } while(0); - if( $_566 === TRUE ) { $_568 = TRUE; break; } - $result = $res_557; - $this->pos = $pos_557; - $_568 = FALSE; break; + if( $_578 === TRUE ) { $_580 = TRUE; break; } + $result = $res_569; + $this->pos = $pos_569; + $_580 = FALSE; break; } while(0); - if( $_568 === TRUE ) { $_570 = TRUE; break; } - $result = $res_555; - $this->pos = $pos_555; - $_570 = FALSE; break; + if( $_580 === TRUE ) { $_582 = TRUE; break; } + $result = $res_567; + $this->pos = $pos_567; + $_582 = FALSE; break; } while(0); - if( $_570 === TRUE ) { $_572 = TRUE; break; } - $result = $res_553; - $this->pos = $pos_553; - $_572 = FALSE; break; + if( $_582 === TRUE ) { $_584 = TRUE; break; } + $result = $res_565; + $this->pos = $pos_565; + $_584 = FALSE; break; } while(0); - if( $_572 === TRUE ) { $_574 = TRUE; break; } - $result = $res_551; - $this->pos = $pos_551; - $_574 = FALSE; break; + if( $_584 === TRUE ) { $_586 = TRUE; break; } + $result = $res_563; + $this->pos = $pos_563; + $_586 = FALSE; break; } while(0); - if( $_574 === TRUE ) { $_576 = TRUE; break; } - $result = $res_549; - $this->pos = $pos_549; - $_576 = FALSE; break; + if( $_586 === TRUE ) { $_588 = TRUE; break; } + $result = $res_561; + $this->pos = $pos_561; + $_588 = FALSE; break; } while(0); - if( $_576 === FALSE) { $_578 = FALSE; break; } - $_578 = TRUE; break; + if( $_588 === FALSE) { $_590 = FALSE; break; } + $_590 = TRUE; break; } while(0); - if( $_578 === FALSE) { $_581 = FALSE; break; } + if( $_590 === FALSE) { $_593 = FALSE; break; } if (( $subres = $this->whitespace( ) ) !== FALSE) { $result["text"] .= $subres; } - else { $_581 = FALSE; break; } - $_581 = TRUE; break; + else { $_593 = FALSE; break; } + $_593 = TRUE; break; } while(0); - if( $_581 === TRUE ) { $_583 = TRUE; break; } - $result = $res_547; - $this->pos = $pos_547; - $_583 = FALSE; break; + if( $_593 === TRUE ) { $_595 = TRUE; break; } + $result = $res_559; + $this->pos = $pos_559; + $_595 = FALSE; break; } while(0); - if( $_583 === TRUE ) { return $this->finalise($result); } - if( $_583 === FALSE) { return FALSE; } + if( $_595 === TRUE ) { return $this->finalise($result); } + if( $_595 === FALSE) { return FALSE; } } @@ -3299,53 +3353,53 @@ class SSTemplateParser extends Parser { protected $match_ClosedBlock_typestack = array('ClosedBlock'); function match_ClosedBlock ($stack = array()) { $matchrule = "ClosedBlock"; $result = $this->construct($matchrule, $matchrule, null); - $_603 = NULL; + $_615 = NULL; do { if (( $subres = $this->literal( '<%' ) ) !== FALSE) { $result["text"] .= $subres; } - else { $_603 = FALSE; break; } + else { $_615 = FALSE; break; } if (( $subres = $this->whitespace( ) ) !== FALSE) { $result["text"] .= $subres; } - $res_587 = $result; - $pos_587 = $this->pos; + $res_599 = $result; + $pos_599 = $this->pos; $matcher = 'match_'.'NotBlockTag'; $key = $matcher; $pos = $this->pos; $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); if ($subres !== FALSE) { $this->store( $result, $subres ); - $result = $res_587; - $this->pos = $pos_587; - $_603 = FALSE; break; + $result = $res_599; + $this->pos = $pos_599; + $_615 = FALSE; break; } else { - $result = $res_587; - $this->pos = $pos_587; + $result = $res_599; + $this->pos = $pos_599; } $matcher = 'match_'.'Word'; $key = $matcher; $pos = $this->pos; $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); if ($subres !== FALSE) { $this->store( $result, $subres, "BlockName" ); } - else { $_603 = FALSE; break; } - $res_593 = $result; - $pos_593 = $this->pos; - $_592 = NULL; + else { $_615 = FALSE; break; } + $res_605 = $result; + $pos_605 = $this->pos; + $_604 = NULL; do { if (( $subres = $this->whitespace( ) ) !== FALSE) { $result["text"] .= $subres; } - else { $_592 = FALSE; break; } + else { $_604 = FALSE; break; } $matcher = 'match_'.'BlockArguments'; $key = $matcher; $pos = $this->pos; $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); if ($subres !== FALSE) { $this->store( $result, $subres, "BlockArguments" ); } - else { $_592 = FALSE; break; } + else { $_604 = FALSE; break; } if (( $subres = $this->whitespace( ) ) !== FALSE) { $result["text"] .= $subres; } - else { $_592 = FALSE; break; } - $_592 = TRUE; break; + else { $_604 = FALSE; break; } + $_604 = TRUE; break; } while(0); - if( $_592 === FALSE) { - $result = $res_593; - $this->pos = $pos_593; - unset( $res_593 ); - unset( $pos_593 ); + if( $_604 === FALSE) { + $result = $res_605; + $this->pos = $pos_605; + unset( $res_605 ); + unset( $pos_605 ); } if (( $subres = $this->whitespace( ) ) !== FALSE) { $result["text"] .= $subres; } $stack[] = $result; $result = $this->construct( $matchrule, "Zap" ); @@ -3356,36 +3410,36 @@ class SSTemplateParser extends Parser { } else { $result = array_pop($stack); - $_603 = FALSE; break; + $_615 = FALSE; break; } - $res_596 = $result; - $pos_596 = $this->pos; + $res_608 = $result; + $pos_608 = $this->pos; $matcher = 'match_'.$this->expression($result, $stack, 'TemplateMatcher'); $key = $matcher; $pos = $this->pos; $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); if ($subres !== FALSE) { $this->store( $result, $subres, "Template" ); } else { - $result = $res_596; - $this->pos = $pos_596; - unset( $res_596 ); - unset( $pos_596 ); + $result = $res_608; + $this->pos = $pos_608; + unset( $res_608 ); + unset( $pos_608 ); } if (( $subres = $this->literal( '<%' ) ) !== FALSE) { $result["text"] .= $subres; } - else { $_603 = FALSE; break; } + else { $_615 = FALSE; break; } if (( $subres = $this->whitespace( ) ) !== FALSE) { $result["text"] .= $subres; } if (( $subres = $this->literal( 'end_' ) ) !== FALSE) { $result["text"] .= $subres; } - else { $_603 = FALSE; break; } + else { $_615 = FALSE; break; } if (( $subres = $this->literal( ''.$this->expression($result, $stack, 'BlockName').'' ) ) !== FALSE) { $result["text"] .= $subres; } - else { $_603 = FALSE; break; } + else { $_615 = FALSE; break; } if (( $subres = $this->whitespace( ) ) !== FALSE) { $result["text"] .= $subres; } if (( $subres = $this->literal( '%>' ) ) !== FALSE) { $result["text"] .= $subres; } - else { $_603 = FALSE; break; } - $_603 = TRUE; break; + else { $_615 = FALSE; break; } + $_615 = TRUE; break; } while(0); - if( $_603 === TRUE ) { return $this->finalise($result); } - if( $_603 === FALSE) { return FALSE; } + if( $_615 === TRUE ) { return $this->finalise($result); } + if( $_615 === FALSE) { return FALSE; } } @@ -3488,62 +3542,62 @@ class SSTemplateParser extends Parser { protected $match_OpenBlock_typestack = array('OpenBlock'); function match_OpenBlock ($stack = array()) { $matchrule = "OpenBlock"; $result = $this->construct($matchrule, $matchrule, null); - $_616 = NULL; + $_628 = NULL; do { if (( $subres = $this->literal( '<%' ) ) !== FALSE) { $result["text"] .= $subres; } - else { $_616 = FALSE; break; } + else { $_628 = FALSE; break; } if (( $subres = $this->whitespace( ) ) !== FALSE) { $result["text"] .= $subres; } - $res_607 = $result; - $pos_607 = $this->pos; + $res_619 = $result; + $pos_619 = $this->pos; $matcher = 'match_'.'NotBlockTag'; $key = $matcher; $pos = $this->pos; $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); if ($subres !== FALSE) { $this->store( $result, $subres ); - $result = $res_607; - $this->pos = $pos_607; - $_616 = FALSE; break; + $result = $res_619; + $this->pos = $pos_619; + $_628 = FALSE; break; } else { - $result = $res_607; - $this->pos = $pos_607; + $result = $res_619; + $this->pos = $pos_619; } $matcher = 'match_'.'Word'; $key = $matcher; $pos = $this->pos; $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); if ($subres !== FALSE) { $this->store( $result, $subres, "BlockName" ); } - else { $_616 = FALSE; break; } - $res_613 = $result; - $pos_613 = $this->pos; - $_612 = NULL; + else { $_628 = FALSE; break; } + $res_625 = $result; + $pos_625 = $this->pos; + $_624 = NULL; do { if (( $subres = $this->whitespace( ) ) !== FALSE) { $result["text"] .= $subres; } - else { $_612 = FALSE; break; } + else { $_624 = FALSE; break; } $matcher = 'match_'.'BlockArguments'; $key = $matcher; $pos = $this->pos; $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); if ($subres !== FALSE) { $this->store( $result, $subres, "BlockArguments" ); } - else { $_612 = FALSE; break; } + else { $_624 = FALSE; break; } if (( $subres = $this->whitespace( ) ) !== FALSE) { $result["text"] .= $subres; } - else { $_612 = FALSE; break; } - $_612 = TRUE; break; + else { $_624 = FALSE; break; } + $_624 = TRUE; break; } while(0); - if( $_612 === FALSE) { - $result = $res_613; - $this->pos = $pos_613; - unset( $res_613 ); - unset( $pos_613 ); + if( $_624 === FALSE) { + $result = $res_625; + $this->pos = $pos_625; + unset( $res_625 ); + unset( $pos_625 ); } if (( $subres = $this->whitespace( ) ) !== FALSE) { $result["text"] .= $subres; } if (( $subres = $this->literal( '%>' ) ) !== FALSE) { $result["text"] .= $subres; } - else { $_616 = FALSE; break; } - $_616 = TRUE; break; + else { $_628 = FALSE; break; } + $_628 = TRUE; break; } while(0); - if( $_616 === TRUE ) { return $this->finalise($result); } - if( $_616 === FALSE) { return FALSE; } + if( $_628 === TRUE ) { return $this->finalise($result); } + if( $_628 === FALSE) { return FALSE; } } @@ -3611,27 +3665,27 @@ class SSTemplateParser extends Parser { protected $match_MismatchedEndBlock_typestack = array('MismatchedEndBlock'); function match_MismatchedEndBlock ($stack = array()) { $matchrule = "MismatchedEndBlock"; $result = $this->construct($matchrule, $matchrule, null); - $_624 = NULL; + $_636 = NULL; do { if (( $subres = $this->literal( '<%' ) ) !== FALSE) { $result["text"] .= $subres; } - else { $_624 = FALSE; break; } + else { $_636 = FALSE; break; } if (( $subres = $this->whitespace( ) ) !== FALSE) { $result["text"] .= $subres; } if (( $subres = $this->literal( 'end_' ) ) !== FALSE) { $result["text"] .= $subres; } - else { $_624 = FALSE; break; } + else { $_636 = FALSE; break; } $matcher = 'match_'.'Word'; $key = $matcher; $pos = $this->pos; $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); if ($subres !== FALSE) { $this->store( $result, $subres, "Word" ); } - else { $_624 = FALSE; break; } + else { $_636 = FALSE; break; } if (( $subres = $this->whitespace( ) ) !== FALSE) { $result["text"] .= $subres; } if (( $subres = $this->literal( '%>' ) ) !== FALSE) { $result["text"] .= $subres; } - else { $_624 = FALSE; break; } - $_624 = TRUE; break; + else { $_636 = FALSE; break; } + $_636 = TRUE; break; } while(0); - if( $_624 === TRUE ) { return $this->finalise($result); } - if( $_624 === FALSE) { return FALSE; } + if( $_636 === TRUE ) { return $this->finalise($result); } + if( $_636 === FALSE) { return FALSE; } } @@ -3645,122 +3699,58 @@ class SSTemplateParser extends Parser { protected $match_MalformedOpenTag_typestack = array('MalformedOpenTag'); function match_MalformedOpenTag ($stack = array()) { $matchrule = "MalformedOpenTag"; $result = $this->construct($matchrule, $matchrule, null); - $_639 = NULL; + $_651 = NULL; do { if (( $subres = $this->literal( '<%' ) ) !== FALSE) { $result["text"] .= $subres; } - else { $_639 = FALSE; break; } + else { $_651 = FALSE; break; } if (( $subres = $this->whitespace( ) ) !== FALSE) { $result["text"] .= $subres; } - $res_628 = $result; - $pos_628 = $this->pos; + $res_640 = $result; + $pos_640 = $this->pos; $matcher = 'match_'.'NotBlockTag'; $key = $matcher; $pos = $this->pos; $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); if ($subres !== FALSE) { $this->store( $result, $subres ); - $result = $res_628; - $this->pos = $pos_628; - $_639 = FALSE; break; + $result = $res_640; + $this->pos = $pos_640; + $_651 = FALSE; break; } else { - $result = $res_628; - $this->pos = $pos_628; + $result = $res_640; + $this->pos = $pos_640; } $matcher = 'match_'.'Word'; $key = $matcher; $pos = $this->pos; $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); if ($subres !== FALSE) { $this->store( $result, $subres, "Tag" ); } - else { $_639 = FALSE; break; } - $res_638 = $result; - $pos_638 = $this->pos; - $_637 = NULL; + else { $_651 = FALSE; break; } + $res_650 = $result; + $pos_650 = $this->pos; + $_649 = NULL; do { - $res_634 = $result; - $pos_634 = $this->pos; - $_633 = NULL; + $res_646 = $result; + $pos_646 = $this->pos; + $_645 = NULL; do { if (( $subres = $this->whitespace( ) ) !== FALSE) { $result["text"] .= $subres; } - else { $_633 = FALSE; break; } + else { $_645 = FALSE; break; } $matcher = 'match_'.'BlockArguments'; $key = $matcher; $pos = $this->pos; $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); if ($subres !== FALSE) { $this->store( $result, $subres, "BlockArguments" ); } - else { $_633 = FALSE; break; } + else { $_645 = FALSE; break; } if (( $subres = $this->whitespace( ) ) !== FALSE) { $result["text"] .= $subres; } - else { $_633 = FALSE; break; } - $_633 = TRUE; break; + else { $_645 = FALSE; break; } + $_645 = TRUE; break; } while(0); - if( $_633 === FALSE) { - $result = $res_634; - $this->pos = $pos_634; - unset( $res_634 ); - unset( $pos_634 ); + if( $_645 === FALSE) { + $result = $res_646; + $this->pos = $pos_646; + unset( $res_646 ); + unset( $pos_646 ); } - if (( $subres = $this->whitespace( ) ) !== FALSE) { $result["text"] .= $subres; } - if (( $subres = $this->literal( '%>' ) ) !== FALSE) { $result["text"] .= $subres; } - else { $_637 = FALSE; break; } - $_637 = TRUE; break; - } - while(0); - if( $_637 === TRUE ) { - $result = $res_638; - $this->pos = $pos_638; - $_639 = FALSE; break; - } - if( $_637 === FALSE) { - $result = $res_638; - $this->pos = $pos_638; - } - $_639 = TRUE; break; - } - while(0); - if( $_639 === TRUE ) { return $this->finalise($result); } - if( $_639 === FALSE) { return FALSE; } - } - - - - function MalformedOpenTag__finalise(&$res) { - $tag = $res['Tag']['text']; - throw new SSTemplateParseException("Malformed opening block tag $tag. Perhaps you have tried to use operators?", $this); - } - - /* MalformedCloseTag: '<%' < Tag:('end_' :Word ) !( > '%>' ) */ - protected $match_MalformedCloseTag_typestack = array('MalformedCloseTag'); - function match_MalformedCloseTag ($stack = array()) { - $matchrule = "MalformedCloseTag"; $result = $this->construct($matchrule, $matchrule, null); - $_651 = NULL; - do { - if (( $subres = $this->literal( '<%' ) ) !== FALSE) { $result["text"] .= $subres; } - else { $_651 = FALSE; break; } - if (( $subres = $this->whitespace( ) ) !== FALSE) { $result["text"] .= $subres; } - $stack[] = $result; $result = $this->construct( $matchrule, "Tag" ); - $_645 = NULL; - do { - if (( $subres = $this->literal( 'end_' ) ) !== FALSE) { $result["text"] .= $subres; } - else { $_645 = FALSE; break; } - $matcher = 'match_'.'Word'; $key = $matcher; $pos = $this->pos; - $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); - if ($subres !== FALSE) { - $this->store( $result, $subres, "Word" ); - } - else { $_645 = FALSE; break; } - $_645 = TRUE; break; - } - while(0); - if( $_645 === TRUE ) { - $subres = $result; $result = array_pop($stack); - $this->store( $result, $subres, 'Tag' ); - } - if( $_645 === FALSE) { - $result = array_pop($stack); - $_651 = FALSE; break; - } - $res_650 = $result; - $pos_650 = $this->pos; - $_649 = NULL; - do { if (( $subres = $this->whitespace( ) ) !== FALSE) { $result["text"] .= $subres; } if (( $subres = $this->literal( '%>' ) ) !== FALSE) { $result["text"] .= $subres; } else { $_649 = FALSE; break; } @@ -3785,6 +3775,70 @@ class SSTemplateParser extends Parser { + function MalformedOpenTag__finalise(&$res) { + $tag = $res['Tag']['text']; + throw new SSTemplateParseException("Malformed opening block tag $tag. Perhaps you have tried to use operators?", $this); + } + + /* MalformedCloseTag: '<%' < Tag:('end_' :Word ) !( > '%>' ) */ + protected $match_MalformedCloseTag_typestack = array('MalformedCloseTag'); + function match_MalformedCloseTag ($stack = array()) { + $matchrule = "MalformedCloseTag"; $result = $this->construct($matchrule, $matchrule, null); + $_663 = NULL; + do { + if (( $subres = $this->literal( '<%' ) ) !== FALSE) { $result["text"] .= $subres; } + else { $_663 = FALSE; break; } + if (( $subres = $this->whitespace( ) ) !== FALSE) { $result["text"] .= $subres; } + $stack[] = $result; $result = $this->construct( $matchrule, "Tag" ); + $_657 = NULL; + do { + if (( $subres = $this->literal( 'end_' ) ) !== FALSE) { $result["text"] .= $subres; } + else { $_657 = FALSE; break; } + $matcher = 'match_'.'Word'; $key = $matcher; $pos = $this->pos; + $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); + if ($subres !== FALSE) { + $this->store( $result, $subres, "Word" ); + } + else { $_657 = FALSE; break; } + $_657 = TRUE; break; + } + while(0); + if( $_657 === TRUE ) { + $subres = $result; $result = array_pop($stack); + $this->store( $result, $subres, 'Tag' ); + } + if( $_657 === FALSE) { + $result = array_pop($stack); + $_663 = FALSE; break; + } + $res_662 = $result; + $pos_662 = $this->pos; + $_661 = NULL; + do { + if (( $subres = $this->whitespace( ) ) !== FALSE) { $result["text"] .= $subres; } + if (( $subres = $this->literal( '%>' ) ) !== FALSE) { $result["text"] .= $subres; } + else { $_661 = FALSE; break; } + $_661 = TRUE; break; + } + while(0); + if( $_661 === TRUE ) { + $result = $res_662; + $this->pos = $pos_662; + $_663 = FALSE; break; + } + if( $_661 === FALSE) { + $result = $res_662; + $this->pos = $pos_662; + } + $_663 = TRUE; break; + } + while(0); + if( $_663 === TRUE ) { return $this->finalise($result); } + if( $_663 === FALSE) { return FALSE; } + } + + + function MalformedCloseTag__finalise(&$res) { $tag = $res['Tag']['text']; throw new SSTemplateParseException("Malformed closing block tag $tag. Perhaps you have tried to pass an argument to one?", $this); @@ -3794,31 +3848,31 @@ class SSTemplateParser extends Parser { protected $match_MalformedBlock_typestack = array('MalformedBlock'); function match_MalformedBlock ($stack = array()) { $matchrule = "MalformedBlock"; $result = $this->construct($matchrule, $matchrule, null); - $_656 = NULL; + $_668 = NULL; do { - $res_653 = $result; - $pos_653 = $this->pos; + $res_665 = $result; + $pos_665 = $this->pos; $matcher = 'match_'.'MalformedOpenTag'; $key = $matcher; $pos = $this->pos; $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); if ($subres !== FALSE) { $this->store( $result, $subres ); - $_656 = TRUE; break; + $_668 = TRUE; break; } - $result = $res_653; - $this->pos = $pos_653; + $result = $res_665; + $this->pos = $pos_665; $matcher = 'match_'.'MalformedCloseTag'; $key = $matcher; $pos = $this->pos; $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); if ($subres !== FALSE) { $this->store( $result, $subres ); - $_656 = TRUE; break; + $_668 = TRUE; break; } - $result = $res_653; - $this->pos = $pos_653; - $_656 = FALSE; break; + $result = $res_665; + $this->pos = $pos_665; + $_668 = FALSE; break; } while(0); - if( $_656 === TRUE ) { return $this->finalise($result); } - if( $_656 === FALSE) { return FALSE; } + if( $_668 === TRUE ) { return $this->finalise($result); } + if( $_668 === FALSE) { return FALSE; } } @@ -3828,51 +3882,51 @@ class SSTemplateParser extends Parser { protected $match_Comment_typestack = array('Comment'); function match_Comment ($stack = array()) { $matchrule = "Comment"; $result = $this->construct($matchrule, $matchrule, null); - $_664 = NULL; + $_676 = NULL; do { if (( $subres = $this->literal( '<%--' ) ) !== FALSE) { $result["text"] .= $subres; } - else { $_664 = FALSE; break; } + else { $_676 = FALSE; break; } $count = 0; while (true) { - $res_662 = $result; - $pos_662 = $this->pos; - $_661 = NULL; + $res_674 = $result; + $pos_674 = $this->pos; + $_673 = NULL; do { - $res_659 = $result; - $pos_659 = $this->pos; + $res_671 = $result; + $pos_671 = $this->pos; if (( $subres = $this->literal( '--%>' ) ) !== FALSE) { $result["text"] .= $subres; - $result = $res_659; - $this->pos = $pos_659; - $_661 = FALSE; break; + $result = $res_671; + $this->pos = $pos_671; + $_673 = FALSE; break; } else { - $result = $res_659; - $this->pos = $pos_659; + $result = $res_671; + $this->pos = $pos_671; } if (( $subres = $this->rx( '/./' ) ) !== FALSE) { $result["text"] .= $subres; } - else { $_661 = FALSE; break; } - $_661 = TRUE; break; + else { $_673 = FALSE; break; } + $_673 = TRUE; break; } while(0); - if( $_661 === FALSE) { - $result = $res_662; - $this->pos = $pos_662; - unset( $res_662 ); - unset( $pos_662 ); + if( $_673 === FALSE) { + $result = $res_674; + $this->pos = $pos_674; + unset( $res_674 ); + unset( $pos_674 ); break; } $count += 1; } if ($count > 0) { } - else { $_664 = FALSE; break; } + else { $_676 = FALSE; break; } if (( $subres = $this->literal( '--%>' ) ) !== FALSE) { $result["text"] .= $subres; } - else { $_664 = FALSE; break; } - $_664 = TRUE; break; + else { $_676 = FALSE; break; } + $_676 = TRUE; break; } while(0); - if( $_664 === TRUE ) { return $this->finalise($result); } - if( $_664 === FALSE) { return FALSE; } + if( $_676 === TRUE ) { return $this->finalise($result); } + if( $_676 === FALSE) { return FALSE; } } @@ -3881,246 +3935,264 @@ class SSTemplateParser extends Parser { $res['php'] = ''; } - /* TopTemplate: (Comment | Translate | If | Require | CacheBlock | UncachedBlock | OldI18NTag | ClosedBlock | OpenBlock | MalformedBlock | MismatchedEndBlock | Injection | Text)+ */ + /* TopTemplate: (Comment | Translate | If | Require | CacheBlock | UncachedBlock | OldI18NTag | Include | ClosedBlock | OpenBlock | MalformedBlock | MismatchedEndBlock | Injection | Text)+ */ protected $match_TopTemplate_typestack = array('TopTemplate','Template'); function match_TopTemplate ($stack = array()) { $matchrule = "TopTemplate"; $result = $this->construct($matchrule, $matchrule, array('TemplateMatcher' => 'Template')); $count = 0; while (true) { - $res_716 = $result; - $pos_716 = $this->pos; - $_715 = NULL; + $res_732 = $result; + $pos_732 = $this->pos; + $_731 = NULL; do { - $_713 = NULL; + $_729 = NULL; do { - $res_666 = $result; - $pos_666 = $this->pos; + $res_678 = $result; + $pos_678 = $this->pos; $matcher = 'match_'.'Comment'; $key = $matcher; $pos = $this->pos; $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); if ($subres !== FALSE) { $this->store( $result, $subres ); - $_713 = TRUE; break; + $_729 = TRUE; break; } - $result = $res_666; - $this->pos = $pos_666; - $_711 = NULL; + $result = $res_678; + $this->pos = $pos_678; + $_727 = NULL; do { - $res_668 = $result; - $pos_668 = $this->pos; + $res_680 = $result; + $pos_680 = $this->pos; $matcher = 'match_'.'Translate'; $key = $matcher; $pos = $this->pos; $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); if ($subres !== FALSE) { $this->store( $result, $subres ); - $_711 = TRUE; break; + $_727 = TRUE; break; } - $result = $res_668; - $this->pos = $pos_668; - $_709 = NULL; + $result = $res_680; + $this->pos = $pos_680; + $_725 = NULL; do { - $res_670 = $result; - $pos_670 = $this->pos; + $res_682 = $result; + $pos_682 = $this->pos; $matcher = 'match_'.'If'; $key = $matcher; $pos = $this->pos; $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); if ($subres !== FALSE) { $this->store( $result, $subres ); - $_709 = TRUE; break; + $_725 = TRUE; break; } - $result = $res_670; - $this->pos = $pos_670; - $_707 = NULL; + $result = $res_682; + $this->pos = $pos_682; + $_723 = NULL; do { - $res_672 = $result; - $pos_672 = $this->pos; + $res_684 = $result; + $pos_684 = $this->pos; $matcher = 'match_'.'Require'; $key = $matcher; $pos = $this->pos; $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); if ($subres !== FALSE) { $this->store( $result, $subres ); - $_707 = TRUE; break; + $_723 = TRUE; break; } - $result = $res_672; - $this->pos = $pos_672; - $_705 = NULL; + $result = $res_684; + $this->pos = $pos_684; + $_721 = NULL; do { - $res_674 = $result; - $pos_674 = $this->pos; + $res_686 = $result; + $pos_686 = $this->pos; $matcher = 'match_'.'CacheBlock'; $key = $matcher; $pos = $this->pos; $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); if ($subres !== FALSE) { $this->store( $result, $subres ); - $_705 = TRUE; break; + $_721 = TRUE; break; } - $result = $res_674; - $this->pos = $pos_674; - $_703 = NULL; + $result = $res_686; + $this->pos = $pos_686; + $_719 = NULL; do { - $res_676 = $result; - $pos_676 = $this->pos; + $res_688 = $result; + $pos_688 = $this->pos; $matcher = 'match_'.'UncachedBlock'; $key = $matcher; $pos = $this->pos; $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); if ($subres !== FALSE) { $this->store( $result, $subres ); - $_703 = TRUE; break; + $_719 = TRUE; break; } - $result = $res_676; - $this->pos = $pos_676; - $_701 = NULL; + $result = $res_688; + $this->pos = $pos_688; + $_717 = NULL; do { - $res_678 = $result; - $pos_678 = $this->pos; + $res_690 = $result; + $pos_690 = $this->pos; $matcher = 'match_'.'OldI18NTag'; $key = $matcher; $pos = $this->pos; $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); if ($subres !== FALSE) { $this->store( $result, $subres ); - $_701 = TRUE; break; + $_717 = TRUE; break; } - $result = $res_678; - $this->pos = $pos_678; - $_699 = NULL; + $result = $res_690; + $this->pos = $pos_690; + $_715 = NULL; do { - $res_680 = $result; - $pos_680 = $this->pos; - $matcher = 'match_'.'ClosedBlock'; $key = $matcher; $pos = $this->pos; + $res_692 = $result; + $pos_692 = $this->pos; + $matcher = 'match_'.'Include'; $key = $matcher; $pos = $this->pos; $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); if ($subres !== FALSE) { $this->store( $result, $subres ); - $_699 = TRUE; break; + $_715 = TRUE; break; } - $result = $res_680; - $this->pos = $pos_680; - $_697 = NULL; + $result = $res_692; + $this->pos = $pos_692; + $_713 = NULL; do { - $res_682 = $result; - $pos_682 = $this->pos; - $matcher = 'match_'.'OpenBlock'; $key = $matcher; $pos = $this->pos; + $res_694 = $result; + $pos_694 = $this->pos; + $matcher = 'match_'.'ClosedBlock'; $key = $matcher; $pos = $this->pos; $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); if ($subres !== FALSE) { $this->store( $result, $subres ); - $_697 = TRUE; break; + $_713 = TRUE; break; } - $result = $res_682; - $this->pos = $pos_682; - $_695 = NULL; + $result = $res_694; + $this->pos = $pos_694; + $_711 = NULL; do { - $res_684 = $result; - $pos_684 = $this->pos; - $matcher = 'match_'.'MalformedBlock'; $key = $matcher; $pos = $this->pos; + $res_696 = $result; + $pos_696 = $this->pos; + $matcher = 'match_'.'OpenBlock'; $key = $matcher; $pos = $this->pos; $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); if ($subres !== FALSE) { $this->store( $result, $subres ); - $_695 = TRUE; break; + $_711 = TRUE; break; } - $result = $res_684; - $this->pos = $pos_684; - $_693 = NULL; + $result = $res_696; + $this->pos = $pos_696; + $_709 = NULL; do { - $res_686 = $result; - $pos_686 = $this->pos; - $matcher = 'match_'.'MismatchedEndBlock'; $key = $matcher; $pos = $this->pos; + $res_698 = $result; + $pos_698 = $this->pos; + $matcher = 'match_'.'MalformedBlock'; $key = $matcher; $pos = $this->pos; $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); if ($subres !== FALSE) { $this->store( $result, $subres ); - $_693 = TRUE; break; + $_709 = TRUE; break; } - $result = $res_686; - $this->pos = $pos_686; - $_691 = NULL; + $result = $res_698; + $this->pos = $pos_698; + $_707 = NULL; do { - $res_688 = $result; - $pos_688 = $this->pos; - $matcher = 'match_'.'Injection'; $key = $matcher; $pos = $this->pos; + $res_700 = $result; + $pos_700 = $this->pos; + $matcher = 'match_'.'MismatchedEndBlock'; $key = $matcher; $pos = $this->pos; $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); if ($subres !== FALSE) { $this->store( $result, $subres ); - $_691 = TRUE; break; + $_707 = TRUE; break; } - $result = $res_688; - $this->pos = $pos_688; - $matcher = 'match_'.'Text'; $key = $matcher; $pos = $this->pos; - $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); - if ($subres !== FALSE) { - $this->store( $result, $subres ); - $_691 = TRUE; break; + $result = $res_700; + $this->pos = $pos_700; + $_705 = NULL; + do { + $res_702 = $result; + $pos_702 = $this->pos; + $matcher = 'match_'.'Injection'; $key = $matcher; $pos = $this->pos; + $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); + if ($subres !== FALSE) { + $this->store( $result, $subres ); + $_705 = TRUE; break; + } + $result = $res_702; + $this->pos = $pos_702; + $matcher = 'match_'.'Text'; $key = $matcher; $pos = $this->pos; + $subres = ( $this->packhas( $key, $pos ) ? $this->packread( $key, $pos ) : $this->packwrite( $key, $pos, $this->$matcher(array_merge($stack, array($result))) ) ); + if ($subres !== FALSE) { + $this->store( $result, $subres ); + $_705 = TRUE; break; + } + $result = $res_702; + $this->pos = $pos_702; + $_705 = FALSE; break; } - $result = $res_688; - $this->pos = $pos_688; - $_691 = FALSE; break; + while(0); + if( $_705 === TRUE ) { $_707 = TRUE; break; } + $result = $res_700; + $this->pos = $pos_700; + $_707 = FALSE; break; } while(0); - if( $_691 === TRUE ) { $_693 = TRUE; break; } - $result = $res_686; - $this->pos = $pos_686; - $_693 = FALSE; break; + if( $_707 === TRUE ) { $_709 = TRUE; break; } + $result = $res_698; + $this->pos = $pos_698; + $_709 = FALSE; break; } while(0); - if( $_693 === TRUE ) { $_695 = TRUE; break; } - $result = $res_684; - $this->pos = $pos_684; - $_695 = FALSE; break; + if( $_709 === TRUE ) { $_711 = TRUE; break; } + $result = $res_696; + $this->pos = $pos_696; + $_711 = FALSE; break; } while(0); - if( $_695 === TRUE ) { $_697 = TRUE; break; } - $result = $res_682; - $this->pos = $pos_682; - $_697 = FALSE; break; + if( $_711 === TRUE ) { $_713 = TRUE; break; } + $result = $res_694; + $this->pos = $pos_694; + $_713 = FALSE; break; } while(0); - if( $_697 === TRUE ) { $_699 = TRUE; break; } - $result = $res_680; - $this->pos = $pos_680; - $_699 = FALSE; break; + if( $_713 === TRUE ) { $_715 = TRUE; break; } + $result = $res_692; + $this->pos = $pos_692; + $_715 = FALSE; break; } while(0); - if( $_699 === TRUE ) { $_701 = TRUE; break; } - $result = $res_678; - $this->pos = $pos_678; - $_701 = FALSE; break; + if( $_715 === TRUE ) { $_717 = TRUE; break; } + $result = $res_690; + $this->pos = $pos_690; + $_717 = FALSE; break; } while(0); - if( $_701 === TRUE ) { $_703 = TRUE; break; } - $result = $res_676; - $this->pos = $pos_676; - $_703 = FALSE; break; + if( $_717 === TRUE ) { $_719 = TRUE; break; } + $result = $res_688; + $this->pos = $pos_688; + $_719 = FALSE; break; } while(0); - if( $_703 === TRUE ) { $_705 = TRUE; break; } - $result = $res_674; - $this->pos = $pos_674; - $_705 = FALSE; break; + if( $_719 === TRUE ) { $_721 = TRUE; break; } + $result = $res_686; + $this->pos = $pos_686; + $_721 = FALSE; break; } while(0); - if( $_705 === TRUE ) { $_707 = TRUE; break; } - $result = $res_672; - $this->pos = $pos_672; - $_707 = FALSE; break; + if( $_721 === TRUE ) { $_723 = TRUE; break; } + $result = $res_684; + $this->pos = $pos_684; + $_723 = FALSE; break; } while(0); - if( $_707 === TRUE ) { $_709 = TRUE; break; } - $result = $res_670; - $this->pos = $pos_670; - $_709 = FALSE; break; + if( $_723 === TRUE ) { $_725 = TRUE; break; } + $result = $res_682; + $this->pos = $pos_682; + $_725 = FALSE; break; } while(0); - if( $_709 === TRUE ) { $_711 = TRUE; break; } - $result = $res_668; - $this->pos = $pos_668; - $_711 = FALSE; break; + if( $_725 === TRUE ) { $_727 = TRUE; break; } + $result = $res_680; + $this->pos = $pos_680; + $_727 = FALSE; break; } while(0); - if( $_711 === TRUE ) { $_713 = TRUE; break; } - $result = $res_666; - $this->pos = $pos_666; - $_713 = FALSE; break; + if( $_727 === TRUE ) { $_729 = TRUE; break; } + $result = $res_678; + $this->pos = $pos_678; + $_729 = FALSE; break; } while(0); - if( $_713 === FALSE) { $_715 = FALSE; break; } - $_715 = TRUE; break; + if( $_729 === FALSE) { $_731 = FALSE; break; } + $_731 = TRUE; break; } while(0); - if( $_715 === FALSE) { - $result = $res_716; - $this->pos = $pos_716; - unset( $res_716 ); - unset( $pos_716 ); + if( $_731 === FALSE) { + $result = $res_732; + $this->pos = $pos_732; + unset( $res_732 ); + unset( $pos_732 ); break; } $count += 1; @@ -4152,189 +4224,189 @@ class SSTemplateParser extends Parser { $matchrule = "Text"; $result = $this->construct($matchrule, $matchrule, null); $count = 0; while (true) { - $res_755 = $result; - $pos_755 = $this->pos; - $_754 = NULL; + $res_771 = $result; + $pos_771 = $this->pos; + $_770 = NULL; do { - $_752 = NULL; + $_768 = NULL; do { - $res_717 = $result; - $pos_717 = $this->pos; + $res_733 = $result; + $pos_733 = $this->pos; if (( $subres = $this->rx( '/ [^<${\\\\]+ /' ) ) !== FALSE) { $result["text"] .= $subres; - $_752 = TRUE; break; + $_768 = TRUE; break; } - $result = $res_717; - $this->pos = $pos_717; - $_750 = NULL; + $result = $res_733; + $this->pos = $pos_733; + $_766 = NULL; do { - $res_719 = $result; - $pos_719 = $this->pos; + $res_735 = $result; + $pos_735 = $this->pos; if (( $subres = $this->rx( '/ (\\\\.) /' ) ) !== FALSE) { $result["text"] .= $subres; - $_750 = TRUE; break; + $_766 = TRUE; break; } - $result = $res_719; - $this->pos = $pos_719; - $_748 = NULL; + $result = $res_735; + $this->pos = $pos_735; + $_764 = NULL; do { - $res_721 = $result; - $pos_721 = $this->pos; - $_724 = NULL; + $res_737 = $result; + $pos_737 = $this->pos; + $_740 = NULL; do { if (substr($this->string,$this->pos,1) == '<') { $this->pos += 1; $result["text"] .= '<'; } - else { $_724 = FALSE; break; } - $res_723 = $result; - $pos_723 = $this->pos; + else { $_740 = FALSE; break; } + $res_739 = $result; + $pos_739 = $this->pos; if (substr($this->string,$this->pos,1) == '%') { $this->pos += 1; $result["text"] .= '%'; - $result = $res_723; - $this->pos = $pos_723; - $_724 = FALSE; break; + $result = $res_739; + $this->pos = $pos_739; + $_740 = FALSE; break; } else { - $result = $res_723; - $this->pos = $pos_723; + $result = $res_739; + $this->pos = $pos_739; } - $_724 = TRUE; break; + $_740 = TRUE; break; } while(0); - if( $_724 === TRUE ) { $_748 = TRUE; break; } - $result = $res_721; - $this->pos = $pos_721; - $_746 = NULL; + if( $_740 === TRUE ) { $_764 = TRUE; break; } + $result = $res_737; + $this->pos = $pos_737; + $_762 = NULL; do { - $res_726 = $result; - $pos_726 = $this->pos; - $_731 = NULL; + $res_742 = $result; + $pos_742 = $this->pos; + $_747 = NULL; do { if (substr($this->string,$this->pos,1) == '$') { $this->pos += 1; $result["text"] .= '$'; } - else { $_731 = FALSE; break; } - $res_730 = $result; - $pos_730 = $this->pos; - $_729 = NULL; + else { $_747 = FALSE; break; } + $res_746 = $result; + $pos_746 = $this->pos; + $_745 = NULL; do { if (( $subres = $this->rx( '/[A-Za-z_]/' ) ) !== FALSE) { $result["text"] .= $subres; } - else { $_729 = FALSE; break; } - $_729 = TRUE; break; + else { $_745 = FALSE; break; } + $_745 = TRUE; break; } while(0); - if( $_729 === TRUE ) { - $result = $res_730; - $this->pos = $pos_730; - $_731 = FALSE; break; + if( $_745 === TRUE ) { + $result = $res_746; + $this->pos = $pos_746; + $_747 = FALSE; break; } - if( $_729 === FALSE) { - $result = $res_730; - $this->pos = $pos_730; + if( $_745 === FALSE) { + $result = $res_746; + $this->pos = $pos_746; } - $_731 = TRUE; break; + $_747 = TRUE; break; } while(0); - if( $_731 === TRUE ) { $_746 = TRUE; break; } - $result = $res_726; - $this->pos = $pos_726; - $_744 = NULL; + if( $_747 === TRUE ) { $_762 = TRUE; break; } + $result = $res_742; + $this->pos = $pos_742; + $_760 = NULL; do { - $res_733 = $result; - $pos_733 = $this->pos; - $_736 = NULL; + $res_749 = $result; + $pos_749 = $this->pos; + $_752 = NULL; do { if (substr($this->string,$this->pos,1) == '{') { $this->pos += 1; $result["text"] .= '{'; } - else { $_736 = FALSE; break; } - $res_735 = $result; - $pos_735 = $this->pos; + else { $_752 = FALSE; break; } + $res_751 = $result; + $pos_751 = $this->pos; if (substr($this->string,$this->pos,1) == '$') { $this->pos += 1; $result["text"] .= '$'; - $result = $res_735; - $this->pos = $pos_735; - $_736 = FALSE; break; + $result = $res_751; + $this->pos = $pos_751; + $_752 = FALSE; break; } else { - $result = $res_735; - $this->pos = $pos_735; + $result = $res_751; + $this->pos = $pos_751; } - $_736 = TRUE; break; + $_752 = TRUE; break; } while(0); - if( $_736 === TRUE ) { $_744 = TRUE; break; } - $result = $res_733; - $this->pos = $pos_733; - $_742 = NULL; + if( $_752 === TRUE ) { $_760 = TRUE; break; } + $result = $res_749; + $this->pos = $pos_749; + $_758 = NULL; do { if (( $subres = $this->literal( '{$' ) ) !== FALSE) { $result["text"] .= $subres; } - else { $_742 = FALSE; break; } - $res_741 = $result; - $pos_741 = $this->pos; - $_740 = NULL; + else { $_758 = FALSE; break; } + $res_757 = $result; + $pos_757 = $this->pos; + $_756 = NULL; do { if (( $subres = $this->rx( '/[A-Za-z_]/' ) ) !== FALSE) { $result["text"] .= $subres; } - else { $_740 = FALSE; break; } - $_740 = TRUE; break; + else { $_756 = FALSE; break; } + $_756 = TRUE; break; } while(0); - if( $_740 === TRUE ) { - $result = $res_741; - $this->pos = $pos_741; - $_742 = FALSE; break; + if( $_756 === TRUE ) { + $result = $res_757; + $this->pos = $pos_757; + $_758 = FALSE; break; } - if( $_740 === FALSE) { - $result = $res_741; - $this->pos = $pos_741; + if( $_756 === FALSE) { + $result = $res_757; + $this->pos = $pos_757; } - $_742 = TRUE; break; + $_758 = TRUE; break; } while(0); - if( $_742 === TRUE ) { $_744 = TRUE; break; } - $result = $res_733; - $this->pos = $pos_733; - $_744 = FALSE; break; + if( $_758 === TRUE ) { $_760 = TRUE; break; } + $result = $res_749; + $this->pos = $pos_749; + $_760 = FALSE; break; } while(0); - if( $_744 === TRUE ) { $_746 = TRUE; break; } - $result = $res_726; - $this->pos = $pos_726; - $_746 = FALSE; break; + if( $_760 === TRUE ) { $_762 = TRUE; break; } + $result = $res_742; + $this->pos = $pos_742; + $_762 = FALSE; break; } while(0); - if( $_746 === TRUE ) { $_748 = TRUE; break; } - $result = $res_721; - $this->pos = $pos_721; - $_748 = FALSE; break; + if( $_762 === TRUE ) { $_764 = TRUE; break; } + $result = $res_737; + $this->pos = $pos_737; + $_764 = FALSE; break; } while(0); - if( $_748 === TRUE ) { $_750 = TRUE; break; } - $result = $res_719; - $this->pos = $pos_719; - $_750 = FALSE; break; + if( $_764 === TRUE ) { $_766 = TRUE; break; } + $result = $res_735; + $this->pos = $pos_735; + $_766 = FALSE; break; } while(0); - if( $_750 === TRUE ) { $_752 = TRUE; break; } - $result = $res_717; - $this->pos = $pos_717; - $_752 = FALSE; break; + if( $_766 === TRUE ) { $_768 = TRUE; break; } + $result = $res_733; + $this->pos = $pos_733; + $_768 = FALSE; break; } while(0); - if( $_752 === FALSE) { $_754 = FALSE; break; } - $_754 = TRUE; break; + if( $_768 === FALSE) { $_770 = FALSE; break; } + $_770 = TRUE; break; } while(0); - if( $_754 === FALSE) { - $result = $res_755; - $this->pos = $pos_755; - unset( $res_755 ); - unset( $pos_755 ); + if( $_770 === FALSE) { + $result = $res_771; + $this->pos = $pos_771; + unset( $res_771 ); + unset( $pos_771 ); break; } $count += 1; diff --git a/view/SSTemplateParser.php.inc b/view/SSTemplateParser.php.inc index 0ef048312..0317ed2ce 100644 --- a/view/SSTemplateParser.php.inc +++ b/view/SSTemplateParser.php.inc @@ -103,7 +103,7 @@ class SSTemplateParser extends Parser { # and is used by all enclosing blocks, as well as a base for the top level. # Any new template elements need to be included in this list, if they are to work. - Template: (Comment | Translate | If | Require | CacheBlock | UncachedBlock | OldI18NTag | ClosedBlock | OpenBlock | MalformedBlock | Injection | Text)+ + Template: (Comment | Translate | If | Require | CacheBlock | UncachedBlock | OldI18NTag | Include | ClosedBlock | OpenBlock | MalformedBlock | Injection | Text)+ */ function Template_STR(&$res, $sub) { $res['php'] .= $sub['php'] . PHP_EOL ; From 192237cb7dcdc5c0d35ef01469ddcf919bf2bbe3 Mon Sep 17 00:00:00 2001 From: Julian Seidenberg Date: Mon, 16 Apr 2012 18:58:42 +1200 Subject: [PATCH 16/23] BUGFIX: fixes to i18n Unit Tests --- tests/i18n/i18nTest.php | 18 ++++++++++-------- tests/view/SSViewerTest.php | 2 +- 2 files changed, 11 insertions(+), 9 deletions(-) diff --git a/tests/i18n/i18nTest.php b/tests/i18n/i18nTest.php index cf0c9e07c..10f5baea4 100644 --- a/tests/i18n/i18nTest.php +++ b/tests/i18n/i18nTest.php @@ -224,8 +224,11 @@ class i18nTest extends SapphireTest { $oldLocale = i18n::get_locale(); i18n::set_locale('en_US'); - $lang['en_US']['i18nTestModule']['NEWMETHODSIG'] = 'TRANS New _t method signature test'; - $lang['en_US']['i18nTestModule']['INJECTIONS'] = 'TRANS Hello {name} {greeting}. But it is late, {goodbye}'; + + i18n::get_translator('core')->getAdapter()->addTranslation(array( + 'i18nTestModule.NEWMETHODSIG' => 'TRANS New _t method signature test', + 'i18nTestModule.INJECTIONS' => 'TRANS Hello {name} {greeting}. But it is late, {goodbye}' + ), 'en_US'); $entity = "i18nTestModule.INJECTIONS"; $default = "Hello {name} {greeting}. But it is late, {goodbye}"; @@ -271,8 +274,10 @@ class i18nTest extends SapphireTest { $oldLocale = i18n::get_locale(); i18n::set_locale('en_US'); - $lang['en_US']['i18nTestModule']['NEWMETHODSIG'] = 'TRANS New _t method signature test'; - $lang['en_US']['i18nTestModule']['INJECTIONS'] = 'TRANS Hello {name} {greeting}. But it is late, {goodbye}'; + i18n::get_translator('core')->getAdapter()->addTranslation(array( + 'i18nTestModule.NEWMETHODSIG' => 'TRANS New _t method signature test', + 'i18nTestModule.INJECTIONS' => 'TRANS Hello {name} {greeting}. But it is late, {goodbye}' + ),'en_US'); $viewer = new SSViewer('i18nTestModule'); $parsedHtml = $viewer->process(new ArrayData(array('TestProperty' => 'TestPropertyValue'))); @@ -280,14 +285,11 @@ class i18nTest extends SapphireTest { "Hello Mark welcome. But it is late, bye\n", $parsedHtml, "Testing fallback to the translation default (but using the injection array)" ); + $this->assertContains( "TRANS Hello Paul good you are here. But it is late, see you\n", $parsedHtml, "Testing entity, default string and injection array" ); - $this->assertContains( - "TRANS Hello Steffen willkommen. But it is late, wiedersehen\n", - $parsedHtml, "Full test of translation, using default, context and injection array" - ); $this->assertContains( "TRANS Hello Cat meow. But it is late, meow\n", diff --git a/tests/view/SSViewerTest.php b/tests/view/SSViewerTest.php index d0ec3f89a..d24454f28 100644 --- a/tests/view/SSViewerTest.php +++ b/tests/view/SSViewerTest.php @@ -461,7 +461,7 @@ after') $this->assertEquals( $this->render('<% include SSViewerTestIncludeWithArguments Arg1=A Bare String, Arg2=B Bare String %>'), - '

    A Bare String

    B Bare String

    ' + '

    A Bare String

    B Bare String

    ' ); $this->assertEquals( From 0da62b9552d6c733741df3bd93fcc71e9bd91b9b Mon Sep 17 00:00:00 2001 From: Julian Seidenberg Date: Wed, 18 Apr 2012 13:21:07 +1200 Subject: [PATCH 17/23] BUGFIX: fixing i18n _t function breaking out of when correct translation found --- i18n/i18n.php | 5 ++++- tests/i18n/i18nTest.php | 26 +++++++++++++++++++++++++- 2 files changed, 29 insertions(+), 2 deletions(-) diff --git a/i18n/i18n.php b/i18n/i18n.php index d1ac5cb52..d3e8de022 100644 --- a/i18n/i18n.php +++ b/i18n/i18n.php @@ -1503,7 +1503,10 @@ class i18n extends Object implements TemplateGlobalProvider { $translation = $adapter->translate($entity, $locale); // Return translation only if we found a match thats not the entity itself (Zend fallback) - if($translation && $translation != $entity) $returnValue = $translation; + if($translation && $translation != $entity) { + $returnValue = $translation; + break 2; + } } } diff --git a/tests/i18n/i18nTest.php b/tests/i18n/i18nTest.php index 10f5baea4..7c5a40c84 100644 --- a/tests/i18n/i18nTest.php +++ b/tests/i18n/i18nTest.php @@ -171,10 +171,14 @@ class i18nTest extends SapphireTest { i18n::set_locale('en_US'); i18n::get_translator('core')->getAdapter()->addTranslation(array( 'i18nTestModule.MAINTEMPLATE' => 'Main Template', + 'i18nTestModule.ss.SPRINTFNONAMESPACE' => 'My replacement no namespace: %s', 'i18nTestModule.LAYOUTTEMPLATE' => 'Layout Template', + 'i18nTestModule.ss.LAYOUTTEMPLATENONAMESPACE' => 'Layout Template no namespace', 'i18nTestModule.SPRINTFNAMESPACE' => 'My replacement: %s', 'i18nTestModule.WITHNAMESPACE' => 'Include Entity with Namespace', + 'i18nTestModuleInclude.ss.NONAMESPACE' => 'Include Entity without Namespace', 'i18nTestModuleInclude.ss.SPRINTFINCLUDENAMESPACE' => 'My include replacement: %s', + 'i18nTestModuleInclude.ss.SPRINTFINCLUDENONAMESPACE' => 'My include replacement no namespace: %s' ), 'en_US'); $viewer = new SSViewer('i18nTestModule'); @@ -183,14 +187,22 @@ class i18nTest extends SapphireTest { "Layout Template\n", $parsedHtml ); + $this->assertContains( + "Layout Template no namespace\n", + $parsedHtml + ); i18n::set_locale('de_DE'); i18n::get_translator('core')->getAdapter()->addTranslation(array( 'i18nTestModule.MAINTEMPLATE' => 'TRANS Main Template', + 'i18nTestModule.ss.SPRINTFNONAMESPACE' => 'TRANS My replacement no namespace: %s', 'i18nTestModule.LAYOUTTEMPLATE' => 'TRANS Layout Template', + 'i18nTestModule.ss.LAYOUTTEMPLATENONAMESPACE' => 'TRANS Layout Template no namespace', 'i18nTestModule.SPRINTFNAMESPACE' => 'TRANS My replacement: %s', 'i18nTestModule.WITHNAMESPACE' => 'TRANS Include Entity with Namespace', + 'i18nTestModuleInclude.ss.NONAMESPACE' => 'TRANS Include Entity without Namespace', 'i18nTestModuleInclude.ss.SPRINTFINCLUDENAMESPACE' => 'TRANS My include replacement: %s', + 'i18nTestModuleInclude.ss.SPRINTFINCLUDENONAMESPACE' => 'TRANS My include replacement no namespace: %s' ), 'de_DE'); $viewer = new SSViewer('i18nTestModule'); @@ -203,6 +215,10 @@ class i18nTest extends SapphireTest { "TRANS Layout Template\n", $parsedHtml ); + $this->assertContains( + "TRANS Layout Template no namespace", + $parsedHtml + ); $this->assertContains( "TRANS My replacement: TestPropertyValue", $parsedHtml @@ -211,11 +227,19 @@ class i18nTest extends SapphireTest { "TRANS Include Entity with Namespace", $parsedHtml ); + $this->assertContains( + "TRANS Include Entity without Namespace", + $parsedHtml + ); $this->assertContains( "TRANS My include replacement: TestPropertyValue", $parsedHtml ); - + $this->assertContains( + "TRANS My include replacement no namespace: TestPropertyValue", + $parsedHtml + ); + i18n::set_locale($oldLocale); } From 90ae0ed18d279d7c41161ed4d42c6116824e218a Mon Sep 17 00:00:00 2001 From: Julian Seidenberg Date: Wed, 18 Apr 2012 17:23:57 +1200 Subject: [PATCH 18/23] BUGFIX: reverting back to Ingo's text collector from code, but using the parser to get from templates. Adding special case for _t functions in code that have an array in them. Fixing unit tests for all this. --- i18n/i18nTextCollector.php | 174 +++++++++------------------ tests/i18n/i18nTextCollectorTest.php | 13 +- 2 files changed, 65 insertions(+), 122 deletions(-) diff --git a/i18n/i18nTextCollector.php b/i18n/i18nTextCollector.php index 612719011..98f5eef9d 100644 --- a/i18n/i18nTextCollector.php +++ b/i18n/i18nTextCollector.php @@ -193,136 +193,80 @@ class i18nTextCollector extends Object { return $entities; } - + public function collectFromCode($content, $module) { - $entitiesArr = array(); + $entities = array(); - $newRegexRule = '/_t\s*\(\s*(.+?)\s*\)\s*;\s*/is'; + $tokens = token_get_all(" 0) { //we have at least one match + if($inTransFn && $id == T_ARRAY) { + //raw 'array' token found in _t function, stop processing the tokens for this _t now + $finalTokenDueToArray = true; + } - //take all the matched _t entities - foreach($matchesArray[1] as $match) { - //replace all commas with backticks (unique character to explode on later) - $replacedMatch = preg_replace('/("|\'|_LOW|_MEDIUM|_HIGH)\s*,\s*([\'"]|"|\'|array|PR)/','$1`$2',$match); //keep array text - - //$replacedMatch = trim($replacedMatch," \"'\n"); //remove starting and ending quotes - $replacedMatch = trim($replacedMatch," \n"); //remove starting and ending spaces and newlines - - $parts = explode('`',$replacedMatch); //cut up the _t call - - $partsWOQuotes = array(); - foreach($parts as $part) { - $part = trim($part,"\n"); //remove spaces and newlines from part - - $firstChar = substr($part,0,1); - if ($firstChar == "'" || $firstChar == '"') { - //remove wrapping quotes - $part = substr($part,1,-1); - - //remove inner concatenation - $part = preg_replace("/$firstChar\\s*\\.\\s*$firstChar/",'',$part); + if($id == T_STRING && $text == '_t') { + // start definition + $inTransFn = true; + } elseif($inTransFn && $id == T_VARIABLE) { + // Dynamic definition from provideEntities - skip + $inTransFn = false; + $inConcat = false; + $currentEntity = array(); + } elseif($inTransFn && $id == T_CONSTANT_ENCAPSED_STRING) { + // Fixed quoting escapes, and remove leading/trailing quotes + if(preg_match('/^\'/', $text)) { + $text = str_replace("\'", "'", $text); + $text = preg_replace('/^\'/', '', $text); + $text = preg_replace('/\'$/', '', $text); + } else { + $text = str_replace('\"', '"', $text); + $text = preg_replace('/^"/', '', $text); + $text = preg_replace('/"$/', '', $text); } - $partsWOQuotes[] = $part; //remove starting and ending quotes from inner parts - } - - if ($parts && count($partsWOQuotes) > 0) { - - $entitiesArr = array_merge($entitiesArr, (array)$this->entitySpecFromNewParts($partsWOQuotes)); + if($inConcat) { + $currentEntity[count($currentEntity)-1] .= $text; + } else { + $currentEntity[] = $text; + } } + } elseif($inTransFn && $token == '.') { + $inConcat = true; + } elseif($inTransFn && $token == ',') { + $inConcat = false; + } elseif($inTransFn && ($token == ')' || $finalTokenDueToArray)) { + // finalize definition + $inTransFn = false; + $inConcat = false; + $entity = array_shift($currentEntity); + $entities[$entity] = $currentEntity; + $currentEntity = array(); + $finalTokenDueToArray = false; } } - ksort($entitiesArr); - - return $entitiesArr; - } - - - /** - * Test if one string starts with another - */ - protected function startsWith($haystack, $needle) { - $length = strlen($needle); - return (substr($haystack, 0, $length) === $needle); - } - - /** - * Converts a parts array from explode function into an array of entities for the i18n text collector - * @return array - */ - protected function entitySpecFromNewParts($parts, $namespace = null) { - // first thing in the parts array will always be the entity - // split fullname into entity parts - //set defaults - $value = ""; - $prio = null; - $comment = null; - - $entityParts = explode('.', $parts[0]); - if(count($entityParts) > 1) { - // templates don't have a custom namespace - $entity = array_pop($entityParts); - // namespace might contain dots, so we explode - $namespace = implode('.',$entityParts); - } else { - $entity = array_pop($entityParts); - $namespace = $namespace; - } - - //find the array (if found, then we are dealing with the new _t syntax - $newSyntax = false; - $offset = 0; - foreach($parts as $p) { - if ($this->startsWith($p,'array')) { //remove everything after (and including) the array - $newSyntax = true; - $parts = array_splice($parts,0,$offset); - break; + foreach($entities as $entity => $spec) { + // call without master language definition + if(!$spec) { + unset($entities[$entity]); + continue; } - $offset++; + + unset($entities[$entity]); + $entities[$this->normalizeEntity($entity, $module)] = $spec; } + ksort($entities); - //2nd part of array is always "string" - if (isset($parts[1])) $value = $parts[1]; - - - //3rd part can either be priority or context, if old or now syntax is used - if (isset($parts[2])) { - if ($newSyntax) { - $prio = 40; //default priority - $comment = $parts[2]; - } else { - if (stripos($parts[2], 'PR_LOW') !== false || - stripos($parts[2], 'PR_MEDIUM') !== false || - stripos($parts[2], 'PR_HIGH') !== false) { //definitely old syntax - $prio = $parts[2]; - } else { //default to new syntax (3rd position is comment/context - $prio = 40; //default priority - $comment = $parts[2]; - } - } - } - - //if 4th position is set then this is old syntax and it is the context - //it would be array in the new syntax and therefore should have already been spliced off - if (isset($parts[3])) { - $comment = $parts[3]; - $prio = $parts[2]; //3rd position is now definitely priority - } - - return array( - "{$namespace}.{$entity}" => array( - $value, - $prio, - $comment - ) - ); + return $entities; } - - public function collectFromTemplate($content, $fileName, $module) { $entities = array(); diff --git a/tests/i18n/i18nTextCollectorTest.php b/tests/i18n/i18nTextCollectorTest.php index 53f483aae..19d7c9fb1 100644 --- a/tests/i18n/i18nTextCollectorTest.php +++ b/tests/i18n/i18nTextCollectorTest.php @@ -58,7 +58,7 @@ _t( _t( 'Test.CONCATENATED2', -"Line "4" and " . +"Line \"4\" and " . "Line 5"); PHP; $this->assertEquals( @@ -87,7 +87,7 @@ SS; $this->assertEquals( $c->collectFromTemplate($html, 'mymodule', 'Test'), array( - 'Test.SINGLEQUOTE' => array('Single Quote',null,null), + 'Test.SINGLEQUOTE' => array('Single Quote'), 'i18nTestModule.NEWMETHODSIG' => array("New _t method signature test",null,null), 'i18nTestModule.INJECTIONS_0' => array("Hello {name} {greeting}. But it is late, {goodbye}", null, null), 'i18nTestModule.INJECTIONS_1' => array("Hello {name} {greeting}. But it is late, {goodbye}", null, null), @@ -328,11 +328,10 @@ PHP; $collectedTranslatables = $c->collectFromCode($php, 'mymodule'); $expectedArray = (array( - 'i18nTestModule.NEWMETHODSIG' => array("New _t method signature test", null, null), - 'i18nTestModule.INJECTIONS1' => array("_DOES_NOT_EXIST", 40, "Hello {name} {greeting}. But it is late, {goodbye}"), - 'i18nTestModule.INJECTIONS2' => array("Hello {name} {greeting}. But it is late, {goodbye}", null, null), - 'i18nTestModule.INJECTIONS3' => array("Hello {name} {greeting}. But it is late, {goodbye}", 40, "New context (this should be ignored)"), - 'i18nTestModule.INJECTIONS4' => array(null, null, null), + 'i18nTestModule.NEWMETHODSIG' => array("New _t method signature test"), + 'i18nTestModule.INJECTIONS1' => array("_DOES_NOT_EXIST", "Hello {name} {greeting}. But it is late, {goodbye}"), + 'i18nTestModule.INJECTIONS2' => array("Hello {name} {greeting}. But it is late, {goodbye}"), + 'i18nTestModule.INJECTIONS3' => array("Hello {name} {greeting}. But it is late, {goodbye}", "New context (this should be ignored)"), )); ksort($expectedArray); From 7710cf59c787cc1efbcdb48c22115f81200acc18 Mon Sep 17 00:00:00 2001 From: Julian Seidenberg Date: Wed, 18 Apr 2012 18:14:03 +1200 Subject: [PATCH 19/23] MINOR: updating the documentation --- docs/en/changelogs/3.0.0.md | 12 ++++++++- docs/en/topics/i18n.md | 50 ++++++++++++++++--------------------- i18n/i18n.php | 3 ++- 3 files changed, 34 insertions(+), 31 deletions(-) diff --git a/docs/en/changelogs/3.0.0.md b/docs/en/changelogs/3.0.0.md index 2f82f218a..21809a68d 100644 --- a/docs/en/changelogs/3.0.0.md +++ b/docs/en/changelogs/3.0.0.md @@ -365,7 +365,17 @@ placeholder and the `PageComment` class. See the ['comments' module](https://git The setting determines difference homepages at arbitrary locations in the page tree, and was rarely used in practice - so we moved it to a "[homepagefordomain](https://github.com/silverstripe-labs/silverstripe-homepagefordomain)" module. - + +### New syntax for translatable _t functions ### + +You can now call the _t() function in both templates and code with a namespace and string to translate, as well as a +comment and injection array. Note that the proxity arguement to _t is no longer supported. + +The new syntax supports injecting variables into the translation. For example: + + :::php + _t('i18nTestModule.INJECTIONS2', "Hello {name} {greeting}", array("name"=>"Paul", "greeting"=>"good you are here")); + ### Default translation source in YML instead of PHP $lang array, using Zend_Translate ### This allows for a more flexible handling of translation sources in various formats. diff --git a/docs/en/topics/i18n.md b/docs/en/topics/i18n.md index e9c287b1d..6619004fa 100644 --- a/docs/en/topics/i18n.md +++ b/docs/en/topics/i18n.md @@ -139,20 +139,18 @@ The `_t()` function is the main gateway to localized text, and takes four parame * **$entity:** Unique identifier, composed by a namespace and an entity name, with a dot separating them. Both are arbitrary names, although by convention we use the name of the containing class or template. Use this identifier to reference the same translation elsewhere in your code. * **$string:** (optional) The original language string to be translated. Only needs to be declared once, and gets picked up the [text collector](#collecting-text). - * **$string:** (optional) Natural language (particularly short phrases and individual words) + * **$string:** (optional) Natural language comment (particularly short phrases and individual words) are very context dependent. This parameter allows the developer to convey this information -to the translator. Can also be used to explain `sprintf()` placeholders. +to the translator. + * **$array::** (optional) An array of injecting variables into the second parameter :::php //Example 4: Using context to hint information about a parameter - sprintf( - _t('CMSMain.RESTORED', - "Restored '%s' successfully", - 'Param %s is a title' - ), - $title - ) - + _t('CMSMain.RESTORED', + "Restored {value} successfully", + 'This is a message when restoring a broken part of the CMS', + array('value' => $itemRestored) + ); ### Usage @@ -182,25 +180,21 @@ Therefore, the following would be a valid use in templates: Using SS templating variables in the translatable string (e.g. $Author, $Date..) is not currently supported. -### sprintf()-support +### Injection-support -Sprintf enables us to dynamically replace parts of a translated string, e.g. by a username or a page-title. +Variable injection in _t allows us to dynamically replace parts of a translated string, e.g. by a username or a page-title. :::php // in PHP-file - sprintf( - _t('CMSMain.RESTORED',"Restored '%s' successfully"), - $title - ) - -
    -**Caution**: In templates (*.ss)-files you can only use ONE argument for your sprintf-support, and can't use spaces -between parameters. -
    + _t( + 'CMSMain.RESTORED', + "Restored {title} successfully"), + array('title' => $title) + ); :::php - // in SS-template ($title must be available in the current template-scope) - <% sprintf(_t('CMSMain.RESTORED',"Restored '%s' successfully"),$title) %> + // in SS-template ($Name must be available in the current template-scope) + <%t MYPROJECT.INJECTIONS "Hello {name} {greeting}" name="$Name" greeting="good to see you" %> ## Collecting text @@ -339,14 +333,12 @@ Example Translation Table (mymodule/javascript/lang/de_DE.js) alert(ss.i18n._t('MYMODULE.MYENTITY')); -### Advanced Usage with sprintf() +### Advanced Usage with injection :::js - // MYMODULE.MYENTITY contains "Really delete %s articles by %s authors?" - alert(ss.i18n.sprintf( - ss.i18n._t('MYMODULE.MYENTITY'), - 42, - 'Douglas Adams' + // MYMODULE.MYENTITY contains "Really delete {answer} articles by {author} authors?" + alert(ss.i18n._t('MYMODULE.MYENTITY'), + array('answer' => 42, 'author' => 'Douglas Adams') )); // Displays: "Really delete 42 articles by Douglas Adams?" diff --git a/i18n/i18n.php b/i18n/i18n.php index d3e8de022..5c1f5885a 100644 --- a/i18n/i18n.php +++ b/i18n/i18n.php @@ -1457,7 +1457,8 @@ class i18n extends Object implements TemplateGlobalProvider { * @param string $string The original string itself. In a usual call this is a mandatory parameter, but if you are reusing a string which * has already been "declared" (using another call to this function, with the same class and entity), you can omit it. * @param string $context (optional) If the string can be difficult to translate by any reason, you can help translators with some more info using this param - * @param string injectionArray (optional) array of key value pairs that are used to replace corresponding expressions in {curly brackets} in the $string + * @param string injectionArray (optional) array of key value pairs that are used to replace corresponding expressions in {curly brackets} in the $string. + * The injection array can also be used as the their argument to the _t() function * @return string The translated string, according to the currently set locale {@link i18n::set_locale()} */ static function _t($entity, $string = "", $context = "", $injection = "") { From 93fcb863c5e49500bba24a28aff4f022a37c34c9 Mon Sep 17 00:00:00 2001 From: Julian Seidenberg Date: Wed, 18 Apr 2012 18:16:37 +1200 Subject: [PATCH 20/23] MINOR: removing unused file --- templates/ModelViewer_dotsrc.ss | 20 -------------------- 1 file changed, 20 deletions(-) delete mode 100644 templates/ModelViewer_dotsrc.ss diff --git a/templates/ModelViewer_dotsrc.ss b/templates/ModelViewer_dotsrc.ss deleted file mode 100644 index 63eb31994..000000000 --- a/templates/ModelViewer_dotsrc.ss +++ /dev/null @@ -1,20 +0,0 @@ -digraph g { - orientation=portrait; - overlap=false; - splines=true; - - edge[fontsize=8,len=1.5]; - node[fontsize=10,shape=box]; - - <% control Modules %> - <% control Models %> - $Name [shape=record,label="{{$Name}|<% control Fields %>$Name\\n<% end_control %>}"]; - <% if ParentModel %> - $Name -> $ParentModel [style=dotted]; - <% end_if %> - <% control Relations %> - $Model.Name -> $RelatedClass [label="$Name\\n$RelationType"]; - <% end_control %> - <% end_control %> - <% end_control %> -} From 926daa29e23a8571e72427fcdb54626867858ee7 Mon Sep 17 00:00:00 2001 From: Sean Harvey Date: Wed, 18 Apr 2012 18:44:33 +1200 Subject: [PATCH 21/23] BUGFIX Revert remove of function_exists() check for mcrypt in 7d84aff01e, as we don't expect mcrypt to actually be available, since fallbacks in RandomGenerator are available. --- security/RandomGenerator.php | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/security/RandomGenerator.php b/security/RandomGenerator.php index ca0bf271c..4d03bbf3c 100644 --- a/security/RandomGenerator.php +++ b/security/RandomGenerator.php @@ -21,8 +21,10 @@ class RandomGenerator { // TODO Fails with "Could not gather sufficient random data" on IIS, temporarily disabled on windows if(!$isWin) { - $e = mcrypt_create_iv(64, MCRYPT_DEV_URANDOM); - if($e !== false) return $e; + if(function_exists('mcrypt_create_iv')) { + $e = mcrypt_create_iv(64, MCRYPT_DEV_URANDOM); + if($e !== false) return $e; + } } // Fall back to SSL methods - may slow down execution by a few ms From a44916dc19f9d15be76420e5842ab50ab8dbb227 Mon Sep 17 00:00:00 2001 From: Ingo Schommer Date: Wed, 18 Apr 2012 13:20:23 +0200 Subject: [PATCH 22/23] API CHANGE Don't use $tinymce_lang lookup in i18n::get_lang_from_locale(), as it mixes locales with langs and hence breaks language fallbacks in _t() (e.g. "pt_BR" returns "pt_br", rather than "pt") --- i18n/i18n.php | 13 ++----------- 1 file changed, 2 insertions(+), 11 deletions(-) diff --git a/i18n/i18n.php b/i18n/i18n.php index 12351fd81..82bdb1725 100644 --- a/i18n/i18n.php +++ b/i18n/i18n.php @@ -1742,22 +1742,13 @@ class i18n extends Object implements TemplateGlobalProvider { /** * Returns the "short" language name from a locale, - * e.g. "en_US" would return "en". This conversion - * is determined internally by the {@link $tinymce_lang} - * lookup table. If no match can be found in this lookup, - * the characters before the underscore ("_") are returned. - * - * @todo More generic lookup table, don't rely on tinymce specific conversion + * e.g. "en_US" would return "en". * * @param string $locale E.g. "en_US" * @return string Short language code, e.g. "en" */ static function get_lang_from_locale($locale) { - if(isset(self::$tinymce_lang[$locale])) { - return self::$tinymce_lang[$locale]; - } else { - return preg_replace('/(_|-).*/', '', $locale); - } + return preg_replace('/(_|-).*/', '', $locale); } /** From 92054fbc07b3e354dfbc884dd87eee118825eb4b Mon Sep 17 00:00:00 2001 From: Ingo Schommer Date: Wed, 18 Apr 2012 13:36:52 +0200 Subject: [PATCH 23/23] ENHANCEMENT Updated YML translations from translate.ss.org, removed unapproved langs with little or no translations, updated master strings, fixed line break problem in lang files generated by i18nYMLConverter module --- lang/af.yml | 78 +--- lang/ar.yml | 134 +------ lang/ast.yml | 48 --- lang/az.yml | 183 +--------- lang/bg.yml | 94 +---- lang/bs.yml | 60 +--- lang/ca.yml | 100 +----- lang/cs.yml | 127 +------ lang/cy.yml | 6 - lang/da.yml | 410 +-------------------- lang/de.yml | 133 ++----- lang/el.yml | 14 - lang/en.yml | 926 +++++++++++++++++++++++++----------------------- lang/en_ES.yml | 9 - lang/en_GB.yml | 105 +----- lang/eo.yml | 136 ++----- lang/es.yml | 103 +----- lang/es_419.yml | 1 - lang/es_AR.yml | 129 +------ lang/es_MX.yml | 124 +------ lang/et_EE.yml | 101 +----- lang/eu_ES.yml | 7 - lang/fa_IR.yml | 78 +--- lang/fi.yml | 120 +------ lang/fo.yml | 69 +--- lang/fr.yml | 134 ++----- lang/he_IL.yml | 78 ++-- lang/hi_IN.yml | 3 - lang/hr.yml | 58 +-- lang/hu.yml | 57 +-- lang/hy_AM.yml | 3 - lang/id.yml | 120 +------ lang/is.yml | 127 +------ lang/it.yml | 112 +----- lang/ja_JP.yml | 150 +------- lang/km.yml | 33 -- lang/kn_IN.yml | 9 - lang/ku.yml | 10 - lang/kxm.yml | 11 - lang/lc_XX.yml | 34 -- lang/lt.yml | 125 +------ lang/lv.yml | 176 +-------- lang/mi_NZ.yml | 8 +- lang/ml.yml | 13 - lang/mn.yml | 18 - lang/ms.yml | 70 ---- lang/nb.yml | 126 +------ lang/ne.yml | 30 -- lang/nl.yml | 136 ++----- lang/pa.yml | 30 -- lang/pl.yml | 157 +------- lang/pt.yml | 128 +------ lang/pt_BR.yml | 105 +----- lang/ro.yml | 45 --- lang/ru.yml | 106 +----- lang/si.yml | 56 +-- lang/sk.yml | 133 ++----- lang/sl.yml | 163 +++++---- lang/sr.yml | 61 +--- lang/sv.yml | 133 ++----- lang/th.yml | 242 +++++++++++-- lang/tr.yml | 110 +----- lang/uk.yml | 66 +--- lang/ur.yml | 11 - lang/uz.yml | 13 - lang/vi_US.yml | 40 --- lang/vi_VN.yml | 1 - lang/zh_CN.yml | 44 +-- lang/zh_TW.yml | 22 +- 69 files changed, 1317 insertions(+), 5285 deletions(-) delete mode 100644 lang/cy.yml delete mode 100644 lang/en_ES.yml delete mode 100644 lang/es_419.yml delete mode 100644 lang/eu_ES.yml delete mode 100644 lang/hi_IN.yml delete mode 100644 lang/kn_IN.yml delete mode 100644 lang/ku.yml delete mode 100644 lang/kxm.yml delete mode 100644 lang/ml.yml delete mode 100644 lang/mn.yml delete mode 100644 lang/ur.yml delete mode 100644 lang/vi_US.yml diff --git a/lang/af.yml b/lang/af.yml index 01a956d53..4f82f231c 100644 --- a/lang/af.yml +++ b/lang/af.yml @@ -1,7 +1,9 @@ af: AssetAdmin: - CHOOSEFILE: "Kies lêer:" MENUTITLE: "Lêers & Prente" + NEWFOLDER: "NewFolder" + AssetTableField: + URL: "URL" BBCodeParser: ALIGNEMENT: "Belyning" BOLD: "Vet Teks" @@ -15,7 +17,11 @@ af: UNDERLINE: "Beklemtoonde Teks" UNDERLINEEXAMPLE: "Beklemtoon" CMSMain: + ACCESS: "Toegang tot '%s' afdeling" MENUTITLE: "Blaaie" + SAVE: "Save" + CMSPagesController: + MENUTITLE: "CMSPagesController" ChangePasswordEmail.ss: CHANGEPASSWORDTEXT1: "U het die wagwoord vir" ComplexTableField.ss: @@ -23,18 +29,13 @@ af: ConfirmedPasswordField: ATLEAST: "Wagwoorde moet ten minste %s karakters lank wees." BETWEEN: "Wagwoorde moet %s tot %s karakters lank wees." - HAVETOMATCH: "Wagwoorde moet pas." - LEASTONE: "Wagwoorde moet ten minste een nommer en een alfa-numeriese karakter lank wees." MAXIMUM: "Wagwoorde moet op die langste %s karakters lank wees." - NOEMPTY: "Wagwoorde kan nie leeg wees nie." SHOWONCLICKTITLE: "Verander Wagwoord" CreditCardField: FIRST: "eerste" FOURTH: "vierde" SECOND: "tweede" THIRD: "derde" - VALIDATIONJS1: "Maak asseblief seker u vul in die" - VALIDATIONJS2: "krediet kaart nommer reg." CurrencyField: CURRENCYSYMBOL: "R" DataObject: @@ -45,13 +46,11 @@ af: DateField: NOTSET: "nier gestel" TODAY: "vandag" - VALIDATIONJS: "Sleutel asseblief 'n geldige datum formaat in (DD/MM/JJJJ)." VALIDDATEMAXDATE: "U datum moet ouer wees of pas by die maksimum datum wat toegelaat word (%s)" VALIDDATEMINDATE: "U datum moet nuwer wees of pas by die minimum datum wat toegelaat word (%s)" DropdownField: CHOOSE: "(Kies)" EmailField: - VALIDATIONJS: "Sleutel asseblief 'n geldige e-pos adres in." File: INVALIDEXTENSION: "Uitbreiding is nie toegelaat nie. (geldig: %s)" NOFILESIZE: "Lêergrootte is nul grepe." @@ -60,20 +59,6 @@ af: TOOLARGE: "Lêergroote is te groot, maksimum %s toegelaat." FileIFrameField: NOSOURCE: "Kies asseblief 'n bron lêer om by te voeg" - Folder: - CREATED: "Eerste Opgelaai" - DELSELECTED: "Verwyder gekiesde lêers" - DETAILSTAB: "Besonderhede" - FILENAME: "Lêernaam" - FILESTAB: "Lêers" - LASTEDITED: "Laaste Verander" - PLURALNAME: "Lêers" - SINGULARNAME: "Lêer" - TITLE: "Titel" - TYPE: "Tipe" - UPLOADTAB: "Laai Op" - URL: "URL" - VIEWEDITASSET: "Wys/Verander Bate" ForgotPasswordEmail.ss: TEXT1: "Hier is u" TEXT2: "wagwoord herstel skakel" @@ -93,27 +78,17 @@ af: DefaultGroupTitleAdministrators: "Administrateurs" DefaultGroupTitleContentAuthors: "Inhouds Outeurs" Locked: "Gesluit?" - PLURALNAME: "Groepe" Parent: "Ouer Groep" - SINGULARNAME: "Groep" has_many_Permissions: "Toestemmings" many_many_Members: "Lidde" HtmlEditorField: ANCHORVALUE: "Anker" CSSCLASSLEFTALONE: "Op die linkerkant, op sy eie." LINKANCHOR: "Anker op hierdie bladsy" - SHOWUPLOADFORM: "Laai Lêer Op" - Image: - PLURALNAME: "Lêers" - SINGULARNAME: "Lêer" - Image_Cached: - PLURALNAME: "Lêers" - SINGULARNAME: "Lêer" LeftAndMain: HELP: "Help" + VersionUnknown: "Unknown" LoginAttempt: - PLURALNAME: "Inteken Pogings" - SINGULARNAME: "Inteken Poging" Member: BUTTONCHANGEPASSWORD: "Verander Wagwoord" CONFIRMNEWPASSWORD: "Bevestig Nuwe Wagwoord" @@ -136,47 +111,28 @@ af: ResultDeleted: "Het %d lede verwyder" ResultNone: "Geen veranderinge" ResultUpdated: "Het %d lede opgedateer" - MemberPassword: - PLURALNAME: "Lid Wagwoorde" - SINGULARNAME: "Lid Wagwoord" - MemberTableField: - DeleteTitleText: "Verwyder van hierdie groep" - DeleteTitleTextDatabase: "Verwyder van databasis en alle groepe" - ModelAdmin: - CREATEBUTTON: "Byvoeg '%s'" NullableField: IsNullLabel: "Is Null" NumericField: - VALIDATIONJS: "is nie 'n nommer nie, slegs nommer word aanvaar vir hierdie veld" - Page: - PLURALNAME: "Bladsye" - SINGULARNAME: "Bladsy" Permission: AdminGroup: "Administrateur" + CMS_ACCESS_CATEGORY: "IBS Toegang" FULLADMINRIGHTS_HELP: "Impliseer en oorskryf alle ander toegekende permissies." - PLURALNAME: "Toestemmings" - SINGULARNAME: "Toestemming" PermissionCheckboxSetField: AssignedTo: "toegeken aan \"%s\"" FromGroup: "oorgeërf van groep \"%s\"" FromRole: "oorgeërf van rol \"%s\"" FromRoleOnGroup: "oorgeërf van rol \"%s\" op groep \"%s\"" - PermissionRole: - PLURALNAME: "Rolle" - SINGULARNAME: "Rol" - PermissionRoleCode: - PLURALNAME: "Toestemming Rol Kodes" - SINGULARNAME: "Toestemming Rol Kode" Permissions: PERMISSIONS_CATEGORY: "Rolle en toegang permissies" RelationComplexTableField.ss: ADD: "Voeg by" - NOTFOUND: "Geen items gevind" ReportAdmin: MENUTITLE: "Verslae" Security: ALREADYLOGGEDIN: "U het nie toegang tot hierdie bladsy nie. As u n' ander rekening het wat toegang tot hierdie bladsy het, kan u weer inteken." SecurityAdmin: + ACCESS_HELP: "Laat toe wys, byvoeging en verandering van gebruikers, so wel as die toekenning van permissies en rolle aan hulle." APPLY_ROLES: "Wend rolle tot groepe toe" APPLY_ROLES_HELP: "Vermoë om rolle toegeken aan 'n groep te verander. Benodig die \"Toegang tot 'Sekuriteit' afdeling' permissie." EDITPERMISSIONS_HELP: "Vermoë om Permissies en IP Adresse vir 'n groep te verander. Benodig die \"Toegang tot 'Sekuriteit' afdeling\" permissie." @@ -184,7 +140,6 @@ af: MemberListCaution: "Waarskuwing: Deur lede te verwyder van hierdie lys sal hulle ook van alle groepe en die databasis verwyder" ROLES: "Rolle" ROLESDESCRIPTION: " " - TABIMPORT: "Voer In" TABROLES: "Rolle" SecurityAdmin_MemberImportForm: BtnImport: "Voer In" @@ -195,17 +150,14 @@ af: ADD: "Voeg nuwe ry by" TableListField: PRINT: "Druk" + SELECT: "Select:" TableListField.ss: - NOITEMSFOUND: "Geen items gevind" SORTASC: "Sorteer in stygende orde" SORTDESC: "Sorteer in dalende orde" TableListField_PageControls.ss: - DISPLAYING: "Wys huidiglik" - OF: "van" - TO: "na" - VIEWFIRST: "Wys eerste" - VIEWLAST: "Wys laaste" - VIEWNEXT: "Wys volgende" - VIEWPREVIOUS: "Wys vorige" + VIEWFIRST: "View first" + VIEWLAST: "View last" + VIEWNEXT: "View next" + VIEWPREVIOUS: "View previous" Versioned: has_many_Versions: "Weergawe" diff --git a/lang/ar.yml b/lang/ar.yml index de43efedd..2450d65f4 100644 --- a/lang/ar.yml +++ b/lang/ar.yml @@ -1,10 +1,17 @@ ar: AssetAdmin: - CHOOSEFILE: "اختر ملف" MENUTITLE: "الملفات و الصور" NEWFOLDER: "مجلد جديد" - AssetAdmin_left.ss: - GO: "اذهب" + AssetTableField: + CREATED: "أول المرفوعات" + DIM: "الأبعاد" + FILENAME: "اسم الملف" + LASTEDIT: "آخر التعديلات" + OWNER: "المالك" + SIZE: "الحجم" + TITLE: "العنوان" + TYPE: "النوع" + URL: "الرابط" BBCodeParser: ALIGNEMENT: "المحاذاة" ALIGNEMENTEXAMPLE: "محاذاة إلى اليمين" @@ -38,9 +45,10 @@ ar: ANY: "أي" NO: "لا" YES: "نعم" - CMSBatchActions: - PUBLISHED_PAGES: "%d من الصفحات المنشورة" CMSMain: + ACCESS: "الدخول إلى %s (%s)" + ACCESSALLINTERFACES: "الدخول إلى جميع واجهات إدارة المحتوى" + ACCESSALLINTERFACESHELP: "ينقض أكثر من توصيف الوصول المحدد" MENUTITLE: "محتوى الموقع" SAVE: "حفظ" ChangePasswordEmail.ss: @@ -58,7 +66,6 @@ ar: SUCCESSEDIT: "حفظ %s %s %s" ComplexTableField.ss: ADDITEM: "أضف" - NOITEMSFOUND: "لا يوجد عناصر" SORTASC: "ترتيب تصاعدي" SORTDESC: "ترتيب تنازلي" ComplexTableField_popup.ss: @@ -67,21 +74,15 @@ ar: ConfirmedPasswordField: ATLEAST: "عدد أحرف كلمة المرور لابد أن يكون على الأقل %s" BETWEEN: "عدد أحرف كلمة المرور لابد أن يكون بين %s و %s " - HAVETOMATCH: "كلمة المرور لابد أن تكون مطابقة" - LEASTONE: "كلمة المرور لابد أن تحتوي على الأقل على حرف واحد و رقم واحد" MAXIMUM: "عدد أحرف كلمة المرور لابد ألا يتجاوز %s" - NOEMPTY: "كلمة المرور لايمكن أن تكون فارغة" SHOWONCLICKTITLE: "تغيير كلمة المرور" CreditCardField: FIRST: "الأول" FOURTH: "الرابع" SECOND: "الثاني" THIRD: "الثالث" - VALIDATIONJS1: "فضلاً تأكد أنك قمت بإدخال " - VALIDATIONJS2: "رقم بطاقة الصراف صحيح" CurrencyField: CURRENCYSYMBOL: "$" - VALIDATIONJS: "فضلاً أدخل عملة صحيحة" DataObject: PLURALNAME: "بيانات كائن" SINGULARNAME: "بيانات كائن" @@ -102,7 +103,6 @@ ar: DateField: NOTSET: "غير محدد" TODAY: "اليوم" - VALIDATIONJS: "فضلاً أدخل تنسيق صحيح للتاريخ (DD/MM/YYYY)" VALIDDATEFORMAT2: "الرجاء إدخال تنسيق تاريخ صالح (%s)" VALIDDATEMAXDATE: "تاريخك يجب أن يكون أقدم أو مطابق لتاريخ الحد الأقصى المسموح به (%s)" VALIDDATEMINDATE: "تاريخك يجب أن يكون أحدث أو مطابق للتاريخ الحد الأدنى المسموح به (%s)" @@ -110,7 +110,6 @@ ar: CHOOSE: "(اختر)" EmailField: VALIDATION: "فضلاً أدخل عنوان البريد الإلكتروني" - VALIDATIONJS: "فضلاً أدخل بريد إلكتروني صحيح" Email_BounceRecord: PLURALNAME: "سجلات البريد الإلكتروني Bounce" SINGULARNAME: "سجل البريد الإلكتروني Bounce" @@ -125,7 +124,6 @@ ar: Name: "الاسم" PLURALNAME: "الملفات" SINGULARNAME: "الملف" - Sort: "ترتيب" TOOLARGE: "حجم الملف كبير جداً . الحجم الأقصى المسموح هو %s" Title: "العنوان" FileIFrameField: @@ -137,22 +135,6 @@ ar: FROMFILESTORE: "من مكتبة الملفات" NOSOURCE: "الرجاء اختيارمصدر ملف المرفق" REPLACE: "استبدال %s" - FileIFrameField.ss: - TITLE: "إطار رفع الصور" - Folder: - CREATED: "أول المرفوعات" - DELSELECTED: "حذف الملفات المحددة" - DETAILSTAB: "التفاصيل" - FILENAME: "اسم الملف" - FILESTAB: "الملفات" - LASTEDITED: "آخر المرفوعات" - PLURALNAME: "الملفات" - SINGULARNAME: "الملف" - TITLE: "العنوان" - TYPE: "النوع" - UPLOADTAB: "الرفع" - URL: "الرابط" - VIEWEDITASSET: "عرض / تعديل الأصل" ForgotPasswordEmail.ss: HELLO: "أهلاً" TEXT1: "هنا" @@ -175,13 +157,9 @@ ar: DefaultGroupTitleAdministrators: "الإدارة" DefaultGroupTitleContentAuthors: "مؤلفي المحتوى" Description: "الوصف" - IMPORTTABTITLE: "استيراد" - IPRestrictions: "قيود عناوين IP" Locked: "مغلق ؟" - PLURALNAME: "المجموعات" Parent: "المجموعة الرئيسة" RolesAddEditLink: "قوانين التعديل/الإضافة" - SINGULARNAME: "المجموعة" Sort: "ترتيب" has_many_Permissions: "الصلاحيات" many_many_Members: "الأعضاء" @@ -192,8 +170,6 @@ ar: ResultUpdated: "تحديث مجموعات %d " HtmlEditorField: ANCHORVALUE: "رابط" - BUTTONINSERTFLASH: "إدخال ملف فلاشي" - BUTTONINSERTIMAGE: "إدخال صورة" BUTTONINSERTLINK: "أدخل رابط" BUTTONREMOVELINK: "إزالة رابط" CAPTIONTEXT: "النص" @@ -204,7 +180,6 @@ ar: CSSCLASSRIGHT: "إلى اليمين ، مع التفاف النص" EMAIL: "بريد إلكتروني" FILE: "ملف" - FLASH: "فلاش" FOLDER: "المجلد" IMAGE: "صورة" IMAGEALTTEXT: "النص البديل - يظهر في حالة عدم ظهور الصورة" @@ -220,20 +195,11 @@ ar: LINKFILE: "تنزيل ملف" LINKINTERNAL: "صفحة في الموقع" LINKOPENNEWWIN: "فتح الرابط في نافذة جديدة ؟" - LINKTEXT: "نص رابط" LINKTO: "رابط إلى" PAGE: "صفحة" - SEARCHFILENAME: "بحث باسم الملف" - SHOWUPLOADFORM: "تحميل ملف" URL: "رابط" - Image: - PLURALNAME: "الملفات" - SINGULARNAME: "الملف" ImageField: IMAGE: "الصورة" - Image_Cached: - PLURALNAME: "الملفات" - SINGULARNAME: "الملف" Image_iframe.ss: TITLE: "إطار تحميل الصور" LeftAndMain: @@ -245,13 +211,9 @@ ar: PERMDEFAULT: "أدخل البريد الإلكتروني و الرقم السري للوصول إلى نظام إدارة المحتوى" PLEASESAVE: "فضلاً احفظ الصفحة: هذه الصفحة لا يمكن تحديثها لأنها لم تحفظ بعد" SAVED: "محفوظ" - LeftAndMain_right.ss: - WELCOMETO: "مرحياً بكـ" LoginAttempt: Email: "عنوان البريد الإلكتروني" IP: "عنوان IP" - PLURALNAME: "محاولات الدخول" - SINGULARNAME: "محاولة الدخول" Status: "الحالة" Member: ADDRESS: "العنوان" @@ -308,80 +270,39 @@ ar: ResultDeleted: "حذف %d أعضاء" ResultNone: "بدون تغيير" ResultUpdated: "تحديث %d أعضاء" - MemberPassword: - PLURALNAME: "كلمات مرور الأعضاء" - SINGULARNAME: "كلمة مرور العضو" - MemberTableField: - ADD: "إضافة" - ADDEDTOGROUP: "إضافة عضو إلى المجموعة" - ADDINGFIELD: "فشل الإضافة" - DeleteTitleText: "حذف نت هذه المجموعة" - DeleteTitleTextDatabase: "حذف من قاعدة البيانات و كل المجموعات" - ERRORADDINGUSER: "هناك خطأ عند إضافة عضو جديد إلى المجموعة : %s" - FILTER: "تصفية" - SEARCH: "بحث" ModelAdmin: - ADDBUTTON: "إضافة" - ADDFORM: "أكمل هذا النموذج لإضافة %s إلى قاعدة البيانات" - CHOOSE_COLUMNS: "اختر أعمدة النتائج" - CLEAR_SEARCH: "تجديد البحث" - CREATEBUTTON: "إنشاء %s" DELETE: "حذف" DELETEDRECORDS: "سجلات محذوفة %s" - FOUNDRESULTS: "البحث %s نتائج مطابقة" IMPORT: "استيراد من CSV" IMPORTEDRECORDS: "استيراد %s سجل" - ITEMNOTFOUND: "لايمكن إيجاد هذا العنصر" - LOADEDFOREDITING: "تحميل '%s' للتعديل" NOCSVFILE: "فضلاً استعرض ملف CSV للاستيراد" NOIMPORT: "لايوجد شيء للاستيراد" - NORESULTS: "لا نتائج" - SAVE: "حفظ" - SEARCHRESULTS: "بحث النتائج" - SELECTALL: "تحديد الكل" - SELECTNONE: "غير محدد" UPDATEDRECORDS: "سجلات محدثة %s" MoneyField: FIELDLABELAMOUNT: "الكمية" FIELDLABELCURRENCY: "العملة" - MyEntity: - MyNamespace: "القيمة الافتراضية للغة الطبيعية" - MyNamespace: - MYENTITY: "عدد الأشياء %s" NullableField: IsNullLabel: "باطل" NumericField: VALIDATION: "'%s' ليس رقم, الأرقام فقط يتم قبولها في هذا الحقل" - VALIDATIONJS: "ليس رقم ، الأرقام فقط هي التي يسمح بها في هذا الحقل" - Page: - PLURALNAME: "الصفحات" - SINGULARNAME: "الصفحات" Permission: AdminGroup: "الإدارة" + CMS_ACCESS_CATEGORY: "الوصل لنظام إدارة المحتوى" FULLADMINRIGHTS: "جميع صلاحيات الإدارة" FULLADMINRIGHTS_HELP: "يتضمن وينقض جميع الأذونات الأخرىالمساندة." - PLURALNAME: "الصلاحيات" - SINGULARNAME: "الصلاحية" PermissionCheckboxSetField: AssignedTo: "مساندة إلى \"%s\"" FromGroup: | توريت من المجموعة "%s" - FromRole: "توريث من القاعدة \"%s\"" + + FromRole: "توريث من القاعدة \"%s\"" FromRoleOnGroup: "توريث من القاعدة \"%s\" على المجموعة \"%s\"" - PermissionRole: - PLURALNAME: "القواعد" - SINGULARNAME: "قاعدة" - PermissionRoleCode: - PLURALNAME: "أكواد تصريح قاعدة" - SINGULARNAME: "كود تصريح قاعدة" Permissions: PERMISSIONS_CATEGORY: "تصاريح القاعدة والوصول" PhoneNumberField: VALIDATION: "فضلاً أدخل رقم هاتف صحيح" RelationComplexTableField.ss: ADD: "إضافة" - CSVEXPORT: "التصدير إلى CSV" - NOTFOUND: "لايوجد عناصر" ReportAdmin: MENUTITLE: "التقارير" Security: @@ -391,42 +312,28 @@ ar: CHANGEPASSWORDHEADER: "تغيير كلمة المرور" ENTERNEWPASSWORD: "فضلاً أدخل كلمة المرور الجديدة" ERRORPASSWORDPERMISSION: "يجب تسجيل الدخول لتتمكن من تغيير كلمة المرور" - IPADDRESSES: "عنوان IP" LOGGEDOUT: "تم تسجيل خروجك بنجاح ، إذا كنت ترغب بالدخول مرة أخرى فتفضل بتعبئة بياناتك بالأسفل" LOGIN: "دخول" - LOSTPASSWORDHEADER: "فقدت كلمة المرور" NOTEPAGESECURED: "هذه الصفحة محمية بكلمة مرور ، أدخل بيانات دخولك بالأسفل ليتم السماح لك بالوصول للصفحة" NOTERESETLINKINVALID: "

    رابط إعادة تهيئة كلمة المرور غير صحيح أو انتهى الوقت المحدد له

    يمكنك طلب رابط جديدhere أو تغيير كلمة المرور بعد تسجيل دخولك.

    " NOTERESETPASSWORD: "أدخل بريدك الإلكتروني و سيتم إرسال رابط إعادة تهيئة كلمة المرور " PASSWORDSENTHEADER: "رابط إعادة تهيئة كلمة المرور يرسل إلى '%s'" PASSWORDSENTTEXT: "شكراً لك ، رابط إعادة تهيئة كلمة المرور تم إ{ساله إلى '%s'" SecurityAdmin: - ADDMEMBER: "إضافة عضو" + ACCESS_HELP: "السماح بعرض واضافة وتعديلات المستخدمين ، فضلا عن تعيين أذونات والقواعد لهم." APPLY_ROLES: "تطبيق القواعد على المجموعات" APPLY_ROLES_HELP: "القدرة على تحرير الأدوار المسندة إلى مجموعة. يتطلب \"الحصول على إذن 'قسم الأمن'." EDITPERMISSIONS: "تعديل الصلاحيات و رقم الآي بي لكل مجموعة" EDITPERMISSIONS_HELP: "القدرة على تحرير أذونات وعناوين بروتوكول الإنترنت لمجموعة. يتطلب \"الحصول على إذن 'قسم الأمن'" GROUPNAME: "اسم المجموعة" - IPADDRESSESHELP: | -

    يمكنك تحديد هذه المجموعة لعناوين IP محددة في مدى محدد (مدى واحد في كل سطر).
    - المدى يمك أن يكون بالشكل التالي:
    - 203.96.152.12
    - 203.96.152/24
    - 203.96/16
    - 203/8

    - إذا أدخلت مدى واحد أو أكثر في هذا الحقل فالأعضاء سيكون لهم صلاحية هذه المجموعة إذا تم تسجيل دخولهم من أحد عناوين IP الصحيحة
    - هذا لن يمنع الزوار من الدخول. بسبب أن المستخدم نفسه قد يدخل إلى أجزاء من النظام بدون أي قيود في عناوين IP - MEMBERS: "الأعضاء" + MEMBERS: "الأعضاء" MENUTITLE: "الأمان" MemberListCaution: "تحذير : إزالة أعضاء من هذه القائمة إزالتها من جميع الفئات وقاعدة البيانات" NEWGROUP: "مجموعة جديدة" PERMISSIONS: "الصلاحيات" ROLES: "قواعد" ROLESDESCRIPTION: "هذا القسم يسمح لك بإضافة الأدوار إلى هذه المجموعة. قواعد المجموعات بمنطقية من الأذونات، والتي يمكن تعديلها في تبويب القواعد" - SGROUPS: "مجموعات الأمان" - TABIMPORT: "استيراد" TABROLES: "قواعد" - VIEWUSER: "عرض المستخدم" SecurityAdmin_MemberImportForm: BtnImport: "استيراد" FileFieldLabel: " CSV ملف (الامتداد المسموح :*.csv )" @@ -438,19 +345,14 @@ ar: ISREQUIRED: "في %s '%s' مطلوب" TableField.ss: ADD: "إضافة صف جديد" - ADDITEM: "إضافة %s" TableListField: CSVEXPORT: "تصدير إلى CSV" PRINT: "طباعة" SELECT: "اختيار" TableListField.ss: - NOITEMSFOUND: "لا توجد عناصر" SORTASC: "فرز في ترتيب تصاعدي" SORTDESC: "فرز في ترتيب تنازلي" TableListField_PageControls.ss: - DISPLAYING: "عرض" - OF: "من" - TO: "إلى" VIEWFIRST: "عرض الأول" VIEWLAST: "عرض الأخير" VIEWNEXT: "عرض التالي" diff --git a/lang/ast.yml b/lang/ast.yml index b1f0e6b30..b77052c53 100644 --- a/lang/ast.yml +++ b/lang/ast.yml @@ -1,9 +1,4 @@ ast: - AssetAdmin: - MENUTITLE: "Ficheros ya imaxes" - CMSMain: - MENUTITLE: "Páxines" - SAVE: "Guardar" ChangePasswordEmail.ss: CHANGEPASSWORDTEXT1: "Camudasti la contraseña pa" ComplexTableField.ss: @@ -25,34 +20,14 @@ ast: PLURALNAME: "Ficheros" SINGULARNAME: "Ficheru" TOOLARGE: "El tamañu de ficheru ye enforma grande, el máximu permitíu ye %s." - Folder: - PLURALNAME: "Ficheros" - SINGULARNAME: "Ficheru" Group: Code: "Códigu de grupu" Locked: "¿Bloquiáu?" - PLURALNAME: "Grupos" Parent: "Grupu padre" - SINGULARNAME: "Grupu" has_many_Permissions: "Permisos" many_many_Members: "Miembros" HtmlEditorField: - Image: - PLURALNAME: "Ficheros" - SINGULARNAME: "Ficheru" - Image_Cached: - PLURALNAME: "Ficheros" - SINGULARNAME: "Ficheru" - LeftAndMain: - HELP: "Ayuda" - PAGETYPE: "Triba de páxina:" - PERMAGAIN: "Terminó la to sesión nel CMS. Si quies volver a coneutar, escribi un nome d'usuariu y una contraseña abaxo." - PERMALREADY: "Lo sentimos, pero nun tienes accesu a esa parte del CMS. Si quies coneutar con otru nome, failo debaxo" - PERMDEFAULT: "Escueyi un métodu d'autenticación y escribi les tos credenciales p'acceder al CMS." - SAVED: "guardao" LoginAttempt: - PLURALNAME: "Intentos de conexón" - SINGULARNAME: "Intentu de conexón" Member: EMAIL: "Corréu" INTERFACELANG: "Llingua de la interfaz" @@ -64,38 +39,15 @@ ast: belongs_many_many_Groups: "Grupos" db_LockedOutUntil: "Bloquiáu fasta" db_PasswordExpiry: "Data d'espiración de la contraseña" - MemberPassword: - PLURALNAME: "Contraseñes del miembru" - SINGULARNAME: "Contraseña del miembru" - MemberTableField: - DeleteTitleText: "Desaniciar d'esti grupu" - DeleteTitleTextDatabase: "Desaniciar de la base de datos y de tolos grupos" - ModelAdmin: - CREATEBUTTON: "Crear '%s'" NullableField: IsNullLabel: "Ye nulu" - Page: - PLURALNAME: "Páxines" - SINGULARNAME: "Páxina" Permission: - PLURALNAME: "Permisos" - SINGULARNAME: "Permisu" PermissionCheckboxSetField: FromGroup: "heredáu del grupu \"%s\"" FromRole: "heredáu del rol \"%s\"" FromRoleOnGroup: "heredáu del rol \"%s\" nel grupu \"%s\"" - PermissionRole: - PLURALNAME: "Roles" - SINGULARNAME: "Rol" - PermissionRoleCode: - PLURALNAME: "Códigos del rol de permisu" - SINGULARNAME: "Códigu del rol de permisu" - ReportAdmin: - MENUTITLE: "Informes" Security: ALREADYLOGGEDIN: "Nun tienes accesu a esta páxina. Si tienes otra cuenta que pueda entrar nesta páxina, pues volver a coneutate." - SecurityAdmin: - MENUTITLE: "Seguridá" SiteTree: Versioned: has_many_Versions: "Versiones" diff --git a/lang/az.yml b/lang/az.yml index d782dca3c..fcd75be98 100644 --- a/lang/az.yml +++ b/lang/az.yml @@ -1,10 +1,5 @@ az: AssetAdmin: - CHOOSEFILE: "Faylı seç:" - MENUTITLE: "Fayllar və şəkillər" - NEWFOLDER: "Yeni Qovluq" - AssetAdmin_left.ss: - GO: "Get" BBCodeParser: ALIGNEMENT: "Yönlənmə" ALIGNEMENTEXAMPLE: "sağa yönəlmə" @@ -38,10 +33,7 @@ az: ANY: "İstənilən" NO: "Yox" YES: "Bəli" - CMSBatchActions: - PUBLISHED_PAGES: "%d ədəd səhifə dərc olunub, %d xəta" CMSMain: - MENUTITLE: "Səhifələr" SAVE: "Yadda saxla" ChangePasswordEmail.ss: CHANGEPASSWORDTEXT1: "Siz parolu bu url üçün dəyişdiniz" @@ -58,7 +50,6 @@ az: SUCCESSEDIT: "%s %s %s yadda saxlanıldı" ComplexTableField.ss: ADDITEM: "%s əlavə et" - NOITEMSFOUND: "Həç bir şey tapılmadı. " SORTASC: "Artma ilə sırala" SORTDESC: "Azalma ilə sırala" ComplexTableField_popup.ss: @@ -67,21 +58,15 @@ az: ConfirmedPasswordField: ATLEAST: "Parol ən azı %s simvol olmalıdır." BETWEEN: "Parol ən azı %s ən çoxu %s simvol olmalıdır." - HAVETOMATCH: "Şifrələr eyni olmalıdır." - LEASTONE: "Parol ən azı bir rəqəm və bir hərf təşkil etməlidir." MAXIMUM: "Parol ən çox %s simvol olmalıdır." - NOEMPTY: "Şifrə boş ola bilməz." SHOWONCLICKTITLE: "Parolu dəyiş" CreditCardField: FIRST: "birinci" FOURTH: "dördüncü" SECOND: "ikinci" THIRD: "üçüncü" - VALIDATIONJS1: "Əmin olun ki, " - VALIDATIONJS2: "kredit kart nömrəsini düzgün daxil etmisiniz." CurrencyField: CURRENCYSYMBOL: "$" - VALIDATIONJS: "Düzgün valyuta daxil edin." DataObject: PLURALNAME: "Data Obyektlər" SINGULARNAME: "Data Obyekt" @@ -102,13 +87,11 @@ az: DateField: NOTSET: "təyin edilməyib" TODAY: "bu gün" - VALIDATIONJS: "Düzgün zaman formatı daxil edin (DD-MM-YYYY)." VALIDDATEFORMAT2: "Zəhmət olmasa düzgün zaman formatı daxil edin (%s)" DropdownField: CHOOSE: "(Seçin)" EmailField: VALIDATION: "E-poçtu yazın." - VALIDATIONJS: "E-mail adresi daxil edin." Email_BounceRecord: PLURALNAME: "Email Bounce Records" SINGULARNAME: "Email Bounce Record" @@ -123,7 +106,6 @@ az: Name: "Ad" PLURALNAME: "Fayllar" SINGULARNAME: "Fayl" - Sort: "Sıralama" TOOLARGE: "Faylın ölçüsü çox böyükdür, maksimum %s olmalıdır." Title: "Başlıq" FileIFrameField: @@ -134,20 +116,6 @@ az: FROMFILESTORE: "Fayllar siyahısından" NOSOURCE: "Xahiş edirik əlavə etmək üçün source faylı seçin" REPLACE: "Əvəz et %s" - Folder: - CREATED: "Birinci yüklənmiş" - DELSELECTED: "Seçilmiş faylları sil" - DETAILSTAB: "Məlumatlar" - FILENAME: "Faylın adı" - FILESTAB: "Fayllar" - LASTEDITED: "Axırıncı yenilənmiş" - PLURALNAME: "Fayllar" - SINGULARNAME: "Fayl" - TITLE: "Başlıq" - TYPE: "Tip" - UPLOADTAB: "Köçür" - URL: "URL" - VIEWEDITASSET: "Aktivləri Göstər/Redakte " ForgotPasswordEmail.ss: HELLO: "Salam" TEXT1: "Burada sizin" @@ -170,34 +138,13 @@ az: DefaultGroupTitleAdministrators: "Administratorlar" DefaultGroupTitleContentAuthors: "Məzmun müəllifləri" Description: "Qısa təsvir" - IMPORTTABTITLE: "İmport" - IPRestrictions: "İP ünvan məhdudiyyətləri" Locked: "Bloklanıb?" - PLURALNAME: "Qruplar" Parent: "Valideyn qrupu" - RolesAddEditLink: "Rollar əlavə et/dəyiş" - SINGULARNAME: "Qrup" Sort: "Sıralama" has_many_Permissions: "Səlahiyyətlər" many_many_Members: "Üzvlər" - GroupImportForm: - Help1: "

    Qrupları CSV formatda import et (). Genişlənmiş formada istifadə

    " - Help2: | -
    -

    Genişlənmiş istifadə

    -
      -
    • İcazə verilən sütünlar: %s
    • -
    • Mövcud qruplar öz unikal kodları ilə tapılır və import olunmuş fayllardan öz qiymətlərini alır
    • -
    • Qrup ierarxiyası ParentCode sütunundan istifadə etməklə yarana bilər.
    • -
    • Səlahiyyət kodları PermissionCode sütunu ilə verilə bilər. Mövcud səlahiyyət kodları sıfırlanmır.
    • -
    -
    ResultCreated: "%d ədəd qrup yaradıldı" - ResultDeleted: "%d ədə qrup silindi" - ResultUpdated: "%d ədəd qrup yeniləndi" HtmlEditorField: ANCHORVALUE: "Ankor" - BUTTONINSERTFLASH: "Flash əlavə et" - BUTTONINSERTIMAGE: "Şəkil əlavə et" BUTTONINSERTLINK: "Link əlavə et" BUTTONREMOVELINK: "Linki sil" CAPTIONTEXT: "Mətn" @@ -208,7 +155,6 @@ az: CSSCLASSRIGHT: "Sağda, mətnin kəsilməsi ilə." EMAIL: "E-poçt ünvanı" FILE: "Fayl" - FLASH: "Flash" FOLDER: "Qovluq" IMAGE: "Şəkil" IMAGEDIMENSIONS: "Ölçülər" @@ -222,36 +168,14 @@ az: LINKFILE: "Faylı yüklə" LINKINTERNAL: "Saytda olan səhifə" LINKOPENNEWWIN: "Link yeni pəncərədə açılsın?" - LINKTEXT: "Link mətni" LINKTO: "Linki qoy" PAGE: "Səhifə" - SEARCHFILENAME: "Faylın adına görə axtar" - SHOWUPLOADFORM: "Fayl köçür" URL: "URL" - Image: - PLURALNAME: "Fayllar" - SINGULARNAME: "Fayl" ImageField: IMAGE: "Şəkil" - Image_Cached: - PLURALNAME: "Fayllar" - SINGULARNAME: "Fayl" - LeftAndMain: - CANT_REORGANISE: "Bu sayt ierarxiyasını sıralamağa icazə yoxdur. Dəyişiklik yadda saxlanılmadı." - HELP: "Kömək" - PAGETYPE: "Səhifənin tipi:" - PERMAGAIN: "Siz CMS-dən çıxdınız. Əgər yenidən daxil olmaq istəyirsinizsə, istifadəçi adı və parolu yazın." - PERMALREADY: "Sizin CMS-in bu hissəsinə daxil olmaq üçün icazəniz yoxdur. Əgər başqa adla daxil olmaq istəyirsinizsə davam edin" - PERMDEFAULT: "Zəhmət olmasa autentifikasiya metodunu seçin və CMS-ə daxil o lmaq üçün rekvizitlərinizi yazın." - PLEASESAVE: "Zəhmət olmasa səhifəni yadda saxlayın: Bu səhifə yenilənə bilməz, çünki, yadda saxlanılmayıb." - SAVED: "yadda saxlanıldı" - LeftAndMain_right.ss: - WELCOMETO: "Xoş gəlmisiniz" LoginAttempt: Email: "E-poçt" IP: "İP ünvan" - PLURALNAME: "Daxil olma cəhdləri" - SINGULARNAME: "Daxil olma cəhdi" Status: "Status" Member: ADDRESS: "Ünvan" @@ -303,96 +227,28 @@ az: db_PasswordExpiry: "Parolun etibarlılığının bitmə vaxtı" MemberAuthenticator: TITLE: "E-poçt & Parol" - MemberImportForm: - Help1: | -

    Üzvləri CSV formatda import et. Genişlənmiş formada istifadə

    - Help2: | -
    -

    Genişlənmiş istifadə

    -
      -
    • İcazə verilən sütünlar: %s
    • -
    • Mövcud istifadəçilər öz unikal kodları ilə tapılır və import olunmuş fayllardan öz qiymətlərini alır
    • -
    • Qruplar Groups sütünü ilə mənimsədilə bilər. Qruplar öz Code parametri ilə identifikasiya olunur, bir neçə qrup vergüllə ayrılır. Mövcud qrup üzvlükləri sıfırlanmır.
    • -
    -
    ResultCreated: "%d ədəd üzv yaradıldı" - ResultDeleted: "%d üzv silinib" - ResultNone: "Dəyişiklik yoxdur" - ResultUpdated: "%d ədəd üzv dəyişildi" - MemberPassword: - PLURALNAME: "Üzvlərin parolları" - SINGULARNAME: "Üzvün parolu" - MemberTableField: - ADD: "Əlavə et" - ADDEDTOGROUP: "Üzv qrupa əlavə olundu" - ADDINGFIELD: "Əlavə olunmadı" - DeleteTitleText: "Bu qrupdan sil" - DeleteTitleTextDatabase: "Verilənlər bazasından və bütün qruplardan sil" - ERRORADDINGUSER: "Göstərilən qrupa istifadəçini əlavə etmək mümkün olmadı: %s" - FILTER: "Filtr" - SEARCH: "Axtarış" - ModelAdmin: - ADDBUTTON: "Əlavə et" - ADDFORM: "Formanı doldurun və %s-nu verilənlər bazasına əlavə edin." - CHOOSE_COLUMNS: "Nəticə sütunlarını seç..." - CLEAR_SEARCH: "Təmizlə" - CREATEBUTTON: "'%s' yarat" - DELETE: "Sil" - DELETEDRECORDS: "%s yazı silindi." - FOUNDRESULTS: "Axtarış nəticəsində %s nəticə tapıldı" - IMPORT: "CSV fayldan import et" - IMPORTEDRECORDS: "%s yazı import olundu." - ITEMNOTFOUND: "Tapılmır" - LOADEDFOREDITING: "Dəyişmək üçün '%s' yükləndi." - NOCSVFILE: "Zəhmət olmasa CSV faylı import etmək üçün seçin" - NOIMPORT: "İmport etməyə heç bir şey yoxdur" - NORESULTS: "Nəticə yoxdur" - SAVE: "Yadda saxla" - SEARCHRESULTS: "Axtarış nəticələri" - SELECTALL: "hamısını seç" - SELECTNONE: "heç biri" - UPDATEDRECORDS: "%s yazı yeniləndi." MoneyField: FIELDLABELAMOUNT: "Miqdar" FIELDLABELCURRENCY: "Valyuta" - MyEntity: - MyNamespace: "Susmaya görə dil" - MyNamespace: - MYENTITY: "%s ədə sayılıb" NullableField: IsNullLabel: "Boşdur" NumericField: VALIDATION: "'%s' rəqəm deyil, bu sahədə yalnız rəqəmlər daxil edilə bilər" - VALIDATIONJS: "rəqəm deyil, bu sahədə yalnız rəqəmlər ola bilər" - Page: - PLURALNAME: "Səhifələr" - SINGULARNAME: "Səhifə" Permission: AdminGroup: "Administrator" FULLADMINRIGHTS: "Tam administrativ hüquqlar" FULLADMINRIGHTS_HELP: "Başqa təyin edilmiş bütün icazələr rədd olunur." - PLURALNAME: "Səlahiyyətlər" - SINGULARNAME: "Səlahiyyət" PermissionCheckboxSetField: AssignedTo: "mənimsədilib \"%s\"" FromGroup: "\"%s\" qrupundan törəyib" FromRole: "\"%s\" rolundan törəyib" FromRoleOnGroup: "\"%s\" rolundan \"%s\" qrupunda törəyib" - PermissionRole: - PLURALNAME: "Rollar" - SINGULARNAME: "Rol" - PermissionRoleCode: - PLURALNAME: "Səlahiyyət rolu kodları" - SINGULARNAME: "Səlahiyyət rolu kodu" Permissions: - PERMISSIONS_CATEGORY: "Rollar və icazə səlahiyyətləri" + PERMISSIONS_CATEGORY: "İcazələr" PhoneNumberField: VALIDATION: "Düzgün telefon nömrəsi daxil et." RelationComplexTableField.ss: ADD: "Əlavə et" - CSVEXPORT: "CSV-yə eksport et" - NOTFOUND: "Heç nə tapılmadı" - ReportAdmin: - MENUTITLE: "Hesabatlar" Security: ALREADYLOGGEDIN: "Sizin bu səhifəyə icazəniz yoxdur. Əgər bu səhifəyə icazəsi olan başqa profiliniz varsa hesabınıza daxil olun" BUTTONSEND: "Parolu sıfırlama linkini göndər" @@ -400,40 +256,18 @@ az: CHANGEPASSWORDHEADER: "Parolu dəyiş" ENTERNEWPASSWORD: "Yeni şifrəni daxil edin." ERRORPASSWORDPERMISSION: "Parolu dəyişmək üçün hesaba daxil olmalısınız!" - IPADDRESSES: "İP ünvanlar" LOGGEDOUT: "Hesabdan çıxdınız. Yenidən daxil olmaq üçün məlumatları daxil edin." LOGIN: "Daxil ol" - LOSTPASSWORDHEADER: "Parol itib" NOTEPAGESECURED: "Səhifə təhlükəsizdir. Məlumatları daxil edin və biz sizə göndərəcəyik. " NOTERESETLINKINVALID: "

    Parolu sıfırlama linki düzgün deyil yaxud vaxtı keçib.

    Yenisini əldə etmək üçün buraya keçin yaxud daxil olub parolunuzu dəyişin.

    " NOTERESETPASSWORD: "E-poçtunuzu daxil edin və parol sıfırlama linkini göndərəcəyik" PASSWORDSENTHEADER: "'%s' e-poçtuna parolun sıfırlanma linki göndərildi" PASSWORDSENTTEXT: "Çox sağolun! Hesabınızı təkrar quraşdırılmasl üçün keçid '%s' göndərildi." SecurityAdmin: - ADDMEMBER: "Üzv Əlavə et" - APPLY_ROLES: "Qruplara rollar tətbiq et " - APPLY_ROLES_HELP: "Qrupa mənimsədilmiş rolları dəyişmək imkanı. \"'Təhlükəsizlik' bölməsinə icazə\" səlahiyyəti tələb olunur." - EDITPERMISSIONS: "Qrup üçün səlahiyyətlərə nəzarət et" - EDITPERMISSIONS_HELP: "Qrup üzrə səlahiyyətləri və İP ünvanları dəyişmə imkanı. \"'Təhlükəsizlik' bölməsinə icazə\" səlahiyyəti tələb olunur." GROUPNAME: "Qrupun adı" - IPADDRESSESHELP: | -

    Siz bu qrupun girişini İP ünvanlar diapazonuna daxil edə bilərsiniz(hər ip ünvan bir sətirdə olmaqla).
    İP ünvanlar aşağıdakı kimi olmalıdır:
    - 203.96.152.12
    - 203.96.152/24
    - 203.96/16
    - 203/8

    Siz bir və ya bir neçə İP ünvan daxil etdikdə, bu qrupun üzvləri yalnız bu İP ünvanlardan daxil olduqda verilən səlahiyyətləri icra bilərlər. Bu hər kəsi daxil olmağa qadağan etmir. MEMBERS: "Üzvlər" - MENUTITLE: "Təhlükəsizlik" - MemberListCaution: "Diqqət: İstifadəçilərin bu siyahıdan silinməsi, onların bütün qruplardan və verilənlər bazasından silinməsinə səbəb olacaq" - NEWGROUP: "Yeni qrup" + MEMBERS: "Üzvlər" PERMISSIONS: "Səlahiyyətlər" ROLES: "Rollar" - SGROUPS: "Təhlükəsizlik qrupu" - TABIMPORT: "İmport" - TABROLES: "Rollar" - VIEWUSER: "İstifadəçiyə bax" - SecurityAdmin_MemberImportForm: - BtnImport: "İmport" - FileFieldLabel: "CSV fayl (İcazəli genişlənmələr: *.csv)" SimpleImageField: NOUPLOAD: "Şəkil yüklənməmişdir" SiteTree: @@ -442,23 +276,18 @@ az: ISREQUIRED: "%s-da '%s' tələb olunur" TableField.ss: ADD: "Yeni sətir əlavə et" - ADDITEM: "%s - i Əlavə et" TableListField: CSVEXPORT: "CSV-yə ixrac et" PRINT: "Çap et" SELECT: "Seç:" TableListField.ss: - NOITEMSFOUND: "Heç bir şey tapılmadı" - SORTASC: "Artan sıralama ilə düz" - SORTDESC: "Azalan sıralama ilə düz" + SORTASC: "Artma sırası ilə sırala" + SORTDESC: "Azalma sırası ilə sırala" TableListField_PageControls.ss: - DISPLAYING: "Göstərilir" - OF: "dan" - TO: "a" VIEWFIRST: "Birinciyə bax" - VIEWLAST: "Sonuncuya bax" + VIEWLAST: "Axırıncı baxılmış" VIEWNEXT: "Növbəti" - VIEWPREVIOUS: "Əvvəlki" + VIEWPREVIOUS: "Əvvəlkinə bax" TimeField: VALIDATEFORMAT: "Düzgün zaman formatı daxil edin (%s)" ToggleCompositeField.ss: diff --git a/lang/bg.yml b/lang/bg.yml index 948388da0..8834ce6a3 100644 --- a/lang/bg.yml +++ b/lang/bg.yml @@ -1,10 +1,4 @@ bg: - AssetAdmin: - CHOOSEFILE: "Избери файл" - MENUTITLE: "Файлове & Изображения" - NEWFOLDER: "Нова папка" - AssetAdmin_left.ss: - GO: "Давай" BBCodeParser: ALIGNEMENT: "Подреждане" ALIGNEMENTEXAMPLE: "подреди в дясно" @@ -34,9 +28,6 @@ bg: ENTERINFO: "Моля, въведете потребителско име и парола." ERRORNOTADMIN: "Този потребител не е администратор." ERRORNOTREC: "Това потребителско име / парола не е разпознато" - CMSMain: - MENUTITLE: "Съдържание на сайта" - SAVE: "Съхрани" ChangePasswordEmail.ss: CHANGEPASSWORDTEXT1: "Вие сменихте вашата парола за" CHANGEPASSWORDTEXT2: "Вече можете да ползвате следните данни за вход:" @@ -44,12 +35,10 @@ bg: HELLO: "Здравей!" PASSWORD: "Парола" ComplexTableField: - CLOSEPOPUP: "Затвори прозорец" SUCCESSADD: "Добавено %s %s %s" SUCCESSEDIT: "Съхранено %s %s %s" ComplexTableField.ss: ADDITEM: "Добави %s" - NOITEMSFOUND: "Нито един от елементите не беше открит" SORTASC: "Възходящ" SORTDESC: "Низходящ" ComplexTableField_popup.ss: @@ -58,20 +47,15 @@ bg: ConfirmedPasswordField: ATLEAST: "Паролите трябва да бъдат поне %s символа дълги." BETWEEN: "Паролите трябва да бъдат от %s до %s символа дълги." - HAVETOMATCH: "Паролите трябва да съвпадат." - LEASTONE: "Паролите трябва да съдържат поне една цифра и една буква." MAXIMUM: "Паролите може да бъдат най-много %s символа дълги." - NOEMPTY: "Паролите неможе да бъдат празни." + SHOWONCLICKTITLE: "Промяна на парола" CreditCardField: FIRST: "първи" FOURTH: "четвърти" SECOND: "втори" THIRD: "трети" - VALIDATIONJS1: "Моля подсигурете се че сте въвели правилно" - VALIDATIONJS2: "номера на кредитната карта" CurrencyField: CURRENCYSYMBOL: "$" - VALIDATIONJS: "Моля въведете валидна валута." Date: DAY: "ден" DAYS: "дни" @@ -83,31 +67,22 @@ bg: MONTHS: "месеци" SEC: "секунда" SECS: "секунди" + TIMEDIFFAGO: "преди %s" YEAR: "година" YEARS: "години" DateField: NOTSET: "Не нагласено" TODAY: "днес" - VALIDATIONJS: "Моля въведете правилен формат за дата (ДД/ММ/ГГГГ)." DropdownField: CHOOSE: "(Избери)" EmailField: VALIDATION: "Моля, въведете email адрес" - VALIDATIONJS: "Моля въведете мейл адрес." File: + INVALIDEXTENSION: "Непозволен тип файл (позволени: %s)" NOFILESIZE: "Размер на файла е нула байта." - Folder: - CREATED: "Първо качени" - DELSELECTED: "Изтрий избраните файлове" - DETAILSTAB: "Детайли" - FILENAME: "Файл име" - FILESTAB: "Файлове" - LASTEDITED: "Последно променени" - TITLE: "Заглавие" - TYPE: "Вид" - UPLOADTAB: "Качи " - URL: "URL" - VIEWEDITASSET: "Виж/Промени Актив" + PLURALNAME: "Файлове" + SINGULARNAME: "Файл" + TOOLARGE: "Файлът е прекалено голям, позволена големина - до %s." ForgotPasswordEmail.ss: HELLO: "Здравей!" TEXT1: "Ето вашият" @@ -125,10 +100,12 @@ bg: VALIDCURRENCY: "Моля, въведете валидна валута." FormField: NONE: "никой" + Group: + Locked: "Заключена?" + has_many_Permissions: "Разрешения" + many_many_Members: "Членове" HtmlEditorField: ANCHORVALUE: "Котва" - BUTTONINSERTFLASH: "Въведи Flash" - BUTTONINSERTIMAGE: "Въведи изображение" BUTTONINSERTLINK: "Вмъкни препратка" BUTTONREMOVELINK: "Премахни препратка" CSSCLASS: "Подравняване / стил" @@ -138,7 +115,6 @@ bg: CSSCLASSRIGHT: "В дясно, с текст който да се нанася около него" EMAIL: "email адрес" FILE: "Файл" - FLASH: "Flash" FOLDER: "Папка" IMAGE: "Изображение" IMAGEDIMENSIONS: "Размери" @@ -157,14 +133,7 @@ bg: URL: "URL" Image_iframe.ss: TITLE: "Качване на изображението Iрамка" - LeftAndMain: - HELP: "Помощ" - PAGETYPE: "Вид страница:" - PERMAGAIN: "Вие излязохте от CMS. Ако искате да влезнете отново, моля въведете потребителско име и парола." - PERMALREADY: "Съжелявам, но нямате достъп до тази част от CMS. Ако искате да влезете с друго потребителско име, моля направете го по-долу" - PERMDEFAULT: "Въведете мейл адреса и паролата си за да влезните в CMS." - PLEASESAVE: "Моля, съхранете страницата: Тази страница не може да се актуализира защото още не е запазена." - SAVED: "съхранено" + LoginAttempt: Member: ADDRESS: "Адрес" BUTTONCHANGEPASSWORD: "Променете паролата" @@ -191,39 +160,28 @@ bg: NEWPASSWORD: "Нова парола" PASSWORD: "Парола" PHONE: "Домашен телефон" + PLURALNAME: "Членове" REMEMBERME: "Запомни ме за следващия път?" + SINGULARNAME: "Член" SUBJECTPASSWORDCHANGED: "Вашата парола беше променена" SUBJECTPASSWORDRESET: "Връзка за изчистване на вашата парола" SURNAME: "Фамилия" VALIDATIONMEMBEREXISTS: "Вече съществува потребител с този email" WELCOMEBACK: "Добре дошли отново, %s" YOUROLDPASSWORD: "Вашата стара парола" + belongs_many_many_Groups: "Групи" + db_LockedOutUntil: "Заключен до" + db_PasswordExpiry: "Дата на изтичане валидността на паролата" MemberAuthenticator: TITLE: "email и парола" - MemberTableField: - ADD: "Добави" - ADDEDTOGROUP: "Добавен член към група" - ADDINGFIELD: "Добавянето провалено" - FILTER: "Филтър" - SEARCH: "Търсене" - ModelAdmin: - ADDBUTTON: "Добави" - CLEAR_SEARCH: "Изчисти търсенето" - DELETE: "Изтрий" - IMPORT: "Внеси от CSV" - SAVE: "Съхрани" - SEARCHRESULTS: "Резултати от търсенето" NumericField: VALIDATION: "'%s' не е число, в това поле са позволени само числа" - VALIDATIONJS: "не е номер, само номера може да бъдат въведени тук" Permission: FULLADMINRIGHTS: "Пълни административни права" PhoneNumberField: VALIDATION: "Моля, въведете валиден телефонен номер" RelationComplexTableField.ss: ADD: "Добави" - CSVEXPORT: "Изнеси на CSV" - NOTFOUND: "Няма намерени предмети" Security: ALREADYLOGGEDIN: "Вие нямате достъп до тази страница. Ако имате друг акаунт, с който може да влезете в тази страница, въведете го по-долу." BUTTONSEND: "Пратете ми линка за промяна на паролата" @@ -231,29 +189,16 @@ bg: CHANGEPASSWORDHEADER: "Сменете вашата парола" ENTERNEWPASSWORD: "Моля, въведете нова парола." ERRORPASSWORDPERMISSION: "Трябва да сте влезли, за да можете да промените вашата парола!" - IPADDRESSES: "IP Адреси" LOGGEDOUT: "Вие излязохте. Ако искате да влезнете отново, въведете вашите данни по-долу." LOGIN: "Влезте в системата" - LOSTPASSWORDHEADER: "Забравена парола" NOTEPAGESECURED: "Тази страница е защитена. Вкарайте вашите данни по-долу и ще ви препратим по-нататък." NOTERESETPASSWORD: "Въведете вашият email адрес и ще ви изпратим линк с който ще можете да смените паролата си" PASSWORDSENTHEADER: "Линк за смяна на паролата е изпратен на '%s'" PASSWORDSENTTEXT: "Благодарим ви! Линка за смяна на паролота беше изпратен на '%s'." SecurityAdmin: - ADDMEMBER: "Добави член" - EDITPERMISSIONS: "Промени разрешенията и IP адресите за всяка група" GROUPNAME: "Име на група" - IPADDRESSESHELP: | -

    Можете да ограничите тази група на специфичен IP обсег. Въведете 1 обсег на линия. Може да бъдат въведени IP адрес по следния начин:
    - 203.96.152.12
    - 203.96.152/24
    - 203.96/16
    - 203/8

    Ако въведете един или повече IP адреси тук, потребителите ще имат правата на тази група само когато се впишат използвайки някои от IP адресите посочени тук. Това няма да предотврати потребителите да се вписват. Това е защото същият потребител може да има права да се вписва и да има достъп до определени места в системата без да има някакви IP ограничения. MEMBERS: "Потребители" - MENUTITLE: "Сигурност" - NEWGROUP: "Нова група" + MEMBERS: "Потребители" PERMISSIONS: "Разрешения" - SGROUPS: "Групи за сигурност" - VIEWUSER: "Виж Потребител" SimpleImageField: NOUPLOAD: "Няма качени изображения" SiteTree: @@ -266,9 +211,6 @@ bg: CSVEXPORT: "Експортирай на CSV" PRINT: "Принтирай" TableListField_PageControls.ss: - DISPLAYING: "Показани" - OF: "от" - TO: "за" VIEWFIRST: "Преглед на първото" VIEWLAST: "Преглед на последното" VIEWNEXT: "Преглед на следващото" @@ -279,3 +221,5 @@ bg: ToggleField: LESS: "по-малко" MORE: "повече" + Versioned: + has_many_Versions: "Версии" diff --git a/lang/bs.yml b/lang/bs.yml index 2ae94b9a8..580911083 100644 --- a/lang/bs.yml +++ b/lang/bs.yml @@ -1,10 +1,17 @@ bs: AssetAdmin: - CHOOSEFILE: "Izaberite datoteku" MENUTITLE: "Datoteke i slike" NEWFOLDER: "NoviDirektorij" - AssetAdmin_left.ss: - GO: "Idi" + AssetTableField: + CREATED: "Prvo postavljeno" + DIM: "Dimenzije" + FILENAME: "Ime datoteke" + LASTEDIT: "Zadnja promjena" + OWNER: "Vlasnik" + SIZE: "Veličina" + TITLE: "Naslov" + TYPE: "Tip" + URL: "URL" BBCodeParser: ALIGNEMENT: "Poravnanje" ALIGNEMENTEXAMPLE: "desno poravnanje" @@ -35,6 +42,7 @@ bs: ERRORNOTADMIN: "Ovaj korisnik nije administrator." ERRORNOTREC: "Korisničko ime / šifra nije prepoznata" CMSMain: + ACCESS: "Pristup do %s u CMS-u" MENUTITLE: "Sadržaj stranice" SAVE: "Snimi" ChangePasswordEmail.ss: @@ -43,7 +51,6 @@ bs: HELLO: "Pozdrav" ComplexTableField.ss: ADDITEM: "Dodaj %S" - NOITEMSFOUND: "Nema pronađenih stavki" SORTASC: "Uzlazno raszvrstavanje" SORTDESC: "Silazno razvrstavanje" ComplexTableField_popup.ss: @@ -52,20 +59,14 @@ bs: ConfirmedPasswordField: ATLEAST: "Šifre moraju sadržavati najmanje %s znakova." BETWEEN: "Šifre moraju sadržavati %s do %s znakova." - HAVETOMATCH: "Šifre se moraju slagati" - LEASTONE: "Šifre moraju sadržavati najmanje jedan broj i jedan alfanumerički znak." MAXIMUM: "Šifre mogu sadržavati najviše %s znakova." - NOEMPTY: "Polja za unos šifre ne smiju biti prazna." CreditCardField: FIRST: "prvo" FOURTH: "četvrto" SECOND: "drugo" THIRD: "treće" - VALIDATIONJS1: "Molimo provjerite da li ste unijeli" - VALIDATIONJS2: "broj kreditne kartice ispravno." CurrencyField: CURRENCYSYMBOL: "KM" - VALIDATIONJS: "Molimo, unesite ispravnu valutu." Date: DAY: "dan" DAYS: "dani" @@ -82,26 +83,12 @@ bs: DateField: NOTSET: "nije postavljeno" TODAY: "danas" - VALIDATIONJS: "Molimo unesite ispravan oblik datuma (DD-MM-YYYY)." DropdownField: CHOOSE: "(Izaberite)" EmailField: VALIDATION: "Molimo, unesite e-mail adresu." - VALIDATIONJS: "Molimo unesite e-mail adresu." File: NOFILESIZE: "Veličina datoteke je nula bajta." - Folder: - CREATED: "Prvo postavljeno" - DELSELECTED: "Izbriši izabrane datoteke" - DETAILSTAB: "Detalji" - FILENAME: "Ime datoteke" - FILESTAB: "Datoteke" - LASTEDITED: "Posljednje postavljeno" - TITLE: "Naslov" - TYPE: "Tip" - UPLOADTAB: "Postavi na server" - URL: "URL" - VIEWEDITASSET: "Pregledaj/Izmijeni aktivu" ForgotPasswordEmail.ss: HELLO: "Pozdrav" TEXT1: "Ovo je Vaš" @@ -121,8 +108,6 @@ bs: NONE: "ništa" HtmlEditorField: ANCHORVALUE: "Sidro" - BUTTONINSERTFLASH: "Ubaci Flash" - BUTTONINSERTIMAGE: "Ubaci sliku" BUTTONINSERTLINK: "Ubaci link" BUTTONREMOVELINK: "Ukloni link" CSSCLASS: "Poravnanje / stil" @@ -132,7 +117,6 @@ bs: CSSCLASSRIGHT: "Desno, sa okruženim tekstom." EMAIL: "E-mail adresa" FILE: "Datoteka" - FLASH: "Flash" FOLDER: "Direktorij" IMAGE: "Slika" IMAGEDIMENSIONS: "Dimenzije" @@ -194,22 +178,14 @@ bs: YOUROLDPASSWORD: "Vaša stara šifra" MemberAuthenticator: TITLE: "E-mail i šifra" - MemberTableField: - ADD: "Dodaj" - ADDEDTOGROUP: "Dodaj člana u grupu" - ADDINGFIELD: "Neuspješno dodavanje" - FILTER: "Filter" - SEARCH: "Pretraga" NumericField: VALIDATION: "'%s' nije broj. U ovo polje možete unijeti samo brojeve" - VALIDATIONJS: "nije broj, samo se brojevi mogu unositi u ovo polje" Permission: FULLADMINRIGHTS: "Puna administrativna ovlaštenja" PhoneNumberField: VALIDATION: "Molimo, unesite ispravan broj telefona" RelationComplexTableField.ss: ADD: "Dodaj" - NOTFOUND: "Nema pronađenih stavki" Security: ALREADYLOGGEDIN: "Ne možete pristupiti ovoj stranici. Ukoliko imate drugi korisnički račun koji može pristupiti ovoj stranici, prijavite si ispod." BUTTONSEND: "Pošalji mi link za ponovno podešavanje šifre" @@ -217,29 +193,19 @@ bs: CHANGEPASSWORDHEADER: "Promijenite Vašu šifru" ENTERNEWPASSWORD: "Molimo, unesite novu šifru." ERRORPASSWORDPERMISSION: "Morate se prijaviti kako bi promijenili Vašu šifru." - IPADDRESSES: "IP adrese" LOGGEDOUT: "Odjavljeni ste. Ukoliko se želite ponovo prijaviti, unesite Vaše podatke ispod." LOGIN: "Prijava" - LOSTPASSWORDHEADER: "Izgubljena šifra" NOTEPAGESECURED: "Ova stranica je osigurana. Unesite Vaše podatke i poslat ćemo Vam sadržaj." NOTERESETPASSWORD: "Unesite Vašu e-mail adresu na koju ćemo Vam poslati link za ponovno podešavanje Vaše šifre." PASSWORDSENTHEADER: "Link za ponovno podešavanje šifre je poslan na adresu '%s'" PASSWORDSENTTEXT: "Zahvaljujemo! Link za ponovno podešavanje šifre je poslan na adresu '%s'." SecurityAdmin: - ADDMEMBER: "Dodaj člana" EDITPERMISSIONS: "Izmijeni ovlaštenja i IP adrese na svakoj grupi" GROUPNAME: "Ime grupe" - IPADDRESSESHELP: | -

    Možete ograničiti ovu grupu na određeni opseg IP adresa (jedan opseg po liniji).
    Opseg može biti u bilo kojem od slijedećih oblika:
    - 203.96.152.12
    - 203.96.152/24
    - 203.96/16
    - 203/8

    Ako unesete u polje jedan ili više opsega IP adresa, samo korisnici koji se prijave sa jedne od dozvoljenih IP adresa će dobiti ovlaštenje da budu u ovoj grupi. To neće spriječiti ljude da se prijave. MEMBERS: "Članovi" + MEMBERS: "Članovi" MENUTITLE: "Sigurnost" NEWGROUP: "Nova grupa" PERMISSIONS: "Ovlaštenja" - SGROUPS: "Sigurnosne grupe" - VIEWUSER: "Pregledaj korisnika" SimpleImageField: NOUPLOAD: "Nijedna slika nije postavljena" SiteTree: @@ -252,8 +218,6 @@ bs: CSVEXPORT: "Izvezi u CSV" PRINT: "Štampaj" TableListField_PageControls.ss: - OF: "od" - TO: "do" ToggleCompositeField.ss: HIDE: "Sakrij" SHOW: "Prikaži" diff --git a/lang/ca.yml b/lang/ca.yml index 9b9ab6c62..cbc415ace 100644 --- a/lang/ca.yml +++ b/lang/ca.yml @@ -1,10 +1,17 @@ ca: AssetAdmin: - CHOOSEFILE: "Trieu un fitxer" MENUTITLE: "Fitxers i imatges" NEWFOLDER: "NovaCarpeta" - AssetAdmin_left.ss: - GO: "Vés" + AssetTableField: + CREATED: "Carregat per primer cop" + DIM: "Dimensions" + FILENAME: "Nom del fitxer" + LASTEDIT: "Darrer canvi" + OWNER: "Propietari" + SIZE: "Mida" + TITLE: "Títol" + TYPE: "Tipus" + URL: "URL" BBCodeParser: ALIGNEMENT: "Alineació" ALIGNEMENTEXAMPLE: "alineat a la dreta" @@ -35,6 +42,7 @@ ca: ERRORNOTADMIN: "Aquest usuari no és un administrador." ERRORNOTREC: "Aquest nom d'usuari / contrasenya no es reconeix" CMSMain: + ACCESS: "Accés a %s al SGC" MENUTITLE: "Contingut del web" SAVE: "Desa" ChangePasswordEmail.ss: @@ -49,7 +57,6 @@ ca: SUCCESSEDIT: "S'ha desat %s %s %s" ComplexTableField.ss: ADDITEM: "Afegir %s" - NOITEMSFOUND: "No s'han trobat elements" SORTASC: "Ordena ascendentment" SORTDESC: "Ordena descendentment" ComplexTableField_popup.ss: @@ -58,21 +65,15 @@ ca: ConfirmedPasswordField: ATLEAST: "Les contrasenyes han de ser almenys de %s caràcters." BETWEEN: "Les contrasenyes han de ser de entre %s i %s caràcters." - HAVETOMATCH: "Les contrasenyes han de coincidir." - LEASTONE: "Les contrasenyes han de tenir almenys un dígit i un caràcter alfanumèric." MAXIMUM: "Les contrasenyes han de ser com a molt de %s caràcters." - NOEMPTY: "Les contrasenyes no poden estar buides." SHOWONCLICKTITLE: "Canvia la contrasenya" CreditCardField: FIRST: "primer" FOURTH: "quart" SECOND: "segon" THIRD: "tercer" - VALIDATIONJS1: "Si us plau, assegureu-vos d'haver introduït el" - VALIDATIONJS2: "nombre de targeta de crèdit correctament." CurrencyField: CURRENCYSYMBOL: "€E" - VALIDATIONJS: "Si us plau, introduïu una moneda vàlida." DataObject: PLURALNAME: "Objectes de dades" SINGULARNAME: "Objecte de dades" @@ -93,12 +94,10 @@ ca: DateField: NOTSET: "no definit" TODAY: "avui" - VALIDATIONJS: "Si us plau, introduïu un format de data vàlid (DD/MM/YYYY)." DropdownField: CHOOSE: "(Trieu)" EmailField: VALIDATION: "Si us plau, introduïu una adreça de correu electrònic." - VALIDATIONJS: "Si us plau, introduïu una adreça de correu vàlida." File: Content: "Contingut" Filename: "Nom del fitxer" @@ -107,23 +106,8 @@ ca: Name: "Nom" PLURALNAME: "Fitxers" SINGULARNAME: "Fitxer" - Sort: "Ordre" TOOLARGE: "La mida del fitxer és massa llarga, com a màxim està permès de %s." Title: "Títol" - Folder: - CREATED: "Primera càrrega" - DELSELECTED: "Suprimeix els fitxers seleccionats" - DETAILSTAB: "Detalls" - FILENAME: "Nom del fitxer" - FILESTAB: "Fitxers" - LASTEDITED: "Darrera actualització" - PLURALNAME: "Fitxers" - SINGULARNAME: "Fitxer" - TITLE: "Títol" - TYPE: "Tipus" - UPLOADTAB: "Càrrega" - URL: "URL" - VIEWEDITASSET: "Veure/editar recurs" ForgotPasswordEmail.ss: HELLO: "Hola" TEXT1: "Aquí teniu el vostre" @@ -144,18 +128,13 @@ ca: Group: Code: "Codi de grup" Description: "Descripció" - IPRestrictions: "Restriccions d'adreces IP" Locked: "Bloquejat?" - PLURALNAME: "Grups" Parent: "Grup precedent" - SINGULARNAME: "Grup" Sort: "Ordre" has_many_Permissions: "Permisos" many_many_Members: "Membres" HtmlEditorField: ANCHORVALUE: "Ancla" - BUTTONINSERTFLASH: "Insereix flash" - BUTTONINSERTIMAGE: "Insereix una imatge" BUTTONINSERTLINK: "Insereix un enllaç" BUTTONREMOVELINK: "Suprimeix un enllaç" CSSCLASS: "Alineació / estil" @@ -165,7 +144,6 @@ ca: CSSCLASSRIGHT: "A la dreta, amb text envoltant." EMAIL: "Adreça de correu electrònic" FILE: "Fitxer" - FLASH: "Flash" FOLDER: "Carpeta" IMAGE: "Imatge" IMAGEDIMENSIONS: "Dimensions" @@ -179,14 +157,9 @@ ca: LINKFILE: "Descàrrega d'un fitxer" LINKINTERNAL: "Pàgina del lloc web" LINKOPENNEWWIN: "Obrir l'enllaç a una nova finestra?" - LINKTEXT: "Text de l'enllaç" LINKTO: "Enllaça a" PAGE: "Pàgina" - SEARCHFILENAME: "Cerca per nom de fitxer" URL: "URL" - Image: - PLURALNAME: "Fitxers" - SINGULARNAME: "Fitxer" Image_iframe.ss: TITLE: "Iframe Carregador d'imatge" LeftAndMain: @@ -200,8 +173,6 @@ ca: LoginAttempt: Email: "Adreça de correu" IP: "Adreça IP" - PLURALNAME: "Intents d'entrada" - SINGULARNAME: "Intent d'entrada" Status: "Estat" Member: ADDRESS: "Adreça" @@ -249,56 +220,22 @@ ca: db_PasswordExpiry: "Data d'expiració de la contrasenya" MemberAuthenticator: TITLE: "Correu electrònic i contrasenya" - MemberPassword: - PLURALNAME: "Contrasenyes de membre" - SINGULARNAME: "Contrasenya de membre" - MemberTableField: - ADD: "Afegeix" - ADDEDTOGROUP: "S'ha afegit el membre al grup" - ADDINGFIELD: "No s'ha pogut afegir" - FILTER: "Filtra" - SEARCH: "Cerca" ModelAdmin: - ADDBUTTON: "Afegeix" - ADDFORM: "Ompliu aquest formulari per a afegir un %s a la base de dades." - CHOOSE_COLUMNS: "Selecciona les columnes de resultats.." - CLEAR_SEARCH: "Neteja la cerca" - CREATEBUTTON: "Crea un/a '%s'" DELETE: "Suprimeix" DELETEDRECORDS: "S'ha suprimit %s registres." - FOUNDRESULTS: "La vostra cerca ha trobat %s elements concordants" IMPORT: "Importa de CSV" IMPORTEDRECORDS: "S'han importat %s registres." - ITEMNOTFOUND: "No es pot trobar aquest element" - LOADEDFOREDITING: "S'ha carregat '%s' per a editar." NOCSVFILE: "Si us plau, cerqueu el fitxer CSV per a importar" NOIMPORT: "No hi ha res a importar" - NORESULTS: "La vostra cerca no ha retornat cap element concordant" - SAVE: "Desa" - SEARCHRESULTS: "Resultats de la cerca" - SELECTALL: "selecciona-ho tot" - SELECTNONE: "no seleccionis res" UPDATEDRECORDS: "S'han actualitzat %s registres." - MyEntity: - MyNamespace: "El valor del meu idioma natural per defecte" - MyNamespace: - MYENTITY: "S'estan contant %s coses" NumericField: VALIDATION: "'%s' no és un nombre, només es poden acceptar nombres en aquest camp" - VALIDATIONJS: "no és un número, només s'accepten números per aquest camp" - Page: - PLURALNAME: "Pàgines" - SINGULARNAME: "Pàgina" Permission: FULLADMINRIGHTS: "Drets administratius totals" - PLURALNAME: "Permisos" - SINGULARNAME: "Permís" PhoneNumberField: VALIDATION: "Si us plau, introduïu un número de telèfon vàlid" RelationComplexTableField.ss: ADD: "Afegeix" - CSVEXPORT: "Exporta a CSV" - NOTFOUND: "No s'han trobat elements" ReportAdmin: MENUTITLE: "Informes" Security: @@ -308,30 +245,20 @@ ca: CHANGEPASSWORDHEADER: "Canviar la vostra contrasenya" ENTERNEWPASSWORD: "Si us plau, introduïu una nova contrasenya." ERRORPASSWORDPERMISSION: "Heu d'estar connectat per a canviar la vostra contrasenya!" - IPADDRESSES: "Adreces IP" LOGGEDOUT: "Heu estat desconnectat. Si voleu entrar de nou, introduïu les vostres credencials a sota." LOGIN: "Entrar" - LOSTPASSWORDHEADER: "Contrasenya perduda" NOTEPAGESECURED: "Aquesta pàgina està protegida. Introduïu les vostres credencials a sota i us hi enviarem." NOTERESETLINKINVALID: "

    L'enllaç de reinici de contrasenya és invàlid o està expirat.

    Podeu demanar-ne un de nou aquí o canviar la vostra contrasenya després d'entrar.

    " NOTERESETPASSWORD: "Introduïu la vostra adreça de correu electrònic i us enviarem un enllaç amb el qual reiniciar la vostra contrasenya" PASSWORDSENTHEADER: "L'enllaç per reiniciar la contrasenya s'ha enviat a '%s'" PASSWORDSENTTEXT: "Gràcies! L'enllaç per reiniciar la contrasenya s'ha enviat a '%s'" SecurityAdmin: - ADDMEMBER: "Afegeix un membre" EDITPERMISSIONS: "Edita els permisos i les adreces IP de cada grup" GROUPNAME: "Nom de grup" - IPADDRESSESHELP: | -

    Podeu restringir aquest grup a un rang particular d'adreces IP (un rang per línia)
    Els rangs poden ser qualsevol de les següents formes:
    - 203.96.152.12
    - 203.96.152/24
    - 203.96/16
    - 203/8

    Si introduïu una o més adreces IP en aquesta caixa, llavors els membres només tindran els drets del grup si entren des d'una de les adreces IP vàlides. No previndrà a la gent de connectar-se. Això és perquè el mateix usuari pot haver d'entrar a parts del sistema sense restriccions d'IP. MEMBERS: "Membres" + MEMBERS: "Membres" MENUTITLE: "Seguretat" NEWGROUP: "Nou grup" PERMISSIONS: "Permisos" - SGROUPS: "Grups de seguretat" - VIEWUSER: "Veure usuari" SimpleImageField: NOUPLOAD: "No heu carregat cap imatge" SiteTree: @@ -344,9 +271,6 @@ ca: CSVEXPORT: "Exporta a CSV" PRINT: "Imprimeix" TableListField_PageControls.ss: - DISPLAYING: "S'està mostrant" - OF: "de" - TO: "a" VIEWFIRST: "Veure el primer" VIEWLAST: "Veure el darrer" VIEWNEXT: "Veure el següent" diff --git a/lang/cs.yml b/lang/cs.yml index e2a728822..7d70e38ba 100644 --- a/lang/cs.yml +++ b/lang/cs.yml @@ -1,10 +1,17 @@ cs: AssetAdmin: - CHOOSEFILE: "Vybrat soubor" MENUTITLE: "Soubory a obrázky" NEWFOLDER: "Nová složka" - AssetAdmin_left.ss: - GO: "Proveď" + AssetTableField: + CREATED: "Poprvé nahráno" + DIM: "Rozměry" + FILENAME: "Název souboru" + LASTEDIT: "Naposledy změněno" + OWNER: "Vlastník" + SIZE: "Velikost" + TITLE: "Titulek" + TYPE: "Typ" + URL: "URL" BBCodeParser: ALIGNEMENT: "Zarovnání" ALIGNEMENTEXAMPLE: "zarovnat vpravo" @@ -38,9 +45,10 @@ cs: ANY: "Jakkýkoliv" NO: "Ne" YES: "Ano" - CMSBatchActions: - PUBLISHED_PAGES: "Zveřejněných %d stránek, %d selhání" CMSMain: + ACCESS: "Přístup do %s sekce" + ACCESSALLINTERFACES: "Přístup ke všem sekcím CMS" + ACCESSALLINTERFACESHELP: "Prepíše více specifické nastavení přístupu." MENUTITLE: "Stránky" SAVE: "Uložit" ChangePasswordEmail.ss: @@ -58,7 +66,6 @@ cs: SUCCESSEDIT: "Uloženo %s %s %s" ComplexTableField.ss: ADDITEM: "Přidat %s" - NOITEMSFOUND: "Nenalezeny žádné položky" SORTASC: "Řadit vzestupně" SORTDESC: "Řadit sestupně" ComplexTableField_popup.ss: @@ -67,21 +74,15 @@ cs: ConfirmedPasswordField: ATLEAST: "Zadané heslo musí být minimálně %s znaků dlouhé." BETWEEN: "Heslo musí mít minimálně %s znaků a maximálně %s znaků." - HAVETOMATCH: "Zadané hesla musí být totožná." - LEASTONE: "Heslo musí obsahovat alespoň jednu číslici a jedno abecední písmeno." MAXIMUM: "Zadané heslo musí být maximálně %s znaků dlouhé." - NOEMPTY: "Heslo nemůže být prázdné." SHOWONCLICKTITLE: "Změnit heslo" CreditCardField: FIRST: "první" FOURTH: "čtvrté" SECOND: "druhé" THIRD: "třetí" - VALIDATIONJS1: "Prosím ujistěte se o zadání " - VALIDATIONJS2: "čísla kreditní karty správně." CurrencyField: CURRENCYSYMBOL: "Kč" - VALIDATIONJS: "Prosíme zadejte platnou měnu." DataObject: PLURALNAME: "Datové objekty" SINGULARNAME: "Datový objekt" @@ -102,7 +103,6 @@ cs: DateField: NOTSET: "nenastaveno" TODAY: "dnes" - VALIDATIONJS: "Prosíme vložte správný formát data (DD-MM-RRRR)." VALIDDATEFORMAT2: "Zadejte, prosím, platný formát datumu (%s)" VALIDDATEMAXDATE: "Tvůj datum musí být starší nebo vyhovující maximálnímu povolenému datumu (%s)" VALIDDATEMINDATE: "Tvůj datum musí být novější nebo vyhovující minimálnímu povolenému datumu (%s)" @@ -110,7 +110,6 @@ cs: CHOOSE: "(Vyberte)" EmailField: VALIDATION: "Prosím zadejte emailovou adresu." - VALIDATIONJS: "Prosíme vložte vaši e-mailovou adresu." Email_BounceRecord: PLURALNAME: "Záznamy vrácené pošty" SINGULARNAME: "Záznam vrácené pošty" @@ -125,7 +124,6 @@ cs: Name: "Jméno" PLURALNAME: "Soubory" SINGULARNAME: "Soubor" - Sort: "Řazení" TOOLARGE: "Soubor je příliš velká, maximálně je povoleno %s." Title: "Titulek" FileIFrameField: @@ -137,22 +135,6 @@ cs: FROMFILESTORE: "Ze souborového úložiště" NOSOURCE: "Vyberte zdrojový soubor k připojení, prosím" REPLACE: "Nahradit %s" - FileIFrameField.ss: - TITLE: "Rámec nahrání obrázku" - Folder: - CREATED: "Nahráno" - DELSELECTED: "Odstranit označené soubory" - DETAILSTAB: "Detaily" - FILENAME: "Jméno souboru" - FILESTAB: "Soubory" - LASTEDITED: "Poslední změna" - PLURALNAME: "Soubory" - SINGULARNAME: "Soubor" - TITLE: "Titulek" - TYPE: "Typ" - UPLOADTAB: "Nahrát" - URL: "URL" - VIEWEDITASSET: "Zobrazit/Upravit aktivní položku" ForgotPasswordEmail.ss: HELLO: "Dobrý den" TEXT1: "Zde je Váš" @@ -175,13 +157,9 @@ cs: DefaultGroupTitleAdministrators: "Administrátoři" DefaultGroupTitleContentAuthors: "Autoři obsahu" Description: "Popis" - IMPORTTABTITLE: "Import" - IPRestrictions: "Omezení dle IP adres" Locked: "Zamčený?" - PLURALNAME: "Skupiny" Parent: "Rodičovská skupina" RolesAddEditLink: "Přidat/editovat role" - SINGULARNAME: "Skupina" Sort: "Řazení" has_many_Permissions: "Oprávnění" many_many_Members: "Členové" @@ -192,8 +170,6 @@ cs: ResultUpdated: "Aktualizováno %d skupin" HtmlEditorField: ANCHORVALUE: "Záložka (kotva)" - BUTTONINSERTFLASH: "Vložit flashový objekt" - BUTTONINSERTIMAGE: "Vložit obrázek" BUTTONINSERTLINK: "Vložit odkaz" BUTTONREMOVELINK: "Odstranit odkaz" CAPTIONTEXT: "Text popisku" @@ -204,7 +180,6 @@ cs: CSSCLASSRIGHT: "Vpravo, s obtékajícím textem." EMAIL: "Emailovou adresu" FILE: "Soubor" - FLASH: "Vložit flash objekt" FOLDER: "Složka" IMAGE: "Vložit obrázek" IMAGEALTTEXT: "Alternativní text (alt) - bude ukázán, když obrázek nemúže být zobrazen" @@ -220,20 +195,11 @@ cs: LINKFILE: "Stáhnutí souboru" LINKINTERNAL: "Místní stránku" LINKOPENNEWWIN: "Otevřít odkaz v novém okně?" - LINKTEXT: "Text odkazu" LINKTO: "Odkázat na" PAGE: "Stránku" - SEARCHFILENAME: "Vyhledávat dle jména souboru" - SHOWUPLOADFORM: "Nahrát soubor" URL: "URL" - Image: - PLURALNAME: "Soubory" - SINGULARNAME: "Soubor" ImageField: IMAGE: "Obrázek" - Image_Cached: - PLURALNAME: "Soubory" - SINGULARNAME: "Soubor" Image_iframe.ss: TITLE: "Rámec pro nahrání obrázku" LeftAndMain: @@ -245,13 +211,9 @@ cs: PERMDEFAULT: "Pro přístup do CMS zadejte Vaši e-mailovou adresu a heslo." PLEASESAVE: "Prosím uložte stránku: Tato stránka nemohla být aktualizována, protože ještě nebyla uložena." SAVED: "uloženo" - LeftAndMain_right.ss: - WELCOMETO: "Vítejte v" LoginAttempt: Email: "Emailové adresy" IP: "IP adresy" - PLURALNAME: "Pokusy přihlášení" - SINGULARNAME: "Pokus přihlášení" Status: "Status" Member: ADDRESS: "Adresa" @@ -308,78 +270,36 @@ cs: ResultDeleted: "Smazáno %d členů" ResultNone: "Žádné změny" ResultUpdated: "Aktualizováno %d členů" - MemberPassword: - PLURALNAME: "Členská hesla" - SINGULARNAME: "Členské heslo" - MemberTableField: - ADD: "Přidat" - ADDEDTOGROUP: "Přidat člena do skupiny" - ADDINGFIELD: "Přidání selhalo" - DeleteTitleText: "Smazat z této skupiny" - DeleteTitleTextDatabase: "Smazat z databáze a všech skupin" - ERRORADDINGUSER: "Nastala chyba pri přidání uživatele do skupiny: %s" - FILTER: "Filtr" - SEARCH: "Hledání" ModelAdmin: - ADDBUTTON: "Přidat" - ADDFORM: "Vyplňte tento formulář pro přidání %s do databáze" - CHOOSE_COLUMNS: "Vybrat sloupec výsledků..." - CLEAR_SEARCH: "Čisté hledání" - CREATEBUTTON: "Vytvořit '%s'" DELETE: "Smazat" DELETEDRECORDS: "Odstraněno %s záznamů." - FOUNDRESULTS: "Vaše vyhledávání nalezlo % položek" IMPORT: "Importovat ze souboru CSV" IMPORTEDRECORDS: "Importováno %s záznamů." - ITEMNOTFOUND: "Systém nemůže najít tuto položku" - LOADEDFOREDITING: "'%s' načteno pro editaci" NOCSVFILE: "Prosím, vyhledejte soubor CSV pro import" NOIMPORT: "Nic k importu" - NORESULTS: "Bez výsledků" - SAVE: "Uložit" - SEARCHRESULTS: "Výsledky hledání" - SELECTALL: "označit vše" - SELECTNONE: "Vybrat žádné" UPDATEDRECORDS: "Aktualizováno %s záznamů." MoneyField: FIELDLABELAMOUNT: "Částka" FIELDLABELCURRENCY: "Měna" - MyEntity: - MyNamespace: "Můj výchozí jazyk" - MyNamespace: - MYENTITY: "Počítám %s položek" NullableField: IsNullLabel: "Je nulové" NumericField: VALIDATION: "'%s' není číslo. V tomto poli mohou být zadaná pouze čísla" - VALIDATIONJS: "není číslo, pro toto pole jsou přijatelná pouze čísla" - Page: - PLURALNAME: "Stránky" - SINGULARNAME: "Stránka" Permission: AdminGroup: "Administrátor" + CMS_ACCESS_CATEGORY: "Přístup CMS" FULLADMINRIGHTS: "Plná administrátorská práva" - PLURALNAME: "Oprávnění" - SINGULARNAME: "Oprávnění" PermissionCheckboxSetField: AssignedTo: "přiřazeno k \"%s\"" FromGroup: "děděno ze skupiny \"%s\"" FromRole: "děděno za role \"%s\"" FromRoleOnGroup: "děděno z role \"%s\" ve skupině \"%s\"" - PermissionRole: - PLURALNAME: "Role" - SINGULARNAME: "Role" - PermissionRoleCode: - PLURALNAME: "Kódy role oprávnění" - SINGULARNAME: "Kód role oprávnění" Permissions: PERMISSIONS_CATEGORY: "Role a přístupová práva" PhoneNumberField: VALIDATION: "Prosím zadejte platné telefonní číslo" RelationComplexTableField.ss: ADD: "Přidat" - CSVEXPORT: "Exportovat do souboru CSV" - NOTFOUND: "Nenalezeny žádné položky" ReportAdmin: MENUTITLE: "Výkazy" Security: @@ -389,38 +309,28 @@ cs: CHANGEPASSWORDHEADER: "Změnit heslo" ENTERNEWPASSWORD: "Prosím zadejte nové heslo." ERRORPASSWORDPERMISSION: "Pro změnu hesla musíte být přihlášení!" - IPADDRESSES: "IP adresa" LOGGEDOUT: "Byli jste odhlášeni. Pokud se chcete znovu přihlásit, vložte své přihlašovací údaje." LOGIN: "Přihlásit" - LOSTPASSWORDHEADER: "Zapomenuté heslo" NOTEPAGESECURED: "Tato stránka je zabezpečená. Vložte své přihlašovací údaje a my Vám zároveň pošleme práva." NOTERESETLINKINVALID: "

    Odkaz pro generování hesla byl zrušen nebo je neplatý.

    O nový odkaz můžete požádat zde nebo změňte své heslo po přihlášení.

    " NOTERESETPASSWORD: "Zadejte svou e-mailovou adresu a bude vám zaslán nulovací odkaz pro Vaše heslo" PASSWORDSENTHEADER: "Nulovací odkaz pro helso odeslán na '%s'" PASSWORDSENTTEXT: "Děkujeme! Nulovací odkaz pro heslo byl zaslán na '%s'." SecurityAdmin: - ADDMEMBER: "Přidat člena" + ACCESS_HELP: "Povolit prohlížení, přidávání a úpravu uživatelů, jako i přidělování oprávnění pro ně." APPLY_ROLES: "Použít role na skupiny" APPLY_ROLES_HELP: "Možnost editovat role přiřazené ke skupině. Vyžaduje oprávnění pro \"Přístup do sekce 'Bezpečnost'\"." EDITPERMISSIONS: "Upravit oprávnění pro skupiny" EDITPERMISSIONS_HELP: "Možnost editovat oprávnění a IP adresy pro skupinu. Vyžaduje oprávnění pro \"Přístup do sekce 'Bezpečnost'\"." GROUPNAME: "Jméno skupiny" - IPADDRESSESHELP: | -

    Tuto skupinu můžete omezit na určitý rozsah ip adres (jeden rozsah na řádek).
    Rozsahy mohou být formulovány následujícími způsoby:
    - 203.96.152.12
    - 203.96.152/24
    - 203.96/16
    - 203/8

    Pokud do tohoto pole vložíte jeden nebo více rozsahů adres, pak uživatelé získají právo být v této skupině pouze pokud se příhlásí z jedné z těchto adres. Toto nezabrání uživatelům v přihlašování. Je tak umožněno aby se uživatel mohl přihlásit do jiných částí administrace bez omezení pomocí IP adres. MEMBERS: "Členové" + MEMBERS: "Členové" MENUTITLE: "Bezpečnost" MemberListCaution: "Varování: Odstranění členů z tohoto seznamu způsobí, že členové budou odtraněni ze všech skupin a databáze" NEWGROUP: "Nová skupina" PERMISSIONS: "Práva" ROLES: "Role" ROLESDESCRIPTION: "Tato sekce umožňuje přidat role této skupině. Role jsou logické seskupení oprávnění, které mohou být změněné v záložce Role" - SGROUPS: "Bezpečnostní skupiny" - TABIMPORT: "Import" TABROLES: "Role" - VIEWUSER: "Zobrazit uživatele" SecurityAdmin_MemberImportForm: BtnImport: "Import" FileFieldLabel: "Soubor CSV (Povoleny přípony: *.csv)" @@ -432,19 +342,14 @@ cs: ISREQUIRED: "'%s' v %s je požadováno" TableField.ss: ADD: "Přidat nový řádek" - ADDITEM: "Přidat %s" TableListField: CSVEXPORT: "Exportovat do souboru CSV" PRINT: "Vytisknout" SELECT: "Vybrat:" TableListField.ss: - NOITEMSFOUND: "Nenalezeny žádné položky" SORTASC: "Třídit v vzestupném pořadí" SORTDESC: "Třídit v sestupném pořadí" TableListField_PageControls.ss: - DISPLAYING: "Zobrazuji" - OF: "z" - TO: "do" VIEWFIRST: "Zobraz první" VIEWLAST: "Zobraz poslední" VIEWNEXT: "Zobrazit další" diff --git a/lang/cy.yml b/lang/cy.yml deleted file mode 100644 index 1707e64ee..000000000 --- a/lang/cy.yml +++ /dev/null @@ -1,6 +0,0 @@ -cy: - LeftAndMain: - HELP: "Help" - Member: - EMAIL: "eBost" - SiteTree: diff --git a/lang/da.yml b/lang/da.yml index 593bab95f..cb185cbf2 100644 --- a/lang/da.yml +++ b/lang/da.yml @@ -1,232 +1,25 @@ da: AssetAdmin: - CHOOSEFILE: "Vælg fil" MENUTITLE: "Filer & Billeder" NEWFOLDER: "Ny mappe" - AssetAdmin_left.ss: - GO: "Go" - BBCodeParser: - ALIGNEMENT: "Justering" - ALIGNEMENTEXAMPLE: "Højrestillet" - BOLD: "Fed tekst" - BOLDEXAMPLE: "Fed" - CODE: "Kodeblok" - CODEDESCRIPTION: "Uformatteret kodeblok" - CODEEXAMPLE: "Kodeblok" - COLORED: "Farvet tekst" - COLOREDEXAMPLE: "Blå tekst" - EMAILLINK: "Email link" - EMAILLINKDESCRIPTION: "Opret link til anden emailadresse" - IMAGE: "Billede" - IMAGEDESCRIPTION: "Vis et billede i dit indlæg" - ITALIC: "Kursiv tekst" - ITALICEXAMPLE: "Kursiv" - LINK: "Website link" - LINKDESCRIPTION: "Link til anden hjemmeside eller URL" - STRUCK: "Gennemstreget tekst" - STRUCKEXAMPLE: "Gennemstreget" - UNDERLINE: "Understreget tekst" - UNDERLINEEXAMPLE: "Understreget" - UNORDERED: "Usorteret liste" - UNORDEREDDESCRIPTION: "Usorteret liste" - UNORDEREDEXAMPLE1: "usorteret punkt 1" - BasicAuth: - ENTERINFO: "Indtast brugernavn og kodeord." - ERRORNOTADMIN: "Denne bruger er ikke en administrator." - ERRORNOTREC: "Dette brugernavn / kodeord blev ikke genkendt" - Boolean: - ANY: "Enhver" - NO: "Nej" - YES: "Ja" - CMSBatchActions: - PUBLISHED_PAGES: "Publiserede %d sider" + AssetTableField: + CREATED: "Først uploadet" + DIM: "Dimensioner" + FILENAME: "Filnavn" + LASTEDIT: "Sidst ændret" + OWNER: "Ejer" + SIZE: "Størrelse" + TITLE: "Titel" + TYPE: "Type" + URL: "URL Adresse" CMSMain: + ACCESS: "Adgang til %S i CMS" + ACCESSALLINTERFACES: "Adgang til alle CMS grænseflader" MENUTITLE: "Indhold site" SAVE: "Gem" - ChangePasswordEmail.ss: - CHANGEPASSWORDTEXT1: "Du har skiftet dit kodeord til" - CHANGEPASSWORDTEXT2: "Du kan nu bruge følgende oplysninger til af logge ind:" - EMAIL: "Email" - HELLO: "Hej" - PASSWORD: "Kodeord" - CheckboxField: - NO: "Nej" - YES: "Ja" ComplexTableField: CLOSEPOPUP: "Luk popup" SUCCESSADD: "Tilføjede %s %s %s" - SUCCESSEDIT: "Gemte %s %s %s" - ComplexTableField.ss: - ADDITEM: "Tilføj %s" - NOITEMSFOUND: "ingen artikler fundet" - SORTASC: "Sorter stigende" - SORTDESC: "Sorter faldende" - ComplexTableField_popup.ss: - NEXT: "Næste" - PREVIOUS: "Forrige" - ConfirmedPasswordField: - ATLEAST: "Password skal mindst være %s tegn langt" - BETWEEN: "Password skal være mellem %s og %S tegn langt" - HAVETOMATCH: "Password skal være ens" - LEASTONE: "Password" - MAXIMUM: "Password skal højst være %s tegn langt" - NOEMPTY: "Passwordfeltet kan ikke være tomt" - SHOWONCLICKTITLE: "Ændre kodeord" - CreditCardField: - FIRST: "første" - FOURTH: "fjerde" - SECOND: "anden" - THIRD: "tredje" - VALIDATIONJS1: "Kontroller venligst at du har indtastet" - VALIDATIONJS2: "Kreditkort nummer korrekt" - CurrencyField: - CURRENCYSYMBOL: "Kr." - VALIDATIONJS: "Indtast venligst en valid valuta" - DataObject: - PLURALNAME: "Data Objekter" - SINGULARNAME: "Data Objekter" - Date: - DAY: "dag" - DAYS: "dage" - HOUR: "time" - HOURS: "timer" - MIN: "min" - MINS: "min" - MONTH: "måned" - MONTHS: "måneder" - SEC: "sek" - SECS: "sek" - TIMEDIFFAGO: "%s siden" - YEAR: "år" - YEARS: "år" - DateField: - NOTSET: "ikke sat" - TODAY: "i dag" - VALIDATIONJS: "Indtast venligst et valid datoformat (DD/MM/YYYY)" - DropdownField: - CHOOSE: "(Vælg)" - EmailField: - VALIDATION: "Indtast emailadresse" - VALIDATIONJS: "Indtast venligst en valid emailadresse" - Email_BounceRecord: - PLURALNAME: "Email Bounce logs" - SINGULARNAME: "Email Bounce log" - Enum: - ANY: "Enhver" - File: - Content: "Indhold" - Filename: "Filnavn" - INVALIDEXTENSION: "Udvidelse er ikke tilladt (gyldig: %s)" - NOFILESIZE: "Filstørrelsen er 0 bytes" - NOVALIDUPLOAD: "Filen er ikke gyldig til upload" - Name: "Navn" - PLURALNAME: "Filer" - SINGULARNAME: "Fil" - Sort: "Soteringsorden" - TOOLARGE: "Filstørrelse er for stor, maks. tilladt %s" - Title: "Titel" - FileIFrameField: - ATTACH: "Vedhæft %S" - ATTACHONCESAVED: "%ss kan blive vedhæftet, nå du har gemt posten for første gang." - DELETE: "Slet %s" - FILE: "Fil" - FROMCOMPUTER: "Fra din Computer" - FROMFILESTORE: "Fra Filstyring" - NOSOURCE: "Vælge venligst en kildefil at vedhæfte" - REPLACE: "Erstat %s" - FileIFrameField.ss: - TITLE: "Billeduploadende Iframe" - Folder: - CREATED: "Først uploaded" - DELSELECTED: "Slet valgte filer" - DETAILSTAB: "Detaljer" - FILENAME: "Filnavn" - FILESTAB: "Filer" - LASTEDITED: "Senest opdateret" - PLURALNAME: "Filer" - SINGULARNAME: "Fil" - TITLE: "Title" - TYPE: "Type" - UPLOADTAB: "Upload" - URL: "URL" - VIEWEDITASSET: "Vis/Redigér" - ForgotPasswordEmail.ss: - HELLO: "Hej" - TEXT1: "Her er din" - TEXT2: "Nulstil password link" - TEXT3: "for" - Form: - FIELDISREQUIRED: "%s skal udfyldes" - VALIDATIONCREDITNUMBER: "Tjek om du har indtastet kreditkortnummeret korrekt." - VALIDATIONFAILED: "Validering fejlede" - VALIDATIONNOTUNIQUE: "Den indtastede værdi er ikke unik" - VALIDATIONPASSWORDSDONTMATCH: "Kodeord matcher ikke" - VALIDATIONPASSWORDSNOTEMPTY: "Kodeord kan ikke være tomme" - VALIDATIONSTRONGPASSWORD: "Kodeord skal indeholde mindst et tal og et bogstav." - VALIDATOR: "Validering" - VALIDCURRENCY: "Indtast gyldig valuta" - FormField: - NONE: "ingen" - Group: - Code: "Gruppe kode" - DefaultGroupTitleAdministrators: "Administratorer" - DefaultGroupTitleContentAuthors: "Indholdets Forfattere" - Description: "Beskrivelse" - IMPORTTABTITLE: "Importer" - IPRestrictions: "IP Adresse restriktioner" - Locked: "Låst?" - PLURALNAME: "Grupper" - Parent: "Forældre gruppe" - SINGULARNAME: "Gruppe" - Sort: "Sorteringsorden" - has_many_Permissions: "Rettigheder" - many_many_Members: "Medlemmer" - HtmlEditorField: - ANCHORVALUE: "Anker" - BUTTONINSERTFLASH: "Indsæt Flash" - BUTTONINSERTIMAGE: "Indsæt billede" - BUTTONINSERTLINK: "Indsæt link" - BUTTONREMOVELINK: "Fjern link" - CAPTIONTEXT: "Billedetekst" - CSSCLASS: "Justering / stil" - CSSCLASSCENTER: "Centreret for sig selv" - CSSCLASSLEFT: "til venstre med tektsombrydning" - CSSCLASSLEFTALONE: "Til venste, alene" - CSSCLASSRIGHT: "Højrejusteret med tekstombrydning" - EMAIL: "Emailadresse" - FILE: "Fil" - FLASH: "Indsæt Flash" - FOLDER: "Mappe" - IMAGE: "Indsæt billede" - IMAGEALTTEXT: "Alternativ tekst (alt) - Vises, hvis billede ikke kan vises" - IMAGEDIMENSIONS: "Dimensioner" - IMAGEHEIGHTPX: "Højde" - IMAGETITLE: "Titel tekst (tooltip) - for yderligere informationer om billedet." - IMAGEWIDTHPX: "Bredde" - LINK: "Indsæt / rediger link for markeret tekst" - LINKANCHOR: "Anker på denne side" - LINKDESCR: "Link beskrivelse" - LINKEMAIL: "Emaladresse" - LINKEXTERNAL: "En anden hjemmeside" - LINKFILE: "Download en fil" - LINKINTERNAL: "Side på denne hjemmeside" - LINKOPENNEWWIN: "Åben link i et nyt vindue?" - LINKTEXT: "Link tekst" - LINKTO: "Link til" - PAGE: "Side" - SEARCHFILENAME: "Søg efter filnavn" - SHOWUPLOADFORM: "Upload Fil" - URL: "URL" - Image: - PLURALNAME: "Filer" - SINGULARNAME: "Fil" - ImageField: - IMAGE: "Billede" - Image_Cached: - PLURALNAME: "Filer" - SINGULARNAME: "Fil" - Image_iframe.ss: - TITLE: "Upload Billede Iframe" LeftAndMain: CANT_REORGANISE: "Du har ikke rettigheder to at omroker is sidetræet. Dine ændringer er ikke blevet gemt" HELP: "Hjælp" @@ -236,201 +29,22 @@ da: PERMDEFAULT: "Indtast din email adresse og kodeord for at få adgang til CMS systemet" PLEASESAVE: "Gem siden: Denne side kunne ikke blive opdateret, fordi den endnu ikke er gemt." SAVED: "gemt" - LeftAndMain_right.ss: - WELCOMETO: "Velkommen til" - LoginAttempt: - Email: "Emailadresse" - IP: "IP-adresse" - PLURALNAME: "Login førsøg" - SINGULARNAME: "Login forsøg" - Status: "Status" - Member: - ADDRESS: "Adresse" - BUTTONCHANGEPASSWORD: "Skift kodeord" - BUTTONLOGIN: "Log ind" - BUTTONLOGINOTHER: "Log ind som en anden" - BUTTONLOSTPASSWORD: "Jeg har glemt mit kodeord" - CONFIRMNEWPASSWORD: "Bekræft nyt kodeord" - CONFIRMPASSWORD: "Bekræft kodeord" - CONTACTINFO: "Kontaktinformation" - DefaultAdminFirstname: "Standard Admin" - EMAIL: "Email" - EMAILSIGNUPINTRO1: "Tak fordi du tilmeldte dig som bruger, dine oplysninger er vist herunder for senere reference." - EMAILSIGNUPINTRO2: "Du kan logge ind på hjemmesiden ved at bruge nedenstående oplysninger" - EMAILSIGNUPSUBJECT: "Tak for din tilmelding" - ENTEREMAIL: "Indtast venligst en emailadresse for at få et nulstillingslink til kodeordet." - ERRORLOCKEDOUT: "Din konto er midlertidigt deaktiveret, grundet for mange mislykkede forsøg på at logge ind. Prøve venligst igen om 20 minutter." - ERRORNEWPASSWORD: "Du har indtastet dit nye kodeord forskelligt, prøv igen" - ERRORPASSWORDNOTMATCH: "Dit nuværende kodeord passede ikke, prøv igen" - ERRORWRONGCRED: "Det ser ikke ud til at du bruger den rigtige emailadresse eller det rigtige kodeord. prøv venligst igen." - FIRSTNAME: "Fornavn" - GREETING: "Velkommen" - INTERFACELANG: "Brugergrænseflade til sprog" - LOGGEDINAS: "Du er logget ind som %s." - MOBILE: "Mobil" - NAME: "Navn" - NEWPASSWORD: "Nyt kodeord" - PASSWORD: "Kodeord" - PHONE: "Telefon" - PLURALNAME: "Medlemmer" - PROFILESAVESUCCESS: "Gemt" - REMEMBERME: "Husk mig næste gang?" - SINGULARNAME: "Medlem" - SUBJECTPASSWORDCHANGED: "Dit kodeord er blevet ændret" - SUBJECTPASSWORDRESET: "Link til at nulstille dit kodeord" - SURNAME: "Efternavn" - VALIDATIONMEMBEREXISTS: "Der findes allerede et medlem med denne email" - WELCOMEBACK: "Velkommen tilbage, %s" - YOUROLDPASSWORD: "Dit gamle kodeord" - belongs_many_many_Groups: "Grupper" - db_LastVisited: "Sidste besøgsdato" - db_Locale: "Sproginterface" - db_LockedOutUntil: "Låst ude indtil" - db_NumVisit: "Antal besøg" - db_Password: "Kodeord" - db_PasswordExpiry: "Password udløbs dato" - MemberAuthenticator: - TITLE: "Email & kodeord" - MemberPassword: - PLURALNAME: "Medlems passwords" - SINGULARNAME: "Medlems password" - MemberTableField: - ADD: "Tilføj" - ADDEDTOGROUP: "Tilføjede medlem til gruppe" - ADDINGFIELD: "Tilføjelse fejlede" - DeleteTitleText: "Slet fra denne gruppe" - DeleteTitleTextDatabase: "Slet fra databasen og all grupper" - ERRORADDINGUSER: "Der opstod en fejl under oprettelsen af brugeren til gruppen : %s" - FILTER: "Filtrer" - SEARCH: "Søg" ModelAdmin: - ADDBUTTON: "Tilføj" - ADDFORM: "Udfyld denne formular for at tilføje en %s til databasen." - CHOOSE_COLUMNS: "Vælg resultat kolonner" - CLEAR_SEARCH: "Ryd Søgning" - CREATEBUTTON: "Opret '%s'" DELETE: "Slet" DELETEDRECORDS: "%S poster er slettet." - FOUNDRESULTS: "Din søgning gav %s resultater" IMPORT: "Importer fra CSV" IMPORTEDRECORDS: "Importerede %s poster." - ITEMNOTFOUND: "Jeg kan ikke finde enheden" - LOADEDFOREDITING: "indæste '%s' til redigering" NOCSVFILE: "Tryk på Gennemse for at vælge en CSVfil til importering" NOIMPORT: "Intet at importere" - NORESULTS: "Ingen resultater" - SAVE: "Gem" - SEARCHRESULTS: "Søgeresultater" - SELECTALL: "Vælg alle" - SELECTNONE: "Vælg ingen" UPDATEDRECORDS: "Opdaterede %s poster." - MoneyField: - FIELDLABELAMOUNT: "Beløb" - FIELDLABELCURRENCY: "Valuta" - MyEntity: - MyNamespace: "Mit standardsprogs naturlige værdi" - MyNamespace: - MYENTITY: "Tæller %s ting" - NullableField: - IsNullLabel: "Er Null" - NumericField: - VALIDATION: "'%s' er ikke et tal, kun tal bliver accepteret i dette felt" - VALIDATIONJS: "er ikke et tal, kun tal er accepteret i dette felt" - Page: - PLURALNAME: "Sider" - SINGULARNAME: "Side" - Permission: - AdminGroup: "Administrator" - FULLADMINRIGHTS: "Fulde administrative rettigheder" - PLURALNAME: "Tilladelser" - SINGULARNAME: "Tilladelse" - PermissionCheckboxSetField: - AssignedTo: "tildelt \"%s\"" - FromGroup: "nedarvet fra gruppe \"%S\"" - FromRole: "nedarvet fra rolle \"%S\"" - FromRoleOnGroup: "nedarvet fra rolle \"%S\" i gruppe \"%s\"" - PermissionRole: - PLURALNAME: "Roller" - SINGULARNAME: "Rolle" - PermissionRoleCode: - PLURALNAME: "Rolle Tilladelseskoder" - SINGULARNAME: "Rollens Tilladelseskode" - Permissions: - PERMISSIONS_CATEGORY: "Roller og adgangs tilladelser" - PhoneNumberField: - VALIDATION: "Indtast gyldigt telefonnummer" - RelationComplexTableField.ss: - ADD: "Tilføj" - CSVEXPORT: "Eksporter til CSV" - NOTFOUND: "Ingen punkter fundet" ReportAdmin: MENUTITLE: "Reporter" - Security: - ALREADYLOGGEDIN: "Du har ikke rettigheder til denne side. Hvis du har en anden konto, som har rettigheder, kan du logge ind herunder." - BUTTONSEND: "Send mig et link til at nulstille kodeordet" - CHANGEPASSWORDBELOW: "Du kan ændre dit kodeord nedenunder." - CHANGEPASSWORDHEADER: "Skift dit kodeord" - ENTERNEWPASSWORD: "Indtast nyt kodeord." - ERRORPASSWORDPERMISSION: "Du skal være logget ind for at kunne ændre dit kodeord!" - IPADDRESSES: "IP-Adresser" - LOGGEDOUT: "Du er blevet logget ud, hvis du vil logge ind igen, kan du indtaste dine oplysninger herunder." - LOGIN: "Log ind" - LOSTPASSWORDHEADER: "Glemt kodeord" - NOTEPAGESECURED: "Denne side er beskyttet. Indtast dine brugeroplysninger herunder og du vil blive sendt videre." - NOTERESETLINKINVALID: "

    Nulstilling af adgangskodelinket er ugyldigt eller udløbet. Du kan anmode om en ny her eller ændre din adgangskode, når du logget ind . " - NOTERESETPASSWORD: "Indtast din emailadresse og vi sender dig et link, som kan bruges til at nulstille kodeordet" - PASSWORDSENTHEADER: "Link til at nulstille kodeordet er sendt til %s" - PASSWORDSENTTEXT: "Tak! Et link til at nulstille kodeordet er sendt til '%s'." SecurityAdmin: - ADDMEMBER: "Tilføj medlem" EDITPERMISSIONS: "Rediger tilladelser og IP-adresser for hver gruppe" - GROUPNAME: "Gruppenavn" - IPADDRESSESHELP: | -

    Du kan begrænse denne gruppe til en bestemt - IP-adresse interval (en række per linje).
    Interval kan være i en af følgende former:
    - 203.96.152.12
    - 203.96.152/24
    - 203.96/16
    - 203 / 8

    Hvis du indtaster et eller flere IP-adresse-intervaller i denne rubrik, så får medlemmerne kun - rettigheder, fra denne gruppe, hvis de logger på fra en af de gyldige IP-adresser. Det vil ikke forhindre - folk fra at logge ind Dette skyldes, at den samme bruger kan have brug for at logge på for at få adgang til dele af - systemet uden IP-adresse restriktioner MEMBERS: "Medlemmer" MENUTITLE: "Sikkerhed" NEWGROUP: "Ny gruppe" - PERMISSIONS: "Tilladelser" - ROLES: "Roller" - ROLESDESCRIPTION: "Dette afsnit giver dig mulighed for at tilføje funktioner til denne gruppe. Roller er logiske grupperinger af tilladelser, som kan redigeres i" - SGROUPS: "Sikkerhedsgrupper" - VIEWUSER: "Vis bruger" - SimpleImageField: - NOUPLOAD: "Intet billede uploadet" - SiteTree: - TABMAIN: "Primær" - TableField: - ISREQUIRED: "I %s '%s' er påkrævet." - TableField.ss: - ADD: "Tilføj ny række" - ADDITEM: "Tilføj %s" - TableListField: - CSVEXPORT: "Eksporter til CSV" - PRINT: "Print" - TableListField.ss: - NOITEMSFOUND: "Inge punkter fundet" - SORTASC: "Sorter efter stigende orden" - SORTDESC: "Sorter efter aftagende orden" TableListField_PageControls.ss: - DISPLAYING: "Viser" - OF: "af" - TO: "til" VIEWFIRST: "Vis første" VIEWLAST: "Vis Sidste" VIEWNEXT: "Vis næste" VIEWPREVIOUS: "Vis forrige" - ToggleCompositeField.ss: - HIDE: "Skjul" - SHOW: "Vis" - ToggleField: - LESS: "mindre" - MORE: "mere" - Versioned: - has_many_Versions: "Versioner" diff --git a/lang/de.yml b/lang/de.yml index 7ca243e3d..6921b8777 100644 --- a/lang/de.yml +++ b/lang/de.yml @@ -1,10 +1,17 @@ de: AssetAdmin: - CHOOSEFILE: "Datei auswählen:" MENUTITLE: "Dateien & Bilder" NEWFOLDER: "Neuer Ordner" - AssetAdmin_left.ss: - GO: "Los" + AssetTableField: + CREATED: "Erstmalig hochgeladen" + DIM: "Dimensionen" + FILENAME: "Dateiname" + LASTEDIT: "Letztmals geändert" + OWNER: "Eigentümer" + SIZE: "Größe" + TITLE: "Titel" + TYPE: "Typ" + URL: "URL" BBCodeParser: ALIGNEMENT: "Ausrichtung" ALIGNEMENTEXAMPLE: "Rechts ausgerichtet" @@ -38,9 +45,10 @@ de: ANY: "alle" NO: "Nein" YES: "Ja" - CMSBatchActions: - PUBLISHED_PAGES: "%d Seiten veröffentlicht, %d Fehler" CMSMain: + ACCESS: "Zugriff auf den Bereich '%s' im CMS" + ACCESSALLINTERFACES: "Zugriff auf alle Bereiche des CMS" + ACCESSALLINTERFACESHELP: "Hebt alle bereichspezifischen Berechtigungen auf." MENUTITLE: "Seiten" SAVE: "Speichern" ChangePasswordEmail.ss: @@ -58,7 +66,6 @@ de: SUCCESSEDIT: "Gespeichert %s %s %s" ComplexTableField.ss: ADDITEM: "%s hinzufügen" - NOITEMSFOUND: "Keine Artikel gefunden" SORTASC: "Aufsteigend sortieren" SORTDESC: "Absteigend sortieren" ComplexTableField_popup.ss: @@ -67,21 +74,15 @@ de: ConfirmedPasswordField: ATLEAST: "Passwörter müssen mindestens %s Zeichen lang sein." BETWEEN: "Passwörter müssen %s bis %s Zeichen lang sein." - HAVETOMATCH: "Die Passwörter stimmen nicht überein." - LEASTONE: "Passwörter müssen mindestens eine Zahl und einen Buchstaben enthalten." MAXIMUM: "Passwörter dürfen nur bis zu %s Zeichen lang sein." - NOEMPTY: "Das Passwordfeld darf nicht leer sein." SHOWONCLICKTITLE: "Passwort ändern" CreditCardField: FIRST: "Zuerst" FOURTH: "vierte" SECOND: "erste" THIRD: "dritte" - VALIDATIONJS1: "Bitte versichern Sie sich, dass Sie das \"%s\" eingeben haben." - VALIDATIONJS2: "Kreditkartenummer richtig" CurrencyField: CURRENCYSYMBOL: "€" - VALIDATIONJS: "Bitte geben Sie eine gültige Währung ein." DataObject: PLURALNAME: "DataObjects" SINGULARNAME: "DataObject" @@ -102,7 +103,6 @@ de: DateField: NOTSET: "nicht gesetzt" TODAY: "heute" - VALIDATIONJS: "Bitte geben Sie ein gültiges Datumsformat ein (TT/MM/YYYY)." VALIDDATEFORMAT2: "Bitte geben Sie ein gültiges Datumsformat ein (%s)" VALIDDATEMAXDATE: "Das gewählte Datum muss vor dem maximal erlaubten Datum (%s) liegen oder gleich diesem sein." VALIDDATEMINDATE: "Das gewählte Datum muss nach dem minimal erlaubten Datum (%s) liegen oder gleich diesem sein." @@ -110,7 +110,6 @@ de: CHOOSE: "(Auswahl)" EmailField: VALIDATION: "Bitte geben Sie eine E-Mail-Adresse ein" - VALIDATIONJS: "Bitte geben Sie eine E-Mail-Adresse ein" Email_BounceRecord: PLURALNAME: "E-Mail Rückläufer" SINGULARNAME: "E-Mail Rückläufer" @@ -125,7 +124,6 @@ de: Name: "Name" PLURALNAME: "Dateien" SINGULARNAME: "Datei" - Sort: "Sortierreihenfolge" TOOLARGE: "Datei zu groß, maximal %s erlaubt." Title: "Titel" FileIFrameField: @@ -137,22 +135,6 @@ de: FROMFILESTORE: "Aus dem Datei-Storage" NOSOURCE: "Bitte wählen Sie eine Datei aus" REPLACE: "%s ersetzen" - FileIFrameField.ss: - TITLE: "Bildupload-Iframe" - Folder: - CREATED: "Zuerst hochgeladen" - DELSELECTED: "Löschen selektierte Dateien" - DETAILSTAB: "Detail" - FILENAME: "Dateiname" - FILESTAB: "Dateien" - LASTEDITED: "Zuletzt geändert" - PLURALNAME: "Ordner" - SINGULARNAME: "Ordner" - TITLE: "Titel" - TYPE: "Typ" - UPLOADTAB: "Hochladen" - URL: "URL" - VIEWEDITASSET: "Ansehen/Editieren Anlage" ForgotPasswordEmail.ss: HELLO: "Hallo" TEXT1: "Hier ist Ihr" @@ -175,13 +157,9 @@ de: DefaultGroupTitleAdministrators: "Administratoren" DefaultGroupTitleContentAuthors: "Inhaltsautoren" Description: "Beschreibung" - IMPORTTABTITLE: "Import" - IPRestrictions: "IP-Adress-Beschränkungen" Locked: "Gesperrt?" - PLURALNAME: "Gruppen" Parent: "Elterngruppe" RolesAddEditLink: "Rollen hinzufügen/editieren" - SINGULARNAME: "Gruppe" Sort: "Sortierreihenfolge" has_many_Permissions: "Berechtigungen" many_many_Members: "Mitglieder" @@ -196,13 +174,12 @@ de:

  • Gruppen-Hierarchien können über die ParentCode Spalte definiert werden.
  • Berechtigungscodes können über die Splate PermissionCode zugewiesen werden, vorhandene Berechtigungen werden nicht gelöscht.
  • - ResultCreated: "%d Gruppen erstellt" + + ResultCreated: "%d Gruppen erstellt" ResultDeleted: "%d Gruppen gelöscht" ResultUpdated: "%d Gruppen aktualisiert" HtmlEditorField: ANCHORVALUE: "Anker" - BUTTONINSERTFLASH: "Flash einfügen" - BUTTONINSERTIMAGE: "Bild einfügen" BUTTONINSERTLINK: "Verweis einfügen" BUTTONREMOVELINK: "Verweise entfernen" CAPTIONTEXT: "Beschriftungstext" @@ -213,7 +190,6 @@ de: CSSCLASSRIGHT: "Rechts, mit umfließendem Text" EMAIL: "E-Mail-Adresse" FILE: "Datei" - FLASH: "Flash" FOLDER: "Ordner" IMAGE: "Bild" IMAGEALTTEXT: "Alternativer Text (alt) - angezeigt, wenn das Bild nicht dargestellt werden kann" @@ -229,20 +205,11 @@ de: LINKFILE: "Datei herunterladen" LINKINTERNAL: "Seite auf der Website" LINKOPENNEWWIN: "Verweis in neuem Fenster öffnen?" - LINKTEXT: "Link Text" LINKTO: "Verweis zu" PAGE: "Seite" - SEARCHFILENAME: "Suche mit Dateiname" - SHOWUPLOADFORM: "Datei hochladen" URL: "URL" - Image: - PLURALNAME: "Bilder" - SINGULARNAME: "Bild" ImageField: IMAGE: "Bild" - Image_Cached: - PLURALNAME: "Dateien" - SINGULARNAME: "Datei" Image_iframe.ss: TITLE: "Iframe Bilder hochladen" LeftAndMain: @@ -254,13 +221,9 @@ de: PERMDEFAULT: "Bitte wählen Sie eine Authentifizierungsmethode und geben Sie Ihre Benutzerdaten für den Zugang zum CMS ein." PLEASESAVE: "Diese Seite konnte nicht aktualisiert werden weil sie noch nicht gespeichert wurde - bitte speichern." SAVED: "gespeichert" - LeftAndMain_right.ss: - WELCOMETO: "Willkommen zu" LoginAttempt: Email: "E-Mail-Adresse" IP: "IP-Adresse" - PLURALNAME: "Loginversuche" - SINGULARNAME: "Loginversuch" Status: "Status" Member: ADDRESS: "Adresse" @@ -322,83 +285,42 @@ de:
  • Vorhandene Mitglieder werden über ihren eindeutigen Code ermittelt und mit den Werten aus der importierten Datei aktualisiert.
  • Gruppen können über die Spalte Gruppen zugewiesen werden. Gruppen werden über ihren eindeutigen Code ermittelt, mehrere Gruppen können durch ein Komma getrennt werden. Vorhandene Gruppenzugehörigkeiten werden nicht gelöscht.
  • - ResultCreated: "%d Mitglieder erstellt" + + ResultCreated: "%d Mitglieder erstellt" ResultDeleted: "%d Mitglieder gelöscht" ResultNone: "Keine Änderungen" ResultUpdated: "%d Mitglieder aktualisiert" - MemberPassword: - PLURALNAME: "Benutzerpasswörter" - SINGULARNAME: "Benutzerpasswort" - MemberTableField: - ADD: "Hinzufügen" - ADDEDTOGROUP: "Mitglied zu Gruppe hinzugefügt" - ADDINGFIELD: "Hinzufügen fehlgeschlagen" - DeleteTitleText: "Aus dieser Gruppe entfernen" - DeleteTitleTextDatabase: "Aus der Datenbank und aus allen Gruppen löschen" - ERRORADDINGUSER: "Ein Fehler ist aufgetreten beim Versuch, den Benutzer zur Gruppe %s hinzuzufügen." - FILTER: "Filter" - SEARCH: "Suche" ModelAdmin: - ADDBUTTON: "Hinzufügen" - ADDFORM: "Fügen Sie einen Datensatz vom Typ \"%s\" hinzu." - CHOOSE_COLUMNS: "Spalten in Suchergebnissen" - CLEAR_SEARCH: "Zurücksetzen" - CREATEBUTTON: "Erstelle '%s'" DELETE: "Löschen" DELETEDRECORDS: "%s Datensätze gelöscht." - FOUNDRESULTS: "%s Suchergebnisse" IMPORT: "CSV Import" IMPORTEDRECORDS: "%s Datensätze importiert." - ITEMNOTFOUND: "Keine Datensätze gefunden" - LOADEDFOREDITING: "'%s' geladen" NOCSVFILE: "Wählen sie eine CSV-Datei zum Importieren" NOIMPORT: "Kein Import notwendig." - NORESULTS: "Keine Ergebnisse" - SAVE: "Speichern" - SEARCHRESULTS: "Suchergebnisse" - SELECTALL: "Alle Spalten" - SELECTNONE: "Keine Spalten" UPDATEDRECORDS: "%s Datensätze aktualisiert." MoneyField: FIELDLABELAMOUNT: "Betrag" FIELDLABELCURRENCY: "Währung" - MyEntity: - MyNamespace: "Mein standard natürlicher Sprachwert" - MyNamespace: - MYENTITY: "Zähle %s Dinge" NullableField: IsNullLabel: "ist NULL" NumericField: VALIDATION: "%s ist keine Zahl, nur Zahlen dürfen in dieses Feld eingetragen werden" - VALIDATIONJS: "ist keine Ziffer. Dieses Feld akzeptiert nur Ziffern." - Page: - PLURALNAME: "Seiten" - SINGULARNAME: "Seite" Permission: AdminGroup: "Administrator" + CMS_ACCESS_CATEGORY: "CMS Zugriff" FULLADMINRIGHTS: "Unbeschränkte Administratorenrechte" FULLADMINRIGHTS_HELP: "Schließt alle anderen verfügbaren Berechtigungen ein" - PLURALNAME: "Zugriffsberechtigungen" - SINGULARNAME: "Zugriffsberechtigung" PermissionCheckboxSetField: AssignedTo: "zugewiesen zu \"%s\"" FromGroup: "Vererbt von Gruppe \"%s\"" FromRole: "Vererbt von Rolle \"%s\"" FromRoleOnGroup: "geerbt von Rolle \"%s\" für die Gruppe \"%s\"" - PermissionRole: - PLURALNAME: "Rollen" - SINGULARNAME: "Rolle" - PermissionRoleCode: - PLURALNAME: "Berechtigungsrollencodes" - SINGULARNAME: "Berechtigungsrollencode" Permissions: PERMISSIONS_CATEGORY: "Rollen und Zugriffsberechtigungen" PhoneNumberField: VALIDATION: "Bitte geben Sie eine gültige Telefonnummer ein" RelationComplexTableField.ss: ADD: "Hinzufügen" - CSVEXPORT: "CSV Export" - NOTFOUND: "Keine Artikel gefunden" ReportAdmin: MENUTITLE: "Berichte" Security: @@ -408,38 +330,28 @@ de: CHANGEPASSWORDHEADER: "Passwort ändern" ENTERNEWPASSWORD: "Bitte geben Sie ein neues Passwort ein" ERRORPASSWORDPERMISSION: "Sie müssen eingeloggt sein, um Ihr Passwort ändern zu können!" - IPADDRESSES: "IP-Adressen" LOGGEDOUT: "Sie wurden ausgeloggt. Wenn Sie sich wieder einloggen möchten, geben Sie bitte unten Ihre Zugangsdaten ein." LOGIN: "Anmelden" - LOSTPASSWORDHEADER: "Passwort vergessen" NOTEPAGESECURED: "Diese Seite ist geschützt. Bitte melden Sie sich an und Sie werden sofort weitergeleitet." NOTERESETLINKINVALID: "

    Der Passwort-Reset Link ist abgelaufen.

    Sie können hier einen neuen beantragen oder Sie ändern Ihr Kennwort nach dem Anmelden.

    " NOTERESETPASSWORD: "Geben Sie Ihre E-Mail-Adresse ein und wir werden Ihnen einen Link zuschicken, mit dem Sie Ihr Passwort zurücksetzen können." PASSWORDSENTHEADER: "Link zur Passwortrücksetzung versandt an %s" PASSWORDSENTTEXT: "Vielen Dank! Ein Link zum Zurücksetzen wurde an '%s' verschickt - unter der Voraussetzung, dass für diese E-Mail-Adresse ein Benutzerkonto existiert." SecurityAdmin: - ADDMEMBER: "Mitglied hinzufügen" + ACCESS_HELP: "Benutzer hinzufügen, anzeigen und editieren sowie diesen Berechtigungen und Rollen zuweisen." APPLY_ROLES: "Rollen zu Gruppen zuweisen" APPLY_ROLES_HELP: "Möglichkeit die Zuweisungen von Rollen zu Gruppen zu editieren. Erfordert Zugriff auf den Bereich \"Sicherheit\"." EDITPERMISSIONS: "Bearbeiten der Rechte und IP-Adressen für jede Gruppe" EDITPERMISSIONS_HELP: "Möglichkeit Berechtigungen und IP-Adressen einer Gruppen zu editieren. Erfordert Zugriff auf den Bereich \"Sicherheit\"." GROUPNAME: "Gruppenname" - IPADDRESSESHELP: | -

    Sie können diese Gruppe auf bestimmte IP-Bereiche beschränken. Tragen Sie einen Bereich pro Reihe ein.
    Folgende Schreibweisen sind möglich:
    - 203.96.152.12
    - 203.96.152/24
    - 203.96/16
    - 203/8

    Wenn Sie eine oder mehrere IP-Adressbereiche in dieses Feld eintragen, werden die Mitglieder nur noch Zugriff bekommen, wenn sie sich aus diesen IP-Adressbereichen anmelden. Diese Beschränkung verhindert nicht die Anmeldung eines Nutzers. Denn möglicherweise muss sich der User einloggen, um auf nicht geschütze Bereiche des Systems zugreifen zu können. MEMBERS: "Mitglieder" + MEMBERS: "Mitglieder" MENUTITLE: "Sicherheit" MemberListCaution: "Achtung: Das Entfernen von Mitgliedern aus dieser Liste löscht diese auch aus der Datenbank sowie die entsprechenden Gruppenzuweisungen." NEWGROUP: "Neue Gruppe" PERMISSIONS: "Berechtigungen" ROLES: "Rollen" ROLESDESCRIPTION: "Hier können Sie der Gruppe Rollen zuweisen. Rollen sind logische Gruppierungen von Berechtigungen." - SGROUPS: "Sicherheitsgruppen" - TABIMPORT: "Import" TABROLES: "Rollen" - VIEWUSER: "Benutzer ansehen" SecurityAdmin_MemberImportForm: BtnImport: "Import" FileFieldLabel: "CSV Datei (Erlaubte Dateierweiterung: *.csv)" @@ -451,19 +363,14 @@ de: ISREQUIRED: "Bei %s wird \"%s\" benötigt," TableField.ss: ADD: "Eine neue Zeile hinzufügen" - ADDITEM: "%s hinzufügen" TableListField: CSVEXPORT: "Exportieren zu CSV" PRINT: "drucken" SELECT: "Auswählen:" TableListField.ss: - NOITEMSFOUND: "Keine Einträge gefunden" SORTASC: "Aufsteigend sortieren" SORTDESC: "Absteigend sortieren" TableListField_PageControls.ss: - DISPLAYING: "Zeige" - OF: "von" - TO: "bis" VIEWFIRST: "Ersten anzeigen" VIEWLAST: "Letzten anzeigen" VIEWNEXT: "Nächsten anzeigen" diff --git a/lang/el.yml b/lang/el.yml index 406c15e9d..fb16688ac 100644 --- a/lang/el.yml +++ b/lang/el.yml @@ -1,25 +1,11 @@ el: AssetAdmin: - CHOOSEFILE: "Επιλογή αρχείου" MENUTITLE: "Αρχεία & Εικόνες" CMSMain: MENUTITLE: "Περιεχόμενο" SAVE: "Αποθήκευση" - ChangePasswordEmail.ss: - CHANGEPASSWORDTEXT1: "Αλλάξατε το κωδικό ασφαλείας σας για το" - ComplexTableField.ss: - ADDITEM: "Προσθήκη" - DropdownField: - CHOOSE: "(Επιλέξτε)" - HtmlEditorField: LeftAndMain: HELP: "Βοήθεια" SAVED: "αποθηκεύτηκαν" - Member: - EMAIL: "Email" - INTERFACELANG: "Γλώσσα Εφαρμογής" - SUBJECTPASSWORDCHANGED: "Ο κωδικός ασφαλείας σας έχει αλλάξει" - SUBJECTPASSWORDRESET: "Σύνδεσμος επαναφοράς κωδικού ασφαλείας" SecurityAdmin: MENUTITLE: "Ασφάλεια" - SiteTree: diff --git a/lang/en.yml b/lang/en.yml index dacc5ad3a..c06477c02 100644 --- a/lang/en.yml +++ b/lang/en.yml @@ -1,522 +1,572 @@ en: AssetAdmin: - MENUTITLE: Files - NEWFOLDER: NewFolder + # Menu title + MENUTITLE: "Files" + NEWFOLDER: "NewFolder" AssetTableField: - BACKLINKCOUNT: 'Used on:' - CREATED: 'First uploaded' - DIM: Dimensions - FILENAME: Filename - FOLDER: Folder - LASTEDIT: 'Last changed' - OWNER: Owner - PAGES: page(s) - SIZE: 'File size' - TITLE: Title - TYPE: 'File type' - URL: URL + BACKLINKCOUNT: "Used on:" + CREATED: "First uploaded" + DIM: "Dimensions" + FILENAME: "Filename" + FOLDER: "Folder" + LASTEDIT: "Last changed" + OWNER: "Owner" + PAGES: "page(s)" + SIZE: "File size" + TITLE: "Title" + TYPE: "File type" + URL: "URL" AssetUploadField: - ChooseFiles: 'Choose files' - DRAGFILESHERE: 'Drag files here' - DROPAREA: 'Drop Area' - EDITANDORGANIZE: 'Edit & organize' - FROMCOMPUTER: 'Choose files from your computer' - UPLOADOR: OR + ChooseFiles: "Choose files" + DRAGFILESHERE: "Drag files here" + DROPAREA: "Drop Area" + EDITANDORGANIZE: "Edit & organize" + FROMCOMPUTER: "Choose files from your computer" + UPLOADOR: "OR" BBCodeParser: - ALIGNEMENT: Alignment - ALIGNEMENTEXAMPLE: 'right aligned' - BOLD: 'Bold Text' - BOLDEXAMPLE: Bold - CODE: 'Code Block' - CODEDESCRIPTION: 'Unformatted code block' - CODEEXAMPLE: 'Code block' - COLORED: 'Colored text' - COLOREDEXAMPLE: 'blue text' - EMAILLINK: 'Email link' - EMAILLINKDESCRIPTION: 'Create link to an email address' - IMAGE: Image - IMAGEDESCRIPTION: 'Show an image in your post' - ITALIC: 'Italic Text' - ITALICEXAMPLE: Italics - LINK: 'Website link' - LINKDESCRIPTION: 'Link to another website or URL' - STRUCK: 'Struck-out Text' - STRUCKEXAMPLE: Struck-out - UNDERLINE: 'Underlined Text' - UNDERLINEEXAMPLE: Underlined - UNORDERED: 'Unordered list' - UNORDEREDDESCRIPTION: 'Unordered list' - UNORDEREDEXAMPLE1: 'unordered item 1' + ALIGNEMENT: "Alignment" + ALIGNEMENTEXAMPLE: "right aligned" + BOLD: "Bold Text" + BOLDEXAMPLE: "Bold" + CODE: "Code Block" + CODEDESCRIPTION: "Unformatted code block" + CODEEXAMPLE: "Code block" + COLORED: "Colored text" + COLOREDEXAMPLE: "blue text" + EMAILLINK: "Email link" + EMAILLINKDESCRIPTION: "Create link to an email address" + IMAGE: "Image" + IMAGEDESCRIPTION: "Show an image in your post" + ITALIC: "Italic Text" + ITALICEXAMPLE: "Italics" + LINK: "Website link" + LINKDESCRIPTION: "Link to another website or URL" + STRUCK: "Struck-out Text" + STRUCKEXAMPLE: "Struck-out" + UNDERLINE: "Underlined Text" + UNDERLINEEXAMPLE: "Underlined" + UNORDERED: "Unordered list" + UNORDEREDDESCRIPTION: "Unordered list" + UNORDEREDEXAMPLE1: "unordered item 1" BasicAuth: - ENTERINFO: 'Please enter a username and password.' - ERRORNOTADMIN: 'That user is not an administrator.' - ERRORNOTREC: 'That username / password isn''t recognised' + ENTERINFO: "Please enter a username and password." + ERRORNOTADMIN: "That user is not an administrator." + ERRORNOTREC: "That username / password isn't recognised" Boolean: - ANY: Any - NO: No - YES: Yes + ANY: "Any" + NO: "No" + YES: "Yes" CMSFileAddController: - MENUTITLE: Files + # Menu title + MENUTITLE: "Files" CMSMain: - ACCESS: 'Access to ''%s'' section' - ACCESSALLINTERFACES: 'Access to all CMS sections' - ACCESSALLINTERFACESHELP: 'Overrules more specific access settings.' - MENUTITLE: 'Edit Page' - SAVE: Save + ACCESS: "Access to '%s' section" + ACCESSALLINTERFACES: "Access to all CMS sections" + ACCESSALLINTERFACESHELP: "Overrules more specific access settings." + # Menu title + MENUTITLE: "Edit Page" + SAVE: "Save" CMSPageAddController: - MENUTITLE: 'Add page' + # Menu title + MENUTITLE: "Add page" CMSPageEditController: - MENUTITLE: 'Edit Page' + # Menu title + MENUTITLE: "Edit Page" CMSPageHistoryController: - MENUTITLE: History + # Menu title + MENUTITLE: "History" CMSPageSettingsController: - MENUTITLE: 'Edit Page' + # Menu title + MENUTITLE: "Edit Page" CMSPagesController: - MENUTITLE: Pages + # Menu title + MENUTITLE: "Pages" CMSProfileController: - MENUTITLE: CMSProfileController + # Menu title + MENUTITLE: "CMSProfileController" CMSSettingsController: - MENUTITLE: Settings + # Menu title + MENUTITLE: "Settings" ChangePasswordEmail.ss: - CHANGEPASSWORDTEXT1: 'You changed your password for' - CHANGEPASSWORDTEXT2: 'You can now use the following credentials to log in:' - EMAIL: Email - HELLO: Hi - PASSWORD: Password + # for a url + CHANGEPASSWORDTEXT1: "You changed your password for" + CHANGEPASSWORDTEXT2: "You can now use the following credentials to log in:" + EMAIL: "Email" + HELLO: "Hi" + PASSWORD: "Password" CheckboxField: - NO: No - YES: Yes + NO: "No" + YES: "Yes" ComplexTableField: - CLOSEPOPUP: 'Close Popup' - SUCCESSADD: 'Added %s %s %s' - SUCCESSEDIT: 'Saved %s %s %s' - SUCCESSEDIT2: 'Deleted %s %s' + CLOSEPOPUP: "Close Popup" + SUCCESSADD: "Added %s %s %s" + SUCCESSEDIT: "Saved %s %s %s" + SUCCESSEDIT2: "Deleted %s %s" ComplexTableField.ss: - ADDITEM: add - SORTASC: 'Sort ascending' - SORTDESC: 'Sort descending' + ADDITEM: "add" + SORTASC: "Sort ascending" + SORTDESC: "Sort descending" ComplexTableField_popup.ss: - NEXT: Next - PREVIOUS: Previous + NEXT: "Next" + PREVIOUS: "Previous" ConfirmedPasswordField: - ATLEAST: 'Passwords must be at least %s characters long.' - BETWEEN: 'Passwords must be %s to %s characters long.' - MAXIMUM: 'Passwords must be at most %s characters long.' - SHOWONCLICKTITLE: 'Change Password' + ATLEAST: "Passwords must be at least %s characters long." + BETWEEN: "Passwords must be %s to %s characters long." + MAXIMUM: "Passwords must be at most %s characters long." + # Label of the link which triggers display of the "change password" formfields + SHOWONCLICKTITLE: "Change Password" CreditCardField: - FIRST: first - FOURTH: fourth - SECOND: second - THIRD: third + FIRST: "first" + FOURTH: "fourth" + SECOND: "second" + THIRD: "third" CurrencyField: - CURRENCYSYMBOL: $ + CURRENCYSYMBOL: "$" DataObject: - PLURALNAME: 'Data Objects' - SINGULARNAME: 'Data Object' + # Pural name of the object, used in dropdowns and to generally identify a collection of this object in the interface + PLURALNAME: "Data Objects" + # Singular name of the object, used in dropdowns and to generally identify a single object in the interface + SINGULARNAME: "Data Object" Date: - DAY: ' day' - DAYS: ' days' - HOUR: ' hour' - HOURS: ' hours' - MIN: ' min' - MINS: ' mins' - MONTH: ' month' - MONTHS: ' months' - SEC: ' sec' - SECS: ' secs' - TIMEDIFFAGO: '%s ago' - TIMEDIFFIN: 'in %s' - YEAR: ' year' - YEARS: ' years' + DAY: " day" + DAYS: " days" + HOUR: " hour" + HOURS: " hours" + MIN: " min" + MINS: " mins" + MONTH: " month" + MONTHS: " months" + SEC: " sec" + SECS: " secs" + # Natural language time difference, e.g. 2 hours ago + TIMEDIFFAGO: "%s ago" + # Natural language time difference, e.g. in 2 hours + TIMEDIFFIN: "in %s" + YEAR: " year" + YEARS: " years" DateField: - NOTSET: 'not set' - TODAY: today - VALIDDATEFORMAT2: 'Please enter a valid date format (%s).' - VALIDDATEMAXDATE: 'Your date has to be older or matching the maximum allowed date (%s)' - VALIDDATEMINDATE: 'Your date has to be newer or matching the minimum allowed date (%s)' + NOTSET: "not set" + TODAY: "today" + VALIDDATEFORMAT2: "Please enter a valid date format (%s)." + VALIDDATEMAXDATE: "Your date has to be older or matching the maximum allowed date (%s)" + VALIDDATEMINDATE: "Your date has to be newer or matching the minimum allowed date (%s)" DropdownField: - CHOOSE: (Choose) + # start value of a dropdown + CHOOSE: "(Choose)" EmailField: - VALIDATION: 'Please enter an email address.' + VALIDATION: "Please enter an email address." Email_BounceRecord: - PLURALNAME: 'Email Bounce Records' - SINGULARNAME: 'Email Bounce Record' + # Pural name of the object, used in dropdowns and to generally identify a collection of this object in the interface + PLURALNAME: "Email Bounce Records" + # Singular name of the object, used in dropdowns and to generally identify a single object in the interface + SINGULARNAME: "Email Bounce Record" Enum: - ANY: Any + ANY: "Any" File: - Content: Content - Filename: Filename - INVALIDEXTENSION: 'Extension is not allowed (valid: %s)' - NOFILESIZE: 'Filesize is zero bytes.' - NOVALIDUPLOAD: 'File is not a valid upload' - Name: null - PLURALNAME: Files - SINGULARNAME: File - TOOLARGE: 'Filesize is too large, maximum %s allowed.' - Title: Title + Content: "Content" + Filename: "Filename" + INVALIDEXTENSION: "Extension is not allowed (valid: %s)" + NOFILESIZE: "Filesize is zero bytes." + NOVALIDUPLOAD: "File is not a valid upload" + Name: "Name" + # Pural name of the object, used in dropdowns and to generally identify a collection of this object in the interface + PLURALNAME: "Files" + # Singular name of the object, used in dropdowns and to generally identify a single object in the interface + SINGULARNAME: "File" + TOOLARGE: "Filesize is too large, maximum %s allowed." + Title: "Title" FileIFrameField: - ATTACH: 'Attach %s' - ATTACHONCESAVED: '%ss can be attached once you have saved the record for the first time.' - DELETE: 'Delete %s' - DISALLOWEDFILETYPE: 'This filetype is not allowed to be uploaded' - FILE: File - FROMCOMPUTER: 'From your Computer' - FROMFILESTORE: 'From the File Store' - NOSOURCE: 'Please select a source file to attach' - REPLACE: 'Replace %s' + ATTACH: "Attach %s" + ATTACHONCESAVED: "%ss can be attached once you have saved the record for the first time." + DELETE: "Delete %s" + DISALLOWEDFILETYPE: "This filetype is not allowed to be uploaded" + FILE: "File" + FROMCOMPUTER: "From your Computer" + FROMFILESTORE: "From the File Store" + NOSOURCE: "Please select a source file to attach" + REPLACE: "Replace %s" FileIFrameField_iframe.ss: - TITLE: 'Image Uploading Iframe' - Filesystem: - SYNCRESULTS: 'Sync complete: %s items created, %d items deleted' - Folder: - PLURALNAME: Folders - SINGULARNAME: Folder + TITLE: "Image Uploading Iframe" ForgotPasswordEmail.ss: - HELLO: Hi - TEXT1: 'Here is your' - TEXT2: 'password reset link' - TEXT3: for + HELLO: "Hi" + TEXT1: "Here is your" + TEXT2: "password reset link" + TEXT3: "for" Form: - FIELDISREQUIRED: '%s is required' - VALIDATIONCREDITNUMBER: 'Please ensure you have entered the %s credit card number correctly.' - VALIDATIONFAILED: 'Validation failed' - VALIDATIONNOTUNIQUE: 'The value entered is not unique' - VALIDATIONPASSWORDSDONTMATCH: 'Passwords don''t match' - VALIDATIONPASSWORDSNOTEMPTY: 'Passwords can''t be empty' - VALIDATIONSTRONGPASSWORD: 'Passwords must have at least one digit and one alphanumeric character.' - VALIDATOR: Validator - VALIDCURRENCY: 'Please enter a valid currency.' + FIELDISREQUIRED: "%s is required" + VALIDATIONCREDITNUMBER: "Please ensure you have entered the %s credit card number correctly." + VALIDATIONFAILED: "Validation failed" + VALIDATIONNOTUNIQUE: "The value entered is not unique" + VALIDATIONPASSWORDSDONTMATCH: "Passwords don't match" + VALIDATIONPASSWORDSNOTEMPTY: "Passwords can't be empty" + VALIDATIONSTRONGPASSWORD: "Passwords must have at least one digit and one alphanumeric character." + VALIDATOR: "Validator" + VALIDCURRENCY: "Please enter a valid currency." FormField: - NONE: none + NONE: "none" GridAction: - Delete: Delete - UnlinkRelation: Unlink + Delete: "Delete" + UnlinkRelation: "Unlink" GridField: - AddNew: 'Add New' - Filter: Filter - Find: Find - LinkExisting: 'Link Existing' - NewRecord: 'New %s' - NoItemsFound: 'No items found' - PRINTEDAT: 'Printed at' - PRINTEDBY: 'Printed by' - PlaceHolder: 'Find %s' - PlaceHolderWithLabels: 'Find %s by %s' - RelationSearch: 'Relation search' - ResetFilter: Reset + AddNew: "Add New" + Filter: "Filter" + Find: "Find" + LinkExisting: "Link Existing" + NewRecord: "New %s" + NoItemsFound: "No items found" + PRINTEDAT: "Printed at" + PRINTEDBY: "Printed by" + # Find + PlaceHolder: "Find %s" + # Find by + PlaceHolderWithLabels: "Find %s by %s" + RelationSearch: "Relation search" + ResetFilter: "Reset" GridFieldAction_Delete: - DeletePermissionsFailure: 'No delete permissions' + DeletePermissionsFailure: "No delete permissions" GridFieldDetailsForm: - Create: Create - Delete: Delete - DeletePermissionsFailure: 'No delete permissions' - Save: Save + Create: "Create" + Delete: "Delete" + DeletePermissionsFailure: "No delete permissions" + Save: "Save" GridFieldItemEditView.ss: - 'Go back': 'Go back' + Go back: "Go back" Group: - AddRole: 'Add a role for this group' - Code: 'Group Code' - DefaultGroupTitleAdministrators: Administrators - DefaultGroupTitleContentAuthors: 'Content Authors' - Description: Description - GroupReminder: 'If you choose a parent group, this group will take all it''s roles' - Locked: 'Locked?' - NoRoles: 'No roles found' - PLURALNAME: Groups - Parent: 'Parent Group' - RolesAddEditLink: 'Manage roles' - SINGULARNAME: Group - Sort: 'Sort Order' - has_many_Permissions: Permissions - many_many_Members: Members + AddRole: "Add a role for this group" + # Programmatical code identifying a group + Code: "Group Code" + DefaultGroupTitleAdministrators: "Administrators" + DefaultGroupTitleContentAuthors: "Content Authors" + Description: "Description" + GroupReminder: "If you choose a parent group, this group will take all it's roles" + # Group is locked in the security administration area + Locked: "Locked?" + NoRoles: "No roles found" + # One group has one parent group + Parent: "Parent Group" + RolesAddEditLink: "Manage roles" + Sort: "Sort Order" + # One group has many permissions + has_many_Permissions: "Permissions" + # One group has many members + many_many_Members: "Members" GroupImportForm: - Help1: '

    Import one or more groups in CSV format (comma-separated values). Show advanced usage

    ' - Help2: "
    \n

    Advanced usage

    \n
      \n
    • Allowed columns: %s
    • \n
    • Existing groups are matched by their unique Code value, and updated with any new values from the imported file
    • \n
    • Group hierarchies can be created by using a ParentCode column.
    • \n
    • Permission codes can be assigned by the PermissionCode column. Existing permission codes are not cleared.
    • \n
    \n
    " - ResultCreated: 'Created %d groups' - ResultDeleted: 'Deleted %d groups' - ResultUpdated: 'Updated %d groups' + Help1: "

    Import one or more groups in CSV format (comma-separated values). Show advanced usage

    " + Help2: | +
    +

    Advanced usage

    +
      +
    • Allowed columns: %s
    • +
    • Existing groups are matched by their unique Code value, and updated with any new values from the imported file
    • +
    • Group hierarchies can be created by using a ParentCode column.
    • +
    • Permission codes can be assigned by the PermissionCode column. Existing permission codes are not cleared.
    • +
    +
    + ResultCreated: "Created %d groups" + ResultDeleted: "Deleted %d groups" + ResultUpdated: "Updated %d groups" + Hierarchy: + # First argument is the class that makes up the hierarchy. + InfiniteLoopNotAllowed: "Infinite loop found within the \"%s\" hierarchy. Please change the parent to resolve this" HtmlEditorField: - ANCHORVALUE: Anchor - BUTTONINSERT: Insert - BUTTONINSERTLINK: 'Insert link' - BUTTONREMOVELINK: 'Remove link' - CAPTIONTEXT: 'Caption text' - CSSCLASS: 'Alignment / style' - CSSCLASSCENTER: 'Centered, on its own.' - CSSCLASSLEFT: 'On the left, with text wrapping around.' - CSSCLASSLEFTALONE: 'On the left, on its own.' - CSSCLASSRIGHT: 'On the right, with text wrapping around.' - DETAILS: Details - EMAIL: 'Email address' - EditDetails: 'Edit details' - FILE: File - FOLDER: Folder - FROMCMS: 'From the CMS' - FROMCOMPUTER: 'From your computer' - Find: Find - IMAGE: 'Insert Image' - IMAGEALTTEXT: 'Alternative text (alt) - shown if image cannot be displayed' - IMAGEDIMENSIONS: Dimensions - IMAGEHEIGHTPX: Height - IMAGETITLE: 'Title text (tooltip) - for additional information about the image' - IMAGEWIDTHPX: Width - LINK: 'Insert Link' - LINKANCHOR: 'Anchor on this page' - LINKDESCR: 'Link description' - LINKEMAIL: 'Email address' - LINKEXTERNAL: 'Another website' - LINKFILE: 'Download a file' - LINKINTERNAL: 'Page on the site' - LINKOPENNEWWIN: 'Open link in a new window?' - LINKTO: 'Link to' - PAGE: Page - URL: URL - Image: - PLURALNAME: Files - SINGULARNAME: File + ANCHORVALUE: "Anchor" + BUTTONINSERT: "Insert" + BUTTONINSERTLINK: "Insert link" + BUTTONREMOVELINK: "Remove link" + CAPTIONTEXT: "Caption text" + CSSCLASS: "Alignment / style" + CSSCLASSCENTER: "Centered, on its own." + CSSCLASSLEFT: "On the left, with text wrapping around." + CSSCLASSLEFTALONE: "On the left, on its own." + CSSCLASSRIGHT: "On the right, with text wrapping around." + DETAILS: "Details" + EMAIL: "Email address" + EditDetails: "Edit details" + FILE: "File" + FOLDER: "Folder" + FROMCMS: "From the CMS" + FROMCOMPUTER: "From your computer" + Find: "Find" + IMAGE: "Insert Image" + IMAGEALTTEXT: "Alternative text (alt) - shown if image cannot be displayed" + IMAGEDIMENSIONS: "Dimensions" + IMAGEHEIGHTPX: "Height" + IMAGETITLE: "Title text (tooltip) - for additional information about the image" + IMAGEWIDTHPX: "Width" + LINK: "Insert Link" + LINKANCHOR: "Anchor on this page" + LINKDESCR: "Link description" + LINKEMAIL: "Email address" + LINKEXTERNAL: "Another website" + LINKFILE: "Download a file" + LINKINTERNAL: "Page on the site" + LINKOPENNEWWIN: "Open link in a new window?" + LINKTO: "Link to" + PAGE: "Page" + URL: "URL" ImageField: - IMAGE: Image - Image_Cached: - PLURALNAME: Files - SINGULARNAME: File + IMAGE: "Image" Image_iframe.ss: - TITLE: 'Image Uploading Iframe' + TITLE: "Image Uploading Iframe" LeftAndMain: - CANT_REORGANISE: 'You do not have permission to rearange the site tree. Your change was not saved.' - DropdownBatchActionsDefault: Actions - HELP: Help - PAGETYPE: 'Page type: ' - PERMAGAIN: 'You have been logged out of the CMS. If you would like to log in again, enter a username and password below.' - PERMALREADY: 'I''m sorry, but you can''t access that part of the CMS. If you want to log in as someone else, do so below' - PERMDEFAULT: 'Please choose an authentication method and enter your credentials to access the CMS.' - PLEASESAVE: 'Please Save Page: This page could not be upated because it hasn''t been saved yet.' - SAVED: saved - SAVEDUP: null - VersionUnknown: unknown + CANT_REORGANISE: "You do not have permission to rearange the site tree. Your change was not saved." + DropdownBatchActionsDefault: "Actions" + # Menu title + HELP: "Help" + PAGETYPE: "Page type: " + PERMAGAIN: "You have been logged out of the CMS. If you would like to log in again, enter a username and password below." + PERMALREADY: "I'm sorry, but you can't access that part of the CMS. If you want to log in as someone else, do so below" + PERMDEFAULT: "Please choose an authentication method and enter your credentials to access the CMS." + PLEASESAVE: "Please Save Page: This page could not be upated because it hasn't been saved yet." + SAVED: "saved" + VersionUnknown: "unknown" LoginAttempt: - Email: 'Email Address' - IP: 'IP Address' - PLURALNAME: 'Login Attempts' - SINGULARNAME: 'Login Attempt' - Status: Status + Email: "Email Address" + IP: "IP Address" + Status: "Status" Member: - ADDRESS: Address - BUTTONCHANGEPASSWORD: 'Change Password' - BUTTONLOGIN: 'Log in' - BUTTONLOGINOTHER: 'Log in as someone else' - BUTTONLOSTPASSWORD: 'I''ve lost my password' - CONFIRMNEWPASSWORD: 'Confirm New Password' - CONFIRMPASSWORD: 'Confirm Password' - CONTACTINFO: 'Contact Information' - DefaultAdminFirstname: 'Default Admin' - DefaultDateTime: default - EMAIL: Email - EMAILSIGNUPINTRO1: 'Thanks for signing up to become a new member, your details are listed below for future reference.' - EMAILSIGNUPINTRO2: 'You can login to the website using the credentials listed below' - EMAILSIGNUPSUBJECT: 'Thanks for signing up' - EMPTYNEWPASSWORD: 'The new password can''t be empty, please try again' - ENTEREMAIL: 'Please enter an email address to get a password reset link.' - ERRORLOCKEDOUT: 'Your account has been temporarily disabled because of too many failed attempts at logging in. Please try again in 20 minutes.' - ERRORNEWPASSWORD: 'You have entered your new password differently, try again' - ERRORPASSWORDNOTMATCH: 'Your current password does not match, please try again' + ADDRESS: "Address" + BUTTONCHANGEPASSWORD: "Change Password" + BUTTONLOGIN: "Log in" + BUTTONLOGINOTHER: "Log in as someone else" + BUTTONLOSTPASSWORD: "I've lost my password" + CONFIRMNEWPASSWORD: "Confirm New Password" + CONFIRMPASSWORD: "Confirm Password" + CONTACTINFO: "Contact Information" + DefaultAdminFirstname: "Default Admin" + DefaultDateTime: "default" + EMAIL: "Email" + EMAILSIGNUPINTRO1: "Thanks for signing up to become a new member, your details are listed below for future reference." + EMAILSIGNUPINTRO2: "You can login to the website using the credentials listed below" + EMAILSIGNUPSUBJECT: "Thanks for signing up" + EMPTYNEWPASSWORD: "The new password can't be empty, please try again" + ENTEREMAIL: "Please enter an email address to get a password reset link." + ERRORLOCKEDOUT: "Your account has been temporarily disabled because of too many failed attempts at logging in. Please try again in 20 minutes." + ERRORNEWPASSWORD: "You have entered your new password differently, try again" + ERRORPASSWORDNOTMATCH: "Your current password does not match, please try again" ERRORWRONGCRED: "That doesn't seem to be the right e-mail address or password. Please try again." - FIRSTNAME: 'First Name' - GREETING: Welcome - INTERFACELANG: 'Interface Language' - INVALIDNEWPASSWORD: 'We couldn''t accept that password: %s' - LOGGEDINAS: 'You''re logged in as %s.' - MOBILE: Mobile - NAME: Name - NEWPASSWORD: 'New Password' - PASSWORD: Password - PHONE: Phone - PLURALNAME: Members - PROFILESAVESUCCESS: 'Successfully saved.' - REFRESHLANG: null - REMEMBERME: 'Remember me next time?' - SINGULARNAME: Member - SUBJECTPASSWORDCHANGED: 'Your password has been changed' - SUBJECTPASSWORDRESET: 'Your password reset link' - SURNAME: Surname - VALIDATIONMEMBEREXISTS: 'A member already exists with the same %s' - ValidationIdentifierFailed: 'Can''t overwrite existing member #%d with identical identifier (%s = %s))' - WELCOMEBACK: 'Welcome Back, %s' - YOUROLDPASSWORD: 'Your old password' - belongs_many_many_Groups: Groups - db_LastVisited: 'Last Visited Date' - db_Locale: 'Interface Locale' - db_LockedOutUntil: 'Locked out until' - db_NumVisit: 'Number of Visits' - db_Password: Password - db_PasswordExpiry: 'Password Expiry Date' + FIRSTNAME: "First Name" + GREETING: "Welcome" + # Language of the CMS + INTERFACELANG: "Interface Language" + INVALIDNEWPASSWORD: "We couldn't accept that password: %s" + LOGGEDINAS: "You're logged in as %s." + MOBILE: "Mobile" + NAME: "Name" + NEWPASSWORD: "New Password" + PASSWORD: "Password" + PHONE: "Phone" + # Pural name of the object, used in dropdowns and to generally identify a collection of this object in the interface + PLURALNAME: "Members" + PROFILESAVESUCCESS: "Successfully saved." + REMEMBERME: "Remember me next time?" + # Singular name of the object, used in dropdowns and to generally identify a single object in the interface + SINGULARNAME: "Member" + # Email subject + SUBJECTPASSWORDCHANGED: "Your password has been changed" + # Email subject + SUBJECTPASSWORDRESET: "Your password reset link" + SURNAME: "Surname" + VALIDATIONMEMBEREXISTS: "A member already exists with the same %s" + # The values in brackets show a fieldname mapped to a value, usually denoting an existing email address + ValidationIdentifierFailed: "Can't overwrite existing member #%d with identical identifier (%s = %s))" + WELCOMEBACK: "Welcome Back, %s" + YOUROLDPASSWORD: "Your old password" + # Security Groups this member belongs to + belongs_many_many_Groups: "Groups" + db_LastVisited: "Last Visited Date" + db_Locale: "Interface Locale" + # Security related date + db_LockedOutUntil: "Locked out until" + db_NumVisit: "Number of Visits" + db_Password: "Password" + # Password expiry date + db_PasswordExpiry: "Password Expiry Date" MemberAuthenticator: - TITLE: 'E-mail & Password' + TITLE: "E-mail & Password" MemberDatetimeOptionsetField: - AMORPM: 'AM (Ante meridiem) or PM (Post meridiem)' - Custom: Custom - DATEFORMATBAD: 'Date format is invalid' - DAYNOLEADING: 'Day of month without leading zero' - DIGITSDECFRACTIONSECOND: 'One or more digits representing a decimal fraction of a second' - FOURDIGITYEAR: 'Four-digit year' - FULLNAMEMONTH: 'Full name of month (e.g. June)' - HOURNOLEADING: 'Hour without leading zero' - MINUTENOLEADING: 'Minute without leading zero' - MONTHNOLEADING: 'Month digit without leading zero' - Preview: Preview - SHORTMONTH: 'Short name of month (e.g. Jun)' - TOGGLEHELP: 'Toggle formatting help' - TWODIGITDAY: 'Two-digit day of month' - TWODIGITHOUR: 'Two digits of hour (00 through 23)' - TWODIGITMINUTE: 'Two digits of minute (00 through 59)' - TWODIGITMONTH: 'Two-digit month (01=January, etc.)' - TWODIGITSECOND: 'Two digits of second (00 through 59)' - TWODIGITYEAR: 'Two-digit year' + # Help text describing what "a" means in ISO date formatting + AMORPM: "AM (Ante meridiem) or PM (Post meridiem)" + Custom: "Custom" + DATEFORMATBAD: "Date format is invalid" + # Help text describing what "d" means in ISO date formatting + DAYNOLEADING: "Day of month without leading zero" + # Help text describing what "s" means in ISO date formatting + DIGITSDECFRACTIONSECOND: "One or more digits representing a decimal fraction of a second" + # Help text describing what "YYYY" means in ISO date formatting + FOURDIGITYEAR: "Four-digit year" + # Help text describing what "MMMM" means in ISO date formatting + FULLNAMEMONTH: "Full name of month (e.g. June)" + # Help text describing what "h" means in ISO date formatting + HOURNOLEADING: "Hour without leading zero" + # Help text describing what "m" means in ISO date formatting + MINUTENOLEADING: "Minute without leading zero" + # Help text describing what "M" means in ISO date formatting + MONTHNOLEADING: "Month digit without leading zero" + Preview: "Preview" + # Help text letting describing what "MMM" means in ISO date formatting + SHORTMONTH: "Short name of month (e.g. Jun)" + TOGGLEHELP: "Toggle formatting help" + # Help text describing what "dd" means in ISO date formatting + TWODIGITDAY: "Two-digit day of month" + # Help text describing what "hh" means in ISO date formatting + TWODIGITHOUR: "Two digits of hour (00 through 23)" + # Help text describing what "mm" means in ISO date formatting + TWODIGITMINUTE: "Two digits of minute (00 through 59)" + # Help text describing what "MM" means in ISO date formatting + TWODIGITMONTH: "Two-digit month (01=January, etc.)" + # Help text describing what "ss" means in ISO date formatting + TWODIGITSECOND: "Two digits of second (00 through 59)" + # Help text describing what "YY" means in ISO date formatting + TWODIGITYEAR: "Two-digit year" MemberImportForm: - Help1: '

    Import users in CSV format (comma-separated values). Show advanced usage

    ' - Help2: "
    \n

    Advanced usage

    \n
      \n
    • Allowed columns: %s
    • \n
    • Existing users are matched by their unique Code property, and updated with any new values from the imported file.
    • \n
    • Groups can be assigned by the Groups column. Groups are identified by their Code property, multiple groups can be separated by comma. Existing group memberships are not cleared.
    • \n
    \n
    " - ResultCreated: 'Created %d members' - ResultDeleted: 'Deleted %d members' - ResultNone: 'No changes' - ResultUpdated: 'Updated %d members' - MemberPassword: - PLURALNAME: 'Member Passwords' - SINGULARNAME: 'Member Password' + Help1: "

    Import users in CSV format (comma-separated values). Show advanced usage

    " + Help2: | +
    +

    Advanced usage

    +
      +
    • Allowed columns: %s
    • +
    • Existing users are matched by their unique Code property, and updated with any new values from the imported file.
    • +
    • Groups can be assigned by the Groups column. Groups are identified by their Code property, multiple groups can be separated by comma. Existing group memberships are not cleared.
    • +
    +
    + ResultCreated: "Created %d members" + ResultDeleted: "Deleted %d members" + ResultNone: "No changes" + ResultUpdated: "Updated %d members" MemberTableField: - 'APPLY FILTER': 'Apply Filter' + APPLY FILTER: "Apply Filter" ModelAdmin: - CLASSTYPE: null - DELETE: Delete - DELETEDRECORDS: 'Deleted %s records.' - IMPORT: 'Import from CSV' - IMPORTEDRECORDS: 'Imported %s records.' - NOCSVFILE: 'Please browse for a CSV file to import' - NOIMPORT: 'Nothing to import' - RESET: Reset - UPDATEDRECORDS: 'Updated %s records.' + DELETE: "Delete" + DELETEDRECORDS: "Deleted %s records." + IMPORT: "Import from CSV" + IMPORTEDRECORDS: "Imported %s records." + NOCSVFILE: "Please browse for a CSV file to import" + NOIMPORT: "Nothing to import" + RESET: "Reset" + UPDATEDRECORDS: "Updated %s records." MoneyField: - FIELDLABELAMOUNT: Amount - FIELDLABELCURRENCY: Currency + FIELDLABELAMOUNT: "Amount" + FIELDLABELCURRENCY: "Currency" MyAdmin: - MENUTITLE: 'My Product Admin' + # Menu title + MENUTITLE: "My Product Admin" MyModelAdmin: - MENUTITLE: MyModel + # Menu title + MENUTITLE: "MyModel" NullableField: - IsNullLabel: 'Is Null' + IsNullLabel: "Is Null" NumericField: - VALIDATION: '''%s'' is not a number, only numbers can be accepted for this field' + VALIDATION: "'%s' is not a number, only numbers can be accepted for this field" Permission: - AdminGroup: Administrator - CMS_ACCESS_CATEGORY: 'CMS Access' - FULLADMINRIGHTS: 'Full administrative rights' - FULLADMINRIGHTS_HELP: 'Implies and overrules all other assigned permissions.' - PLURALNAME: Permissions - SINGULARNAME: Permission + AdminGroup: "Administrator" + CMS_ACCESS_CATEGORY: "CMS Access" + FULLADMINRIGHTS: "Full administrative rights" + FULLADMINRIGHTS_HELP: "Implies and overrules all other assigned permissions." PermissionCheckboxSetField: - AssignedTo: 'assigned to "%s"' - FromGroup: 'inherited from group "%s"' - FromRole: 'inherited from role "%s"' - FromRoleOnGroup: 'inherited from role "%s" on group "%s"' - PermissionRole: - PLURALNAME: Roles - SINGULARNAME: Role - PermissionRoleCode: - PLURALNAME: 'Permission Role Cods' - SINGULARNAME: 'Permission Role Code' + AssignedTo: "assigned to \"%s\"" + # A permission inherited from a certain group + FromGroup: "inherited from group \"%s\"" + # A permission inherited from a certain permission role + FromRole: "inherited from role \"%s\"" + # A permission inherited from a role on a certain group + FromRoleOnGroup: "inherited from role \"%s\" on group \"%s\"" Permissions: - PERMISSIONS_CATEGORY: 'Roles and access permissions' + PERMISSIONS_CATEGORY: "Roles and access permissions" PhoneNumberField: - VALIDATION: 'Please enter a valid phone number' + VALIDATION: "Please enter a valid phone number" RelationComplexTableField.ss: - ADD: Add + ADD: "Add" ReportAdmin: - MENUTITLE: Reports + # Menu title + MENUTITLE: "Reports" Security: - ALREADYLOGGEDIN: 'You don''t have access to this page. If you have another account that can access that page, you can log in again below.' - BUTTONSEND: 'Send me the password reset link' - CHANGEPASSWORDBELOW: 'You can change your password below.' - CHANGEPASSWORDHEADER: 'Change your password' - ENTERNEWPASSWORD: 'Please enter a new password.' - ERRORPASSWORDPERMISSION: 'You must be logged in in order to change your password!' - LOGGEDOUT: 'You have been logged out. If you would like to log in again, enter your credentials below.' - LOGIN: 'Log in' - LOSTPASSWORDHEADER: null - NOTEPAGESECURED: 'That page is secured. Enter your credentials below and we will send you right along.' - NOTERESETLINKINVALID: '

    The password reset link is invalid or expired.

    You can request a new one here or change your password after you logged in.

    ' - NOTERESETPASSWORD: 'Enter your e-mail address and we will send you a link with which you can reset your password' - PASSWORDSENTHEADER: 'Password reset link sent to ''%s''' - PASSWORDSENTTEXT: 'Thank you! A reset link has been sent to ''%s'', provided an account exists for this email address.' + # %s will be replaced with a link to log in. + ALREADYLOGGEDIN: "You don't have access to this page. If you have another account that can access that page, you can log in again below." + BUTTONSEND: "Send me the password reset link" + CHANGEPASSWORDBELOW: "You can change your password below." + CHANGEPASSWORDHEADER: "Change your password" + ENTERNEWPASSWORD: "Please enter a new password." + ERRORPASSWORDPERMISSION: "You must be logged in in order to change your password!" + LOGGEDOUT: "You have been logged out. If you would like to log in again, enter your credentials below." + LOGIN: "Log in" + NOTEPAGESECURED: "That page is secured. Enter your credentials below and we will send you right along." + NOTERESETLINKINVALID: "

    The password reset link is invalid or expired.

    You can request a new one here or change your password after you logged in.

    " + NOTERESETPASSWORD: "Enter your e-mail address and we will send you a link with which you can reset your password" + PASSWORDSENTHEADER: "Password reset link sent to '%s'" + PASSWORDSENTTEXT: "Thank you! A reset link has been sent to '%s', provided an account exists for this email address." SecurityAdmin: - ACCESS_HELP: 'Allow viewing, adding and editing users, as well as assigning permissions and roles to them.' - APPLY_ROLES: 'Apply roles to groups' - APPLY_ROLES_HELP: 'Ability to edit the roles assigned to a group. Requires the "Access to ''Users'' section" permission.' - EDITPERMISSIONS: 'Manage permissions for groups' - EDITPERMISSIONS_HELP: 'Ability to edit Permissions and IP Addresses for a group. Requires the "Access to ''Security'' section" permission.' - GROUPNAME: 'Group name' - IMPORTGROUPS: 'Import groups' - IMPORTUSERS: 'Import users' - MEMBERS: Members - MENUTITLE: null - MemberListCaution: 'Caution: Removing members from this list will remove them from all groups and the database' - NEWGROUP: 'New Group' - PERMISSIONS: Permissions - ROLES: Roles - ROLESDESCRIPTION: 'Roles are predefined sets of permissions, and can be assigned to groups.
    They are inherited from parent groups if required.' - TABROLES: Roles - Users: Users + ACCESS_HELP: "Allow viewing, adding and editing users, as well as assigning permissions and roles to them." + APPLY_ROLES: "Apply roles to groups" + APPLY_ROLES_HELP: "Ability to edit the roles assigned to a group. Requires the \"Access to 'Users' section\" permission." + EDITPERMISSIONS: "Manage permissions for groups" + EDITPERMISSIONS_HELP: "Ability to edit Permissions and IP Addresses for a group. Requires the \"Access to 'Security' section\" permission." + GROUPNAME: "Group name" + IMPORTGROUPS: "Import groups" + IMPORTUSERS: "Import users" + MEMBERS: "Members" + # Menu title + MENUTITLE: "Users" + MemberListCaution: "Caution: Removing members from this list will remove them from all groups and the database" + NEWGROUP: "New Group" + PERMISSIONS: "Permissions" + ROLES: "Roles" + ROLESDESCRIPTION: "Roles are predefined sets of permissions, and can be assigned to groups.
    They are inherited from parent groups if required." + TABROLES: "Roles" + Users: "Users" SecurityAdmin_MemberImportForm: - BtnImport: 'Import from CSV' - FileFieldLabel: 'CSV File (Allowed extensions: *.csv)' + BtnImport: "Import from CSV" + FileFieldLabel: "CSV File (Allowed extensions: *.csv)" SimpleImageField: - NOUPLOAD: 'No Image Uploaded' + NOUPLOAD: "No Image Uploaded" SiteTree: - TABMAIN: Main + TABMAIN: "Main" TableField: - ISREQUIRED: 'In %s ''%s'' is required.' + ISREQUIRED: "In %s '%s' is required." TableField.ss: - ADD: 'Add a new row' - DELETE: null - DELETEROW: null + ADD: "Add a new row" TableListField: - CSVEXPORT: 'Export to CSV' - PRINT: Print - Print: Print - SELECT: 'Select:' + CSVEXPORT: "Export to CSV" + PRINT: "Print" + Print: "Print" + SELECT: "Select:" TableListField.ss: - SORTASC: 'Sort in ascending order' - SORTDESC: 'Sort in descending order' + SORTASC: "Sort in ascending order" + SORTDESC: "Sort in descending order" TableListField_PageControls.ss: - VIEWFIRST: 'View first' - VIEWLAST: 'View last' - VIEWNEXT: 'View next' - VIEWPREVIOUS: 'View previous' + VIEWFIRST: "View first" + VIEWLAST: "View last" + VIEWNEXT: "View next" + VIEWPREVIOUS: "View previous" TestModelAdmin: - MENUTITLE: 'Test ModelAdmin' + # Menu title + MENUTITLE: "Test ModelAdmin" TextareaField_Readonly.ss: - NONE: none + NONE: "none" TimeField: - VALIDATEFORMAT: 'Please enter a valid time format (%s)' + VALIDATEFORMAT: "Please enter a valid time format (%s)" ToggleCompositeField.ss: - HIDE: Hide - SHOW: Show + HIDE: "Hide" + SHOW: "Show" ToggleField: - LESS: less - MORE: more + LESS: "less" + MORE: "more" UploadField: - ATTACHFILE: 'Attach a file' - ATTACHFILES: 'Attach files' - AttachFile: 'Attach file(s)' - DELETEINFO: 'Permanently delete this file from the file store' - DOEDIT: Save - DROPFILE: 'drop a file' - DROPFILES: 'drop files' - EDITINFO: 'Edit this file' - FIELDNOTSET: 'File information not found' - FROMCOMPUTER: 'From files' - MAXNUMBEROFFILES: 'Max number of %s file(s) exceeded.' - REMOVEERROR: 'Error removing file' - REMOVEINFO: 'Remove this file from here, but do not delete it from the file store' - STARTALL: 'Start all' - Saved: Saved + ATTACHFILE: "Attach a file" + ATTACHFILES: "Attach files" + AttachFile: "Attach file(s)" + DELETEINFO: "Permanently delete this file from the file store" + DOEDIT: "Save" + DROPFILE: "drop a file" + DROPFILES: "drop files" + EDITINFO: "Edit this file" + FIELDNOTSET: "File information not found" + FROMCOMPUTER: "From files" + MAXNUMBEROFFILES: "Max number of %s file(s) exceeded." + REMOVEERROR: "Error removing file" + REMOVEINFO: "Remove this file from here, but do not delete it from the file store" + STARTALL: "Start all" + Saved: "Saved" Versioned: - has_many_Versions: Versions - sapphire: null + # Past Versions of this page + has_many_Versions: "Versions" diff --git a/lang/en_ES.yml b/lang/en_ES.yml deleted file mode 100644 index f96e0339b..000000000 --- a/lang/en_ES.yml +++ /dev/null @@ -1,9 +0,0 @@ -en_ES: - AssetAdmin: - MENUTITLE: "Files & Images" - CMSMain: - MENUTITLE: "Site Content" - LeftAndMain: - HELP: "Help" - SecurityAdmin: - MENUTITLE: "Security" diff --git a/lang/en_GB.yml b/lang/en_GB.yml index 290b59c84..b51ebc87d 100644 --- a/lang/en_GB.yml +++ b/lang/en_GB.yml @@ -1,10 +1,17 @@ en_GB: AssetAdmin: - CHOOSEFILE: "Choose file:" MENUTITLE: "Files & Images" NEWFOLDER: "NewFolder" - AssetAdmin_left.ss: - GO: "Go" + AssetTableField: + CREATED: "First uploaded" + DIM: "Dimensions" + FILENAME: "Filename" + LASTEDIT: "Last changed" + OWNER: "Owner" + SIZE: "Size" + TITLE: "Title" + TYPE: "Type" + URL: "URL" BBCodeParser: ALIGNEMENT: "Alignment" ALIGNEMENTEXAMPLE: "right aligned" @@ -35,6 +42,8 @@ en_GB: ERRORNOTADMIN: "That user is not an administrator." ERRORNOTREC: "That username / password isn't recognised" CMSMain: + ACCESS: "Access to '%s' section" + ACCESSALLINTERFACES: "Access to all CMS sections" MENUTITLE: "Pages" SAVE: "Save" ChangePasswordEmail.ss: @@ -49,7 +58,6 @@ en_GB: SUCCESSEDIT: "Saved %s %s %s" ComplexTableField.ss: ADDITEM: "Add %s" - NOITEMSFOUND: "No items found" SORTASC: "Sort ascending" SORTDESC: "Sort descending" ComplexTableField_popup.ss: @@ -58,21 +66,15 @@ en_GB: ConfirmedPasswordField: ATLEAST: "Passwords must be at least %s characters long." BETWEEN: "Passwords must be %s to %s characters long." - HAVETOMATCH: "Passwords have to match." - LEASTONE: "Passwords must have at least one digit and one alphanumeric character." MAXIMUM: "Passwords must be at most %s characters long." - NOEMPTY: "Passwords can't be empty." SHOWONCLICKTITLE: "Change Password" CreditCardField: FIRST: "first" FOURTH: "fourth" SECOND: "second" THIRD: "third" - VALIDATIONJS1: "Please ensure you have entered the" - VALIDATIONJS2: "credit card number correctly." CurrencyField: CURRENCYSYMBOL: "$" - VALIDATIONJS: "Please enter a valid currency." DataObject: PLURALNAME: "Data Objects" SINGULARNAME: "Data Object" @@ -93,12 +95,10 @@ en_GB: DateField: NOTSET: "not set" TODAY: "today" - VALIDATIONJS: "Please enter a valid date format (DD/MM/YYYY)." DropdownField: CHOOSE: "(Choose)" EmailField: VALIDATION: "Please enter an email address." - VALIDATIONJS: "Please enter an email address." File: Content: "Content" Filename: "Filename" @@ -107,23 +107,8 @@ en_GB: Name: "Name" PLURALNAME: "Files" SINGULARNAME: "File" - Sort: "Sort Order" TOOLARGE: "Filesize is too large; maximum %s is allowed." Title: "Title" - Folder: - CREATED: "First Uploaded" - DELSELECTED: "Delete selected files" - DETAILSTAB: "Details" - FILENAME: "Filename" - FILESTAB: "Files" - LASTEDITED: "Last Updated" - PLURALNAME: "Files" - SINGULARNAME: "File" - TITLE: "Title" - TYPE: "Type" - UPLOADTAB: "Upload" - URL: "URL" - VIEWEDITASSET: "View/Edit Asset" ForgotPasswordEmail.ss: HELLO: "Hello" TEXT1: "Here is your" @@ -144,18 +129,13 @@ en_GB: Group: Code: "Group Code" Description: "Description" - IPRestrictions: "IP Address Restrictions" Locked: "Locked?" - PLURALNAME: "Groups" Parent: "Parent Group" - SINGULARNAME: "Group" Sort: "Sort Order" has_many_Permissions: "Permissions" many_many_Members: "Members" HtmlEditorField: ANCHORVALUE: "Anchor" - BUTTONINSERTFLASH: "Insert Flash" - BUTTONINSERTIMAGE: "Insert image" BUTTONINSERTLINK: "Insert link" BUTTONREMOVELINK: "Remove link" CSSCLASS: "Alignment / style" @@ -165,7 +145,6 @@ en_GB: CSSCLASSRIGHT: "On the right, with text wrapping around." EMAIL: "Email address" FILE: "File" - FLASH: "Flash" FOLDER: "Folder" IMAGE: "Image" IMAGEDIMENSIONS: "Dimensions" @@ -179,14 +158,9 @@ en_GB: LINKFILE: "Download a file" LINKINTERNAL: "Page on the site" LINKOPENNEWWIN: "Open link in a new window?" - LINKTEXT: "Link text" LINKTO: "Link to" PAGE: "Page" - SEARCHFILENAME: "Search by file name" URL: "URL" - Image: - PLURALNAME: "Files" - SINGULARNAME: "File" Image_iframe.ss: TITLE: "Image Uploading Iframe" LeftAndMain: @@ -200,8 +174,6 @@ en_GB: LoginAttempt: Email: "Email Address" IP: "IP Address" - PLURALNAME: "Log-in Attempts" - SINGULARNAME: "Log-in Attempt" Status: "Status" Member: ADDRESS: "Address" @@ -249,56 +221,22 @@ en_GB: db_PasswordExpiry: "Password Expiry Date" MemberAuthenticator: TITLE: "E-mail & Password" - MemberPassword: - PLURALNAME: "Member Passwords" - SINGULARNAME: "Member Password" - MemberTableField: - ADD: "Add" - ADDEDTOGROUP: "Added member to group" - ADDINGFIELD: "Adding failed" - FILTER: "Filter" - SEARCH: "Search" ModelAdmin: - ADDBUTTON: "Add" - ADDFORM: "Fill out this form to add a %s to the database." - CHOOSE_COLUMNS: "Select result columns..." - CLEAR_SEARCH: "Clear Search" - CREATEBUTTON: "Create '%s'" DELETE: "Delete" DELETEDRECORDS: "Deleted %s records." - FOUNDRESULTS: "Your search found %s matching items" IMPORT: "Import from CSV" IMPORTEDRECORDS: "Imported %s records." - ITEMNOTFOUND: "That item was not found." - LOADEDFOREDITING: "Loaded '%s' for editing." NOCSVFILE: "Please browse for a CSV file to import" NOIMPORT: "Nothing to import" - NORESULTS: "No results" - SAVE: "Save" - SEARCHRESULTS: "Search Results" - SELECTALL: "select all" - SELECTNONE: "select none" UPDATEDRECORDS: "Updated %s records." - MyEntity: - MyNamespace: "My default natural language value" - MyNamespace: - MYENTITY: "Counting %s things" NumericField: VALIDATION: "'%s' is not a number, only numbers can be accepted for this field" - VALIDATIONJS: "is not a number, only numbers can be accepted for this field" - Page: - PLURALNAME: "Pages" - SINGULARNAME: "Page" Permission: FULLADMINRIGHTS: "Full administrative rights" - PLURALNAME: "Permissions" - SINGULARNAME: "Permission" PhoneNumberField: VALIDATION: "Please enter a valid phone number" RelationComplexTableField.ss: ADD: "Add" - CSVEXPORT: "Export to CSV" - NOTFOUND: "No items found" ReportAdmin: MENUTITLE: "Reports" Security: @@ -308,34 +246,20 @@ en_GB: CHANGEPASSWORDHEADER: "Change your password" ENTERNEWPASSWORD: "Please enter a new password." ERRORPASSWORDPERMISSION: "You must be logged in in order to change your password!" - IPADDRESSES: "IP Addresses" LOGGEDOUT: "You have been logged out. If you would like to log in again, enter your credentials below." LOGIN: "Log in" - LOSTPASSWORDHEADER: "Lost Password" NOTEPAGESECURED: "That page is secured. Enter your credentials below and we will send you right along." NOTERESETLINKINVALID: "

    The password reset link is invalid or expired.

    You can request a new one here or change your password after you logged in.

    " NOTERESETPASSWORD: "Enter your e-mail address and we will send you a link with which you can reset your password" PASSWORDSENTHEADER: "Password reset link sent to '%s'" PASSWORDSENTTEXT: "Thank you! A reset link has been sent to '%s', provided an account exists for this email address." SecurityAdmin: - ADDMEMBER: "Add Member" EDITPERMISSIONS: "Manage permissions for groups" GROUPNAME: "Group name" - IPADDRESSESHELP: | -

    You can restrict this group to a particular - IP address range (one range per line).
    Ranges can be in any of the following forms:
    - 203.96.152.12
    - 203.96.152/24
    - 203.96/16
    - 203/8

    If you enter one or more IP address ranges in this box, then members will only get - the rights of being in this group if they log on from one of the valid IP addresses. It won't prevent - people from logging in. This is because the same user might have to log in to access parts of the - system without IP address restrictions. MEMBERS: "Members" + MEMBERS: "Members" MENUTITLE: "Security" NEWGROUP: "New Group" PERMISSIONS: "Permissions" - SGROUPS: "Security Groups" - VIEWUSER: "View User" SimpleImageField: NOUPLOAD: "No Image Uploaded" SiteTree: @@ -348,9 +272,6 @@ en_GB: CSVEXPORT: "Export to CSV" PRINT: "Print" TableListField_PageControls.ss: - DISPLAYING: "Displaying" - OF: "of" - TO: "to" VIEWFIRST: "View first" VIEWLAST: "View last" VIEWNEXT: "View next" diff --git a/lang/eo.yml b/lang/eo.yml index b30c90e48..5929c5713 100644 --- a/lang/eo.yml +++ b/lang/eo.yml @@ -1,10 +1,17 @@ eo: AssetAdmin: - CHOOSEFILE: "Elekti dosieron:" MENUTITLE: "Dosieroj kaj Bildoj" NEWFOLDER: "NewFolder" - AssetAdmin_left.ss: - GO: "Ek" + AssetTableField: + CREATED: "Unue alŝutita" + DIM: "Dimensioj" + FILENAME: "Nomo de dosiero" + LASTEDIT: "Laste ŝanĝita" + OWNER: "Posedanto" + SIZE: "Grando" + TITLE: "Titolo" + TYPE: "Tipo" + URL: "URL" BBCodeParser: ALIGNEMENT: "Ĝisrandigo" ALIGNEMENTEXAMPLE: "ĝisrandigita dekstren" @@ -38,9 +45,10 @@ eo: ANY: "Ajna" NO: "Ne" YES: "Jes" - CMSBatchActions: - PUBLISHED_PAGES: "Publikigis %d paĝojn" CMSMain: + ACCESS: "Aliro al sekcio '%s'" + ACCESSALLINTERFACES: "Aliro al ĉiuj interfacoj de CMS" + ACCESSALLINTERFACESHELP: "Nuligas pli specifajn alirajn agordojn." MENUTITLE: "Paĝoj" SAVE: "Konservi" ChangePasswordEmail.ss: @@ -58,7 +66,6 @@ eo: SUCCESSEDIT: "Konservita %s %s %s" ComplexTableField.ss: ADDITEM: "Almeti je %s" - NOITEMSFOUND: "Ne trovis erojn" SORTASC: "Ordigi kreske" SORTDESC: "Ordigi malkreske" ComplexTableField_popup.ss: @@ -67,21 +74,15 @@ eo: ConfirmedPasswordField: ATLEAST: "Pasvortoj devas enhavi almenaŭ %s signojn." BETWEEN: "Pasvortoj devas enhavi inter %s kaj %s signojn." - HAVETOMATCH: "Pasvortoj devas kongrui." - LEASTONE: "Pasvortoj devas enhavi almenaŭ unu ciferon kaj unu literciferan signon." MAXIMUM: "Pasvortoj devas enhavi ne pli ol %s signojn." - NOEMPTY: "Pasvortoj devas esti nemalplenaj." SHOWONCLICKTITLE: "Ŝangi Pasvorton" CreditCardField: FIRST: "unuan" FOURTH: "kvaran" SECOND: "duan" THIRD: "trian" - VALIDATIONJS1: "Bonvole certigu ke vi tajpis la" - VALIDATIONJS2: "kreditkartan numeron ĝuste." CurrencyField: CURRENCYSYMBOL: "$" - VALIDATIONJS: "Bonvole tajpu validan valuton." DataObject: PLURALNAME: "Datumaj Objektoj" SINGULARNAME: "Datuma Objekto" @@ -102,14 +103,12 @@ eo: DateField: NOTSET: "ne agordita" TODAY: "hodiaŭ" - VALIDATIONJS: "Bonvole tajpu validan datoformaton (TT/MM/JJJJ)." VALIDDATEMAXDATE: "Via dato devas esti pli aĝa ol aŭ egala al la maksimuma permesita dato" VALIDDATEMINDATE: "Via dato devas esti malpli aĝa ol aŭ egala al la minimuma permesita dato" DropdownField: CHOOSE: "(Elekti)" EmailField: VALIDATION: "Bonvolu enigi retpoŝtan adreson." - VALIDATIONJS: "Bonvole tajpu retadreson." Email_BounceRecord: PLURALNAME: "Registroj de neliveritaj mesaĝoj" SINGULARNAME: "Registro de neliverita mesaĝo" @@ -124,7 +123,6 @@ eo: Name: "Nomo" PLURALNAME: "Dosieroj" SINGULARNAME: "Dosiero" - Sort: "Ordiga Ordo" TOOLARGE: "Dosiero estas tro granda, Maksimumo permesita estas %s." Title: "Titolo" FileIFrameField: @@ -136,22 +134,6 @@ eo: FROMFILESTORE: "El la dosiera konservejo" NOSOURCE: "Bonvolu elekti fontan dosieron por alkroĉi" REPLACE: "Anstataŭigi je %s" - FileIFrameField.ss: - TITLE: "Bilda alŝuta Iframe" - Folder: - CREATED: "Unue Alŝutita" - DELSELECTED: "Forigi elektitajn dosierojn" - DETAILSTAB: "Detaloj" - FILENAME: "Nomo de dosiero" - FILESTAB: "Dosieroj" - LASTEDITED: "Laste Alŝutita" - PLURALNAME: "Dosieroj" - SINGULARNAME: "Dosiero" - TITLE: "Titolo" - TYPE: "Tipo" - UPLOADTAB: "Alŝuti" - URL: "URL" - VIEWEDITASSET: "Vidigi/Redakti Havaĵon" ForgotPasswordEmail.ss: HELLO: "Saluton" TEXT1: "Jen via" @@ -174,13 +156,9 @@ eo: DefaultGroupTitleAdministrators: "Administrantoj" DefaultGroupTitleContentAuthors: "Enhavaŭtoroj" Description: "Priskribo" - IMPORTTABTITLE: "Importi" - IPRestrictions: "IP-Adresaj Limigoj" Locked: "Ŝlosita?" - PLURALNAME: "Grupoj" Parent: "Patra Grupo" RolesAddEditLink: "Aldoni/redakti rolojn" - SINGULARNAME: "Grupo" Sort: "Ordiga Ordo" has_many_Permissions: "Permesoj" many_many_Members: "Membroj" @@ -195,13 +173,12 @@ eo:

  • Grupaj hierarkioj estas kreeblaj per kolumno PatroKodo.
  • Permkodoj estas agordeblaj per kolumno PermisKodo. Ekzistantaj permiskodoj ne vakiĝos.
  • - ResultCreated: "Kreis %d grupojn" + + ResultCreated: "Kreis %d grupojn" ResultDeleted: "Forigis %d grupojn" ResultUpdated: "Aktualigis %d grupojn" HtmlEditorField: ANCHORVALUE: "Ankri" - BUTTONINSERTFLASH: "Enmeti je Flash" - BUTTONINSERTIMAGE: "Enmeti bildon" BUTTONINSERTLINK: "Almeti ligilon" BUTTONREMOVELINK: "Forigi ligilon" CAPTIONTEXT: "Titola teksto" @@ -212,7 +189,6 @@ eo: CSSCLASSRIGHT: "Dekstre, kaj teksto ĉirkaŭfluas." EMAIL: "Retpoŝta adreso" FILE: "Dosiero" - FLASH: "Flash" FOLDER: "Dosierujo" IMAGE: "Bildo" IMAGEALTTEXT: "Alternativa teksto (alt) - vidigi ĝin se ne eblas vidigi bildon" @@ -228,20 +204,11 @@ eo: LINKFILE: "Elŝuti dosieron" LINKINTERNAL: "Paĝo en la retejo" LINKOPENNEWWIN: "Malfermi ligilon en nova fenestro?" - LINKTEXT: "Ligila teksto" LINKTO: "Ligilo al" PAGE: "Paĝo" - SEARCHFILENAME: "Serĉi laŭ dosiernomo" - SHOWUPLOADFORM: "Alŝuti dosieron" URL: "URL" - Image: - PLURALNAME: "Dosieroj" - SINGULARNAME: "Dosiero" ImageField: IMAGE: "Bildo" - Image_Cached: - PLURALNAME: "Dosieroj" - SINGULARNAME: "Dosiero" Image_iframe.ss: TITLE: "Iframe por alŝuti bildon" LeftAndMain: @@ -253,13 +220,9 @@ eo: PERMDEFAULT: "Enigi vian retadreson kaj pasvorton por aliri al la CMS." PLEASESAVE: "Bonvolu konservi paĝon: Ne eblis ĝisdatigi ĉi tiun paĝon ĉar ĝi ankoraŭ ne estas konservita." SAVED: "konservis" - LeftAndMain_right.ss: - WELCOMETO: "Bonvenon al" LoginAttempt: Email: "Retadreso" IP: "IP-Adreso" - PLURALNAME: "Provoj Ensaluti" - SINGULARNAME: "Provo ensaluti" Status: "Stato" Member: ADDRESS: "Trakt" @@ -318,83 +281,42 @@ eo:
  • Kongruas ekzistantajn membrojn laŭ ilia unika agordo Kodo, kaj aktualigas ilin laŭ eventualaj novaj valoroj el la importita dosiero.
  • Povas agordi grupojn laŭ la kolumno Grupoj. Identigas grupojn laŭ ilia agordo Kodo, povas apartigi pluroblan grupon per komoj. Ne vakigas ekzistantajn grupojn.
  • - ResultCreated: "Kreis %d membrojn" + + ResultCreated: "Kreis %d membrojn" ResultDeleted: "Forigis %d membrojn" ResultNone: "Neniu ŝanĝo" ResultUpdated: "Aktualigis %d membrojn" - MemberPassword: - PLURALNAME: "Pasvortoj de Membroj" - SINGULARNAME: "Pasvorto de Membro" - MemberTableField: - ADD: "Enmeti" - ADDEDTOGROUP: "Enmetis membron en grupon" - ADDINGFIELD: "Malsukcesis aldoni" - DeleteTitleText: "Forigi el ĉi tiu grupo" - DeleteTitleTextDatabase: "Forigi el datumbazo kaj ĉiuj grupoj" - ERRORADDINGUSER: "Eraro okazis aldonante la uzanton al la grupo: %s" - FILTER: "Filtri" - SEARCH: "Serĉi" ModelAdmin: - ADDBUTTON: "Aldoni" - ADDFORM: "Plenigu ĉi tiun formularon por aldoni je %s al la datumbazo." - CHOOSE_COLUMNS: "Elekti rezultajn kolumnojn..." - CLEAR_SEARCH: "Vakigi Serĉon" - CREATEBUTTON: "Krei je '%s'" DELETE: "Forigi" DELETEDRECORDS: "Forigis %s rikordojn." - FOUNDRESULTS: "Via serĉo trovis %s kongruajn erojn" IMPORT: "Importi el CSV" IMPORTEDRECORDS: "Importis je %s %s" - ITEMNOTFOUND: "Ne povas trovi tiun eron" - LOADEDFOREDITING: "Ŝargis je '%s' por redakti." NOCSVFILE: "Bonvolu foliumi por CSV-dosiero importota" NOIMPORT: "Nenio importota" - NORESULTS: "Neniu rezulto" - SAVE: "Konservi" - SEARCHRESULTS: "Serĉi Rezultojn" - SELECTALL: "elekti ĉiujn" - SELECTNONE: "elekti neniun" UPDATEDRECORDS: "Ĝisdatigis %s rikordojn." MoneyField: FIELDLABELAMOUNT: "Kvanto" FIELDLABELCURRENCY: "Kurzo" - MyEntity: - MyNamespace: "Valoro de mia defaŭlta natura lingvo" - MyNamespace: - MYENTITY: "Nombras %s erojn" NullableField: IsNullLabel: "Estas senvalora" NumericField: VALIDATION: "'%s' ne estas numero, nur numeroj esti akcepteblaj por ĉi tiu kampo" - VALIDATIONJS: "ne estas numero; akceptas nur numerojn por ĉi tiu kampo" - Page: - PLURALNAME: "Pags" - SINGULARNAME: "Page" Permission: AdminGroup: "Administranto" + CMS_ACCESS_CATEGORY: "CMS-aliro" FULLADMINRIGHTS: "Ĉiuj administraj rajtoj" FULLADMINRIGHTS_HELP: "Implicas kaj superregas ĉiujn aliajn agorditajn permesojn." - PLURALNAME: "Permesoj" - SINGULARNAME: "Permeso" PermissionCheckboxSetField: AssignedTo: "agordita al \"%s\"" FromGroup: "heredita de grupo \"%s\"" FromRole: "heredita de rolo \"%s\"" FromRoleOnGroup: "heredita de rolo \"%s\" en grupo \"%s\"" - PermissionRole: - PLURALNAME: "Roloj" - SINGULARNAME: "Rolo" - PermissionRoleCode: - PLURALNAME: "PermesRolaj Kodoj" - SINGULARNAME: "PermesRola Kodo" Permissions: PERMISSIONS_CATEGORY: "Roloj kaj aliraj permesoj" PhoneNumberField: VALIDATION: "Bonvolu enigi validan telefonnumeron" RelationComplexTableField.ss: ADD: "Enmeti" - CSVEXPORT: "Eksporti al CSV" - NOTFOUND: "Neniu ero trovita" ReportAdmin: MENUTITLE: "Raportoj" Security: @@ -404,41 +326,28 @@ eo: CHANGEPASSWORDHEADER: "Ŝanĝi vian pasvorton" ENTERNEWPASSWORD: "Bonvolu enigi novan pasvorton." ERRORPASSWORDPERMISSION: "Vi devas ensaluti por ŝanĝi vian pasvorton!" - IPADDRESSES: "IP-Adresoj" LOGGEDOUT: "Vi elsalutis. Se vi volas ensaluti denove, enigu viajn legitimaĵon sube." LOGIN: "Ensaluti" - LOSTPASSWORDHEADER: "Perdis Pasvorton" NOTEPAGESECURED: "Tiu paĝo estas sekurigita. Enigu viajn akreditaĵojn sube kaj vi aliros pluen." NOTERESETLINKINVALID: "

    La pasvorta reagorda ligilo estas nevalida aŭ pasis limdaton.

    Vi povas peti novan ĉi tie aŭ ŝanĝi vian pasvorton kiam ensalutinta.

    " NOTERESETPASSWORD: "Enigu vian retpoŝtan adreson kaj ni sendos al vi ligilon per kiu vi povas reagordi vian pasvorton" PASSWORDSENTHEADER: "Sendis al '%s' ligilon reagordi pasvorton" PASSWORDSENTTEXT: "Dankon! Sendis al '%s' ligilon reagordi pasvorton, kondiĉe ke ekzistas konto por ĉi tiu retadreso." SecurityAdmin: - ADDMEMBER: "Enmeti Membron" + ACCESS_HELP: "Permesi vidigi, enmeti kaj redakti uzantojn, aldone al agordi permesojn kaj rolojn al ili." APPLY_ROLES: "Apliki roloj al grupoj" APPLY_ROLES_HELP: "Eblo redakti la rolojn agorditajn al grupo. Bezonas la permesilon \"Aliro al sekcio 'Sekureco'\"" EDITPERMISSIONS: "Agordi permesojn kaj IP-adresojn ĉe ĉiu grupo" EDITPERMISSIONS_HELP: "Eblo redakti Permesojn kaj IP-adresojn por grupo. Bezonas la permesilon \"Aliro al sekcio 'Sekureco'\"" GROUPNAME: "Grupa Nomo" - IPADDRESSESHELP: | -

    Vi povas limigi ĉi tiun grupon al specifa - IP-adresa amplekso (unu amplekso en unu linio).
    Ampleksoj povas havi iun el la jenaj formoj:
    - 203.96.152.12
    - 203.96.152/24
    - 203.96/16
    - 203/8

    Se vi enigas almenaŭ unu IP-adresan amplekson en ĉi tiun kadron, tiam membroj ricevos nur - la rajtojn de membreco de ĉi tiu grupo se ili ensalutas el iu el la validaj IP-adresoj. Ĝi ne malebligos - al iu ensaluti. Tio estas ĉar la sama uzanto eble devas ensaluti por aliri partojn de la sistemo sen IP-adresajn limigojn. MEMBERS: "Membroj" + MEMBERS: "Membroj" MENUTITLE: "Sekureco" MemberListCaution: "Averto: forigi membrojn el ĉi tiu listo forigos ilin el ĉiuj grupoj kaj la datumbazo." NEWGROUP: "Nova Grupo" PERMISSIONS: "Permesoj" ROLES: "Roloj" ROLESDESCRIPTION: "Ĉi tiu sekcio ebligas aldoni rolojn al ĉi tiu grupo. Roloj estas logikaj grupoj de permesoj, kiuj estas redakteblaj en la langeto Roloj" - SGROUPS: "Grupoj de sekureco" - TABIMPORT: "Importi" TABROLES: "Roloj" - VIEWUSER: "Vidigi Uzanton" SecurityAdmin_MemberImportForm: BtnImport: "Importi" FileFieldLabel: "CSV-dosiero (Permesitaj sufiksoj: *.csv)" @@ -450,18 +359,13 @@ eo: ISREQUIRED: "En %s '%s' estas bezonata." TableField.ss: ADD: "Enmeti novan vicon" - ADDITEM: "Aldoni je %s" TableListField: CSVEXPORT: "Eksporti al CSV" PRINT: "Presi" TableListField.ss: - NOITEMSFOUND: "Ne trovis eron" SORTASC: "Ordigi kreskante" SORTDESC: "Ordigi malkreskante" TableListField_PageControls.ss: - DISPLAYING: "Vidigas" - OF: "de" - TO: "al" VIEWFIRST: "Vidigi unuan" VIEWLAST: "Vidigi lastan" VIEWNEXT: "Vidigi sekvan" diff --git a/lang/es.yml b/lang/es.yml index bdb2504d1..270b99ef5 100644 --- a/lang/es.yml +++ b/lang/es.yml @@ -1,10 +1,17 @@ es: AssetAdmin: - CHOOSEFILE: "Seleccione archivo" MENUTITLE: "Archivos e Imágenes" NEWFOLDER: "NuevaCarpeta" - AssetAdmin_left.ss: - GO: "Ir" + AssetTableField: + CREATED: "Agregado por primera vez" + DIM: "Dimensiones" + FILENAME: "Nombre del archivo" + LASTEDIT: "Modificado por última vez" + OWNER: "Propietario" + SIZE: "Tamaño" + TITLE: "Título" + TYPE: "Tipo" + URL: "URL" BBCodeParser: ALIGNEMENT: "Alineación" ALIGNEMENTEXAMPLE: "alineado a la derecha" @@ -35,6 +42,8 @@ es: ERRORNOTADMIN: "Ese usuario no es un administrador." ERRORNOTREC: "Ese nombre de usuario / contraseña no pudo ser reconocido." CMSMain: + ACCESS: "Acceso a '%s' (%s)" + ACCESSALLINTERFACES: "Acceder a todas las interfaces del CMS" MENUTITLE: "Contenido del sitio" SAVE: "Guardar" ChangePasswordEmail.ss: @@ -49,7 +58,6 @@ es: SUCCESSEDIT: "Guardado %s %s %s" ComplexTableField.ss: ADDITEM: "Agregar %s" - NOITEMSFOUND: "No se encontraron elementos" SORTASC: "Orden Ascendente" SORTDESC: "Orden Descendente" ComplexTableField_popup.ss: @@ -58,21 +66,15 @@ es: ConfirmedPasswordField: ATLEAST: "Las contraseñas requieren un mínimo de %s caracteres" BETWEEN: "Las contraseñas requieren de %s a %s caracteres" - HAVETOMATCH: "Las contraseñas deben coincidir." - LEASTONE: "Las contraseñas requieren al menos un dígito y un elemento alfanumérico." MAXIMUM: "Las contraseñas no deben contar con más de %s caracteres" - NOEMPTY: "Las contraseñas no pueden estar en blanco." SHOWONCLICKTITLE: "Cambiar contraseña" CreditCardField: FIRST: "primero" FOURTH: "cuarto" SECOND: "segundo" THIRD: "tercero" - VALIDATIONJS1: "Por favor, asegúrese de haber digitado el" - VALIDATIONJS2: "número de tarjeta de crédito correctamente" CurrencyField: CURRENCYSYMBOL: "$" - VALIDATIONJS: "Por favor, digite un tipo de moneda que sea válido" DataObject: PLURALNAME: "Objetos de Datos" SINGULARNAME: "Objeto de Datos" @@ -93,12 +95,10 @@ es: DateField: NOTSET: "sin establecer" TODAY: "hoy" - VALIDATIONJS: "Por favor, introduce un formato válido de fecha (DD/MM/AAAA)." DropdownField: CHOOSE: "(Elegir)" EmailField: VALIDATION: "Por favor introduzca una dirección de email." - VALIDATIONJS: "Por favor, digite una dirección de correo electrónico." File: Content: "Contenido" Filename: "Nombre del archivo" @@ -107,23 +107,8 @@ es: Name: "Nombre" PLURALNAME: "Archivos" SINGULARNAME: "Archivo" - Sort: "Orden de Clasificación" TOOLARGE: "El archivo es demasiado grande, tamaño máximo: %s." Title: "Título" - Folder: - CREATED: "Primero Subido (Uploaded)" - DELSELECTED: "Borrar los archivos seleccionados" - DETAILSTAB: "Detalles" - FILENAME: "Nombre de Archivo" - FILESTAB: "Archivos" - LASTEDITED: "Último Actualizado" - PLURALNAME: "Archivos" - SINGULARNAME: "Archivo" - TITLE: "Título" - TYPE: "Tipo" - UPLOADTAB: "Subir" - URL: "URL" - VIEWEDITASSET: "Ver/Editar Activo" ForgotPasswordEmail.ss: HELLO: "Hola" TEXT1: "Aquí tiene su" @@ -144,11 +129,8 @@ es: Group: Code: "Código de grupo" Description: "Descripción" - IPRestrictions: "Restricciones de Direcciones IP" Locked: "¿Bloqueado?" - PLURALNAME: "Grupos" Parent: "Grupo Padre" - SINGULARNAME: "Grupo" Sort: "Orden de Clasificación" has_many_Permissions: "Permisos" many_many_Members: "Miembros" @@ -156,8 +138,6 @@ es: ResultDeleted: "Se eliminaron %d grupos" HtmlEditorField: ANCHORVALUE: "Ancla" - BUTTONINSERTFLASH: "Insertar Flash" - BUTTONINSERTIMAGE: "Insertar imagen" BUTTONINSERTLINK: "Insertar enlace" BUTTONREMOVELINK: "Eliminar enlace" CSSCLASS: "Alineación / estilo" @@ -167,7 +147,6 @@ es: CSSCLASSRIGHT: "A la derecha, con el texto flotando alrededor." EMAIL: "Dirección de E-mail" FILE: "Archivo" - FLASH: "Insertar flash" FOLDER: "Carpeta" IMAGE: "Insertar imagen" IMAGEDIMENSIONS: "Dimensiones" @@ -181,14 +160,9 @@ es: LINKFILE: "Descarga de un archivo" LINKINTERNAL: "Página en el sitio" LINKOPENNEWWIN: "¿Abrir enlace en una ventana nueva?" - LINKTEXT: "Texto del enlace" LINKTO: "Enlazar a" PAGE: "Página" - SEARCHFILENAME: "Buscar por nombre de archivo" URL: "URL" - Image: - PLURALNAME: "Archivos" - SINGULARNAME: "Archivo" Image_iframe.ss: TITLE: "Iframe para agregar imágenes" LeftAndMain: @@ -202,8 +176,6 @@ es: LoginAttempt: Email: "Correo electrónico" IP: "Dirección IP" - PLURALNAME: "Intentos de inicio de sesión" - SINGULARNAME: "Intento de inicio de sesión" Status: "Estado" Member: ADDRESS: "Dirección" @@ -253,58 +225,22 @@ es: TITLE: "E-mail & Contraseña" MemberImportForm: ResultDeleted: "Se eliminaron %d miembros" - MemberPassword: - PLURALNAME: "Contraseñas de miembros" - SINGULARNAME: "Contraseña del miembro" - MemberTableField: - ADD: "Añadir" - ADDEDTOGROUP: "Miembro añadido al grupo" - ADDINGFIELD: "Fallo sumando" - DeleteTitleText: "Eliminar de este grupo" - DeleteTitleTextDatabase: "Eliminar de la base de datos y de todos los grupos" - FILTER: "Filtro" - SEARCH: "Buscar" ModelAdmin: - ADDBUTTON: "Añadir" - ADDFORM: "Rellena este formulario para añadir un %s a la base de datos." - CHOOSE_COLUMNS: "Seleccionar columnas resultantes..." - CLEAR_SEARCH: "Borrar Búsqueda" - CREATEBUTTON: "Crear '%s'" DELETE: "Eliminar" DELETEDRECORDS: "%s registros eliminados." - FOUNDRESULTS: "Tu búsqueda ha encontrado %s artículos relacionados" IMPORT: "Importar desde CSV" IMPORTEDRECORDS: "Importados %s registros." - ITEMNOTFOUND: "No puedo encontrar ese artículo" - LOADEDFOREDITING: "Se ha cargado '%s' para su edición" NOCSVFILE: "Por favor, selecciona un archivo CSV para importar" NOIMPORT: "Nada para importar" - NORESULTS: "No hay resultados" - SAVE: "Guardar" - SEARCHRESULTS: "Buscar Resultados" - SELECTALL: "seleccionar todos" - SELECTNONE: "no seleccionar ninguno" UPDATEDRECORDS: "Actualizados %s registros" - MyEntity: - MyNamespace: "Valor por defecto de mi idioma nativo" - MyNamespace: - MYENTITY: "Contando %s cosas" NumericField: VALIDATION: "'%s' no es un número, este campo solo acepta números" - VALIDATIONJS: "no es un número, para este campo sólo son aceptados números" - Page: - PLURALNAME: "Páginas" - SINGULARNAME: "Página" Permission: FULLADMINRIGHTS: "Todos los derechos administrativos" - PLURALNAME: "Permisos" - SINGULARNAME: "Permiso" PhoneNumberField: VALIDATION: "Por favor introduzca un número de teléfono válido" RelationComplexTableField.ss: ADD: "Añadir" - CSVEXPORT: "Exportar a CSV" - NOTFOUND: "No se han encontrado registros" ReportAdmin: MENUTITLE: "Informes" Security: @@ -314,30 +250,20 @@ es: CHANGEPASSWORDHEADER: "Modifique su contraseña" ENTERNEWPASSWORD: "Por favor introduzca una nueva contraseña." ERRORPASSWORDPERMISSION: "Debe iniciar una sesión para poder cambiar su contraseña!" - IPADDRESSES: "Direcciones IP" LOGGEDOUT: "Ha terminado su sesión. Si desea iniciar sesión nuevamente, introduzca sus datos de acreditación a continuación." LOGIN: "Entrar" - LOSTPASSWORDHEADER: "Contraseña Perdida" NOTEPAGESECURED: "Esa página está protegida. Introduzca sus datos de acreditación a continuación y lo enviaremos a ella en un momento." NOTERESETLINKINVALID: "

    El enlace para cambiar la contraseña es inválido o a caducado.

    Puedes solicitar uno nuevo aquí o cambiar tu contraseña una vez te hayas identificado.

    " NOTERESETPASSWORD: "Introduzca su dirección de e-mail, y le enviaremos un enlace, con el cual podrá restaurar su contraseña" PASSWORDSENTHEADER: "El enlace para restaurar la contraseña se ha enviado a %s'" PASSWORDSENTTEXT: "Gracias! El enlace para restaurar su contraseña ha sido enviado a '%s'." SecurityAdmin: - ADDMEMBER: "Añadir Miembro" EDITPERMISSIONS: "Editar permisos y direcciones IP de cada grupo" GROUPNAME: "Nombre del grupo" - IPADDRESSESHELP: | -

    Tu puedes restringir este grupo a un rango de direcciones IP. Introduce 1 rango por línea. Los rangos pueden tener cualquiera de las siguientes 4 formas:
    - 203.96.152.12
    - 203.96.152/24
    - 203.96/16
    - 203/8

    Si introduces una o más rangos de direcciones IP en esta caja, entonces los miembros sólo obtendrán los permisos de pertenecer a este grupo si ellos se conectan desde una de las direcciones IP válidas. Esto no impedirá que la gente pueda identificarse. Esto es porque el mismo usuario podría tener que identificarse para acceder a partes del sistema sin restricciones de dirección IP. MEMBERS: "Miembros" + MEMBERS: "Miembros" MENUTITLE: "Seguridad" NEWGROUP: "Nuevo grupo" PERMISSIONS: "Permisos" - SGROUPS: "Grupos de seguridad" - VIEWUSER: "Vista Usuario" SimpleImageField: NOUPLOAD: "No se han agregado imágenes" SiteTree: @@ -350,9 +276,6 @@ es: CSVEXPORT: "Exportar a CSV" PRINT: "Imprimir" TableListField_PageControls.ss: - DISPLAYING: "Mostrando" - OF: "de" - TO: "a" VIEWFIRST: "Ver primero" VIEWLAST: "Ver último" VIEWNEXT: "Ver siguiente" diff --git a/lang/es_419.yml b/lang/es_419.yml deleted file mode 100644 index cb28991a6..000000000 --- a/lang/es_419.yml +++ /dev/null @@ -1 +0,0 @@ -es-419: diff --git a/lang/es_AR.yml b/lang/es_AR.yml index 523c335d0..7eda78728 100644 --- a/lang/es_AR.yml +++ b/lang/es_AR.yml @@ -1,10 +1,17 @@ es_AR: AssetAdmin: - CHOOSEFILE: "Elegir un archivo:" MENUTITLE: "Archivos & Imágenes" NEWFOLDER: "Nueva Carpeta" - AssetAdmin_left.ss: - GO: "Ir" + AssetTableField: + CREATED: "Agregado por primera vez" + DIM: "Dimensiones" + FILENAME: "Nombre del Archivo" + LASTEDIT: "Modificado por última vez" + OWNER: "Propietario" + SIZE: "Tamaño" + TITLE: "Título" + TYPE: "Tipo" + URL: "URL" BBCodeParser: ALIGNEMENT: "Alineación" ALIGNEMENTEXAMPLE: "alineado a la derecha" @@ -38,9 +45,9 @@ es_AR: ANY: "Cualquiera" NO: "No" YES: "Sí" - CMSBatchActions: - PUBLISHED_PAGES: "Se publicaron %d páginas, %d fallas" CMSMain: + ACCESS: "Acceder a la sección '%s'" + ACCESSALLINTERFACES: "Acceder a todas las secciones del CMS" MENUTITLE: "Páginas" SAVE: "Guardar" ChangePasswordEmail.ss: @@ -58,7 +65,6 @@ es_AR: SUCCESSEDIT: "Guardado %s %s %s" ComplexTableField.ss: ADDITEM: "Agregar %s" - NOITEMSFOUND: "No se encontraron items" SORTASC: "Ordenar ascendente" SORTDESC: "Ordenar descendente" ComplexTableField_popup.ss: @@ -67,21 +73,15 @@ es_AR: ConfirmedPasswordField: ATLEAST: "Las contraseñas deben ser al menos de %s caracteres de largo." BETWEEN: "Las contraseñas deben ser de %s a %s caracteres de largo." - HAVETOMATCH: "La contraseña tiene que coincidir." - LEASTONE: "Las contraseñas deben tener al menos un dígito y un carácter alfanumérico." MAXIMUM: "Las contraseñas deben ser de al menos %s caracteres de largo." - NOEMPTY: "La contraseña no puede estar vacía." SHOWONCLICKTITLE: "Cambiar Contraseña" CreditCardField: FIRST: "primero" FOURTH: "cuarto" SECOND: "segundo" THIRD: "tercero" - VALIDATIONJS1: "Por favor asegurarte de haber ingresado el" - VALIDATIONJS2: "número de tarjeta de crédito correctamente." CurrencyField: CURRENCYSYMBOL: "$" - VALIDATIONJS: "Por favor ingresa una moneda válida." DataObject: PLURALNAME: "Objetos de Datos" SINGULARNAME: "Objeto de Datos" @@ -102,7 +102,6 @@ es_AR: DateField: NOTSET: "no especificada" TODAY: "hoy" - VALIDATIONJS: "Por favor ingresa un formato de fecha válido (DD/MM/AAAA)." VALIDDATEFORMAT2: "Por favor ingresar un formato válido de fecha (%s)" VALIDDATEMAXDATE: "Su fecha tiene que ser más antigua o coincidente con la máxima fecha permitida (%s)" VALIDDATEMINDATE: "Su fecha tiene que ser más reciente o coincidente con la mínima fecha permitida (%s)" @@ -110,7 +109,6 @@ es_AR: CHOOSE: "(Selecciona)" EmailField: VALIDATION: "Por favor ingresa una dirección de email." - VALIDATIONJS: "Por favor ingresa una dirección de email." Email_BounceRecord: PLURALNAME: "Registros de rebotes de email" SINGULARNAME: "Registro de rebotes de email" @@ -125,7 +123,6 @@ es_AR: Name: "Nombre" PLURALNAME: "Archivos" SINGULARNAME: "Archivo" - Sort: "Ordenar" TOOLARGE: "Tamaño de archivo muy grande, máximo permitido %s." Title: "Título" FileIFrameField: @@ -136,22 +133,6 @@ es_AR: FROMFILESTORE: "Desde el almacén de archivos" NOSOURCE: "Por favor seleccionar un archivo fuente para adjuntar" REPLACE: "Reemplazar %s" - FileIFrameField.ss: - TITLE: "Iframe de subida de imágenes" - Folder: - CREATED: "El Primero Cargado" - DELSELECTED: "Eliminar archivos seleccionados" - DETAILSTAB: "Detalles" - FILENAME: "Nombre de Archivo" - FILESTAB: "Archivos" - LASTEDITED: "El Último Actualizado" - PLURALNAME: "Archivos" - SINGULARNAME: "Archivo" - TITLE: "Título" - TYPE: "Tipo" - UPLOADTAB: "Cargado" - URL: "URL" - VIEWEDITASSET: "Ver/Editar Activo" ForgotPasswordEmail.ss: HELLO: "Hola" TEXT1: "Aquí esta tu" @@ -174,13 +155,9 @@ es_AR: DefaultGroupTitleAdministrators: "Administradores" DefaultGroupTitleContentAuthors: "Autores de contenido" Description: "Descripción" - IMPORTTABTITLE: "Importar" - IPRestrictions: "Restricciones a Direcciones IP" Locked: "¿Bloqueado?" - PLURALNAME: "Grupos" Parent: "Grupo Superior" RolesAddEditLink: "Agregar/Editar roles" - SINGULARNAME: "Grupo" Sort: "Ordenar" has_many_Permissions: "Permisos" many_many_Members: "Miembros" @@ -191,8 +168,6 @@ es_AR: ResultUpdated: "Se actualizaron %d grupos" HtmlEditorField: ANCHORVALUE: "Anclar" - BUTTONINSERTFLASH: "Insertar Flash" - BUTTONINSERTIMAGE: "Insertar imagen" BUTTONINSERTLINK: "Insertar enlace" BUTTONREMOVELINK: "Quitar enlace" CSSCLASS: "Alineación / estilo" @@ -202,7 +177,6 @@ es_AR: CSSCLASSRIGHT: "A la derecha, justificando texto." EMAIL: "Dirección email" FILE: "Archivo" - FLASH: "Flash" FOLDER: "Carpeta" IMAGE: "Imagen" IMAGEALTTEXT: "Texto alternativo (alt) - mostrado si no se puede mostrar la imagen" @@ -218,20 +192,11 @@ es_AR: LINKFILE: "Descargar un archivo" LINKINTERNAL: "Página en el sitio" LINKOPENNEWWIN: "¿Abrir enlace en una nueva ventana?" - LINKTEXT: "Texto del enlace" LINKTO: "Enlazar a" PAGE: "Página" - SEARCHFILENAME: "Buscar por nombre de archivo" - SHOWUPLOADFORM: "Subir archivo" URL: "URL" - Image: - PLURALNAME: "Archivos" - SINGULARNAME: "Archivo" ImageField: IMAGE: "Imagen" - Image_Cached: - PLURALNAME: "Archivos" - SINGULARNAME: "Archivo" Image_iframe.ss: TITLE: "Subiendo Imagen Iframe" LeftAndMain: @@ -243,13 +208,9 @@ es_AR: PERMDEFAULT: "Por favor elegir un método de autenticación e ingresar sus credenciales para acceder al CMS." PLEASESAVE: "Por favor Guarda la Página: No se puede actualizar esta página porque aún no se ha guardado." SAVED: "guardado" - LeftAndMain_right.ss: - WELCOMETO: "Bienvenido a " LoginAttempt: Email: "Dirección Email" IP: "Dirección IP" - PLURALNAME: "Intentos de Acceso" - SINGULARNAME: "Intento de Acceso" Status: "Estado" Member: ADDRESS: "Dirección" @@ -306,75 +267,36 @@ es_AR: ResultDeleted: "Se eliminaron %d miembros" ResultNone: "Sin cambios" ResultUpdated: "Se actualizaron %d miembros" - MemberPassword: - PLURALNAME: "Contraseñas de Miembros" - SINGULARNAME: "Contraseña de Miembro" - MemberTableField: - ADD: "Agregar" - ADDEDTOGROUP: "Miembro añadido al grupo" - ADDINGFIELD: "Falló la inserción" - DeleteTitleText: "Eliminar de este grupo" - DeleteTitleTextDatabase: "Eliminar de la base de datos y todos los grupos" - ERRORADDINGUSER: "Hubo un error al agregar el usuario al grupo: %s" - FILTER: "Filtro" - SEARCH: "Buscar" ModelAdmin: - ADDBUTTON: "Agregar" - ADDFORM: "Llena este formulario para agregar un %s a la base de datos." - CHOOSE_COLUMNS: "Seleccionar columnas de resultados..." - CLEAR_SEARCH: "Borrar la Búsqueda" - CREATEBUTTON: "Crear '%s'" DELETE: "Eliminar" DELETEDRECORDS: "Eliminados %s registros." - FOUNDRESULTS: "Tu búsqueda dió como resultado %s items coincidentes" IMPORT: "Importar desde CSV" IMPORTEDRECORDS: "Registros %s importados." - ITEMNOTFOUND: "No puedo encontrar ese item" - LOADEDFOREDITING: "Cargado '%s' para editar." NOCSVFILE: "Por favor explorar por un archivo CVS para importar" NOIMPORT: "Nada para importar" - NORESULTS: "Sin resultados" - SAVE: "Guardar" - SEARCHRESULTS: "Buscar en Resultados" - SELECTALL: "seleccionar todo" - SELECTNONE: "seleccionar nada" UPDATEDRECORDS: "Actualizados %s registros." MoneyField: FIELDLABELAMOUNT: "Cantidad" FIELDLABELCURRENCY: "Moneda" - MyEntity: - MyNamespace: "Valor por defecto de mi idioma natural" - MyNamespace: - MYENTITY: "Contando %s objetos" NullableField: IsNullLabel: "Es nulo" NumericField: VALIDATION: "'%s' no es un número, este campo únicamente acepta números" - VALIDATIONJS: "no es un número, únicamente se pueden ingresar números en éste campo." - Page: - PLURALNAME: "Págs." - SINGULARNAME: "Página" Permission: AdminGroup: "Administrador" + CMS_ACCESS_CATEGORY: "Acceso al CMS" FULLADMINRIGHTS: "Privilegios administrativos completos" - PLURALNAME: "Permisos" - SINGULARNAME: "Permiso" PermissionCheckboxSetField: AssignedTo: "asignado a \"%s\"" FromGroup: "heredado desde el grupo \"%s\"" FromRole: "heredado desde el rol \"%s\"" FromRoleOnGroup: "heredado desde el rol \"%s\" en el grupo \"%s\"" - PermissionRole: - PLURALNAME: "Roles" - SINGULARNAME: "Rol" Permissions: PERMISSIONS_CATEGORY: "Roles y permisos de acceso" PhoneNumberField: VALIDATION: "Por favor ingresa un número telefónico válido" RelationComplexTableField.ss: ADD: "Agregar" - CSVEXPORT: "Exportar a CSV" - NOTFOUND: "No encontré elementos" ReportAdmin: MENUTITLE: "Informes" Security: @@ -384,44 +306,28 @@ es_AR: CHANGEPASSWORDHEADER: "Cambia tu contraseña" ENTERNEWPASSWORD: "Por favor incorpora la nueva contraseña" ERRORPASSWORDPERMISSION: "¡Debes haber ingresado al sitio para cambiar la contraseña!" - IPADDRESSES: "Dirección IP" LOGGEDOUT: "Tu sesión ha caducado. Si deseas ingresar de nuevo, incorpora tus credenciales abajo." LOGIN: "Acceso" - LOSTPASSWORDHEADER: "Olvidé mi Contraseña" NOTEPAGESECURED: "Esta página está protegida. Ingresa tus credenciales abajo y en seguida te enviaremos una autorización." NOTERESETLINKINVALID: "

    El enlace de renovación de contraseña es inválido o ha vencido.

    Usted puede requerir una nueva aquí o cambie su contraseña luego de haber ingresado.

    " NOTERESETPASSWORD: "Ingresa tu dirección email y te enviaremos un enlace con el cual podrás restablecer la contraseña" PASSWORDSENTHEADER: "Enlace para restablecer tu contraseña enviado a '%s'" PASSWORDSENTTEXT: "¡Gracias! Se ha enviado el enlace para restablecer tu contraseña a '%s'." SecurityAdmin: - ADDMEMBER: "Agregar Miembro" + ACCESS_HELP: "Permitir ver, agregar y editar usuarios, así como asignar permisos y roles a ellos." APPLY_ROLES: "Aplicar roles a grupos" APPLY_ROLES_HELP: "Posibilidad de editar los roles asignados a un grupo. Necesita el permiso \"Acceder a la sección 'Seguridad'\"." EDITPERMISSIONS: "Administrar permisos para grupos" EDITPERMISSIONS_HELP: "Posibilidad de editar permisos y direcciones IP a un grupo. Necesita el permiso \"Acceder a la sección 'Seguridad'\"." GROUPNAME: "Nombre de grupo" - IPADDRESSESHELP: | -

    Puedes restringir a este grupo dentro de una rango de direcciones IP (un rango por línea).
    - Los rangos se pueden escribir dentro de las siguientes formas:
    - 203.96.152.12
    - 203.96.152/24
    - 203.96/16
    - 203/8

    - Si tu entras uno o más rangos de direcciones IP en esta caja, entonces los miembros obtendrán - los derechos de pertenecer a dicho grupo si ingresan al sitio web desde alguno de las - direcciones IP válidas. Esto no va a impedir que puedan ingresar. Esto es porque el mismo - usuario podría tener que ingresar al sitio para llegar a partes de él donde no hay - restricciones en el uso con direcciones IP. MEMBERS: "Miembros" + MEMBERS: "Miembros" MENUTITLE: "Seguridad" MemberListCaution: "Advertencia: la eliminación de miembros de esta lista los eliminará de todos los grupos y de la base de datos" NEWGROUP: "Nuevo Grupo" PERMISSIONS: "Permisos" ROLES: "roles" ROLESDESCRIPTION: "Esta sección le permite agregar roles a este grupo. Los roles son agrupaciones lógicas de permisos, que se pueden editar en la pestaña Roles." - SGROUPS: "Grupos de seguridad" - TABIMPORT: "Importar" TABROLES: "Roles" - VIEWUSER: "Ver usuario" SecurityAdmin_MemberImportForm: BtnImport: "importar" FileFieldLabel: "Archivo CSV (extensiones permitidas: *.csv)" @@ -433,19 +339,14 @@ es_AR: ISREQUIRED: "En %s '%s' es obligatorio." TableField.ss: ADD: "Agregar una nueva fila" - ADDITEM: "Agregar %s" TableListField: CSVEXPORT: "Exportar a CSV" PRINT: "Imprimir" SELECT: "Seleccionar:" TableListField.ss: - NOITEMSFOUND: "N ose encontraron ítems" SORTASC: "Ordenar en orden ascendente" SORTDESC: "Ordenar en orden descendente" TableListField_PageControls.ss: - DISPLAYING: "Mostrando" - OF: "de" - TO: "a" VIEWFIRST: "Ver primero" VIEWLAST: "Ver último" VIEWNEXT: "Ver siguiente" diff --git a/lang/es_MX.yml b/lang/es_MX.yml index db59c7371..52414ee6a 100644 --- a/lang/es_MX.yml +++ b/lang/es_MX.yml @@ -1,10 +1,17 @@ es_MX: AssetAdmin: - CHOOSEFILE: "Seleccione un archivo" MENUTITLE: "Archivos e imágenes" NEWFOLDER: "Nueva Carpeta" - AssetAdmin_left.ss: - GO: "Ir" + AssetTableField: + CREATED: "Agregado por primera vez" + DIM: "Dimensiones" + FILENAME: "Nombre del archivo" + LASTEDIT: "Modificado por última vez" + OWNER: "Propietario" + SIZE: "Tamaño" + TITLE: "Título" + TYPE: "Tipo" + URL: "URL" BBCodeParser: ALIGNEMENT: "Alineación" ALIGNEMENTEXAMPLE: "alineado a la derecha" @@ -38,9 +45,10 @@ es_MX: ANY: "Cualquiera" NO: "No" YES: "Sí" - CMSBatchActions: - PUBLISHED_PAGES: "Se publicaron %d páginas, %d fallos" CMSMain: + ACCESS: "Acceder a la sección '%s'" + ACCESSALLINTERFACES: "Acceder a todas las secciones del CMS" + ACCESSALLINTERFACESHELP: "Anula la configuració de acceso más específica." MENUTITLE: "Contenido del sitio" SAVE: "Guardar" ChangePasswordEmail.ss: @@ -58,7 +66,6 @@ es_MX: SUCCESSEDIT: "Se guardaron %s %s %s" ComplexTableField.ss: ADDITEM: "Agregar %s" - NOITEMSFOUND: "No se encontraron elementos" SORTASC: "Orden ascendente" SORTDESC: "Orden descendente" ComplexTableField_popup.ss: @@ -67,21 +74,15 @@ es_MX: ConfirmedPasswordField: ATLEAST: "Las contraseñas deben ser al menos de %s caracteres de largo." BETWEEN: "Las contraseñas deben ser de %s a %s caracteres de largo." - HAVETOMATCH: "La contraseña tiene que coincidir." - LEASTONE: "Las contraseñas deben tener al menos un dígito y un caracter alfanumérico." MAXIMUM: "Las contraseñas deben ser de al menos %s caracteres de largo." - NOEMPTY: "La contraseña no puede estar vacía." SHOWONCLICKTITLE: "Cambiar contraseña" CreditCardField: FIRST: "primero" FOURTH: "cuarto" SECOND: "segundo" THIRD: "tercero" - VALIDATIONJS1: "Por favor asegúrate que has ingresado el" - VALIDATIONJS2: "número de tarjeta de crédito correctamente." CurrencyField: CURRENCYSYMBOL: "$" - VALIDATIONJS: "Por favor ingresa una moneda válida." DataObject: PLURALNAME: "Datos de objetos" SINGULARNAME: "Datos del objeto" @@ -102,7 +103,6 @@ es_MX: DateField: NOTSET: "no especificada" TODAY: "ahora" - VALIDATIONJS: "Por favor ingresa un formato de fecha válido (DD/MM/AAAA)." VALIDDATEFORMAT2: "Por favor, instroduzca una fecha en formato válido (%s)" VALIDDATEMAXDATE: "Su fecha tiene que ser anterior o coincidir con la máxima fecha permitida (%s)" VALIDDATEMINDATE: "Su fecha es más reciente o coincide con la fecha máxima permitida (%s)" @@ -110,7 +110,6 @@ es_MX: CHOOSE: "(Seleccione)" EmailField: VALIDATION: "Por favor ingresa una dirección de correo-e" - VALIDATIONJS: "Por favor ingresa una dirección de correo electrónico." Email_BounceRecord: PLURALNAME: "Registros de correos electrónicos devueltos" SINGULARNAME: "Correo electrónico devuelto" @@ -125,7 +124,6 @@ es_MX: Name: "Nombre" PLURALNAME: "Archivos" SINGULARNAME: "Archivo" - Sort: "Orden de Clasificación" TOOLARGE: "El tamaño del archivo es muy grade, el máximo permitido es de %s." Title: "Título" FileIFrameField: @@ -136,20 +134,6 @@ es_MX: FROMFILESTORE: "Desde el almacén de archivos" NOSOURCE: "Por favor, seleccione un archivo fuente para adjuntarlo" REPLACE: "Reemplazar %s" - Folder: - CREATED: "El Primero" - DELSELECTED: "Eliminar archivos seleccionados" - DETAILSTAB: "Detalles" - FILENAME: "Nombre de archivo" - FILESTAB: "Archivos" - LASTEDITED: "El Último Actualizado" - PLURALNAME: "Archivos" - SINGULARNAME: "Archivo" - TITLE: "Título" - TYPE: "Tipo" - UPLOADTAB: "Subido" - URL: "URL" - VIEWEDITASSET: "Ver/Editar Activo" ForgotPasswordEmail.ss: HELLO: "Hey" TEXT1: "Estás aquí" @@ -172,13 +156,9 @@ es_MX: DefaultGroupTitleAdministrators: "Administradores" DefaultGroupTitleContentAuthors: "Autores de Contenido" Description: "Descripción" - IMPORTTABTITLE: "Importar" - IPRestrictions: "Restringir Direcciones IP" Locked: "¿Bloqueado?" - PLURALNAME: "Grupos" Parent: "Grupo ascendente" RolesAddEditLink: "Agregar/modificar roles" - SINGULARNAME: "Grupo" Sort: "Orden de Clasificación" has_many_Permissions: "Permisos" many_many_Members: "Miembros" @@ -188,8 +168,6 @@ es_MX: ResultUpdated: "%d grupos actualizados" HtmlEditorField: ANCHORVALUE: "Anclar" - BUTTONINSERTFLASH: "Insertar Flash" - BUTTONINSERTIMAGE: "Insertar imagen" BUTTONINSERTLINK: "Insertar enlace" BUTTONREMOVELINK: "Quitar enlace" CAPTIONTEXT: "Texto de la leyenda" @@ -200,7 +178,6 @@ es_MX: CSSCLASSRIGHT: "A la derecha, justificando texto." EMAIL: "Dirección de correo-e" FILE: "Archivo" - FLASH: "Flash" FOLDER: "Carpeta" IMAGE: "Imagen" IMAGEALTTEXT: "El texto alternativo (alt) - si no se puede mostrar la imagen" @@ -215,20 +192,11 @@ es_MX: LINKFILE: "Descargar archivo" LINKINTERNAL: "Página en el sitio" LINKOPENNEWWIN: "¿Abrir enlace en una nueva ventana?" - LINKTEXT: "Texto del enlace" LINKTO: "Enlazar a" PAGE: "Página" - SEARCHFILENAME: "Buscar por nombre de archivo" - SHOWUPLOADFORM: "Subir archivo" URL: "URL" - Image: - PLURALNAME: "Archivos" - SINGULARNAME: "Archivo" ImageField: IMAGE: "Imagen" - Image_Cached: - PLURALNAME: "Archivos" - SINGULARNAME: "Archivo" Image_iframe.ss: TITLE: "Subiendo Imagen Iframe" LeftAndMain: @@ -240,13 +208,9 @@ es_MX: PERMDEFAULT: "Por favor, elija un método de autenticación e introduzca sus credenciales para acceder al CMS." PLEASESAVE: "Por favor Guarda la Página: No se puede actualizar esta página porque aún no se ha guardado." SAVED: "guardado" - LeftAndMain_right.ss: - WELCOMETO: "Bienvenido a" LoginAttempt: Email: "Dirección de Correo Electrónico" IP: "Dirección IP" - PLURALNAME: "Tentativas de ingreso" - SINGULARNAME: "Tentativa de ingreso " Status: "Estado" Member: ADDRESS: "Dirección" @@ -303,79 +267,37 @@ es_MX: ResultDeleted: "%d miembros eliminados" ResultNone: "Sin cambios" ResultUpdated: "%d miembros actualizados" - MemberPassword: - PLURALNAME: "Contraseñas de los miembros" - SINGULARNAME: "Contraseña del miembro" - MemberTableField: - ADD: "Agregar" - ADDEDTOGROUP: "Miembro añadido al grupo" - ADDINGFIELD: "Falló la inserción" - DeleteTitleText: "Eliminar de este grupo" - DeleteTitleTextDatabase: "Eliminar de la base de datos y de todos los grupos" - ERRORADDINGUSER: "Ocurrió un error al agregar el usuario al grupo: %s" - FILTER: "Filtro" - SEARCH: "Buscar" ModelAdmin: - ADDBUTTON: "Añadir" - ADDFORM: "Llene este formulario para agregarlo a la base de datos %s." - CHOOSE_COLUMNS: "Seleccionar columnas de resultados..." - CLEAR_SEARCH: "Limpiar Búsqueda" - CREATEBUTTON: "Crear '%s'" DELETE: "Eliminar" DELETEDRECORDS: "%s Registros eliminados." - FOUNDRESULTS: "Tu búsqueda produjo %s elementos coincidentes" IMPORT: "Importar desde CSV" IMPORTEDRECORDS: "%s registros importados." - ITEMNOTFOUND: "No puedo encontrar el elemento" - LOADEDFOREDITING: "Se ha cargado '%s' para edición." NOCSVFILE: "Por favor navegue hasta el archivo CSV a importar" NOIMPORT: "Nada por Importar" - NORESULTS: "Sin resultados" - SAVE: "Guardar" - SEARCHRESULTS: "Resultados de la Búsqueda" - SELECTALL: "seleccionar todo" - SELECTNONE: "deseleccionar" UPDATEDRECORDS: "%s Registros actualizados." MoneyField: FIELDLABELAMOUNT: "Importe" FIELDLABELCURRENCY: "Moneda" - MyEntity: - MyNamespace: "Valor predeterminado para el lenguaje natural" - MyNamespace: - MYENTITY: "Contando %s cosas" NullableField: IsNullLabel: "Es Nulo" NumericField: VALIDATION: "'%s' no es un número, este campo únicamente acepta números" - VALIDATIONJS: "no es un número, únicamente se pueden ingresar números en éste campo." - Page: - PLURALNAME: "Páginas" - SINGULARNAME: "Página" Permission: AdminGroup: "Administrador" + CMS_ACCESS_CATEGORY: "Acceder al CMS" FULLADMINRIGHTS: "Privilegios administrativos completos" FULLADMINRIGHTS_HELP: "Implica y anula todos los demás permisos asignados." - PLURALNAME: "Permisos" - SINGULARNAME: "Permiso" PermissionCheckboxSetField: AssignedTo: "asignado a \"%s\"" FromGroup: "heredado del grupo \"%s\"" FromRole: "heredado del rol \"%s\"" FromRoleOnGroup: "heredado del rol \"%s\" en el grupo \"%s\"" - PermissionRole: - PLURALNAME: "Roles" - SINGULARNAME: "Rol" - PermissionRoleCode: - PLURALNAME: "Códigos de permisos para el rol" - SINGULARNAME: "Código de permiso para el rol" Permissions: PERMISSIONS_CATEGORY: "Roles y permisos de acceso" PhoneNumberField: VALIDATION: "Por favor ingresa un número telefónico válido" RelationComplexTableField.ss: ADD: "Agregar" - CSVEXPORT: "Exportar a CSV" - NOTFOUND: "No encontré elementos" ReportAdmin: MENUTITLE: "Reportes" Security: @@ -385,36 +307,25 @@ es_MX: CHANGEPASSWORDHEADER: "Cambia tu contraseña" ENTERNEWPASSWORD: "Por favor incorpora la nueva contraseña" ERRORPASSWORDPERMISSION: "¡Debes haber firmado para cambiar la contraseña!" - IPADDRESSES: "Dirección IP" LOGGEDOUT: "Usted ha cerrado su sesión. Si desea ingresar de nuevo, introduzca sus credenciales abajo." LOGIN: "Ingresar" - LOSTPASSWORDHEADER: "Olvidé mi Contraseña" NOTEPAGESECURED: "Se ha asegurado la página. Ingresa tus credenciales abajo y en seguida enviaremos tu autorización." NOTERESETLINKINVALID: "

    En enlace para reiniciar la contraseña no es válido o ha expirado.

    Puedes solicitar una nueva here o cambiar tu contraseña una vez te hayas registrado.

    " NOTERESETPASSWORD: "Ingresa tu dirección de correo-e y te enviaremos un enlace con el cual podrás restablecer la contraseña" PASSWORDSENTHEADER: "Enlace para restablecer contraseña enviado a '%s'" PASSWORDSENTTEXT: "¡Gracias!. Se ha enviado un enlace para restablecer la contraseña a \"%s\", siempre y cuando exista una cuenta con ésta dirección de correo." SecurityAdmin: - ADDMEMBER: "Añadir Miembro" APPLY_ROLES: "Aplicar roles a grupos" EDITPERMISSIONS: "Editar permisos para grupos" EDITPERMISSIONS_HELP: "Habilidad para modificar Permisos y Direcciones IP para un grupo. Requiere permiso para \"Acceder a la sección de 'Seguridad´\"." GROUPNAME: "Nombre de grupo" - IPADDRESSESHELP: | -

    Puedes restringir este grupo a un rango de direcciones IP particular (ingresa un rango por línea).
    Los rangos se pueden especificar en cualquiera de las siguientes formas:
    - 203.96.152.12
    - 203.96.152/24
    - 203.96/16
    - 203/8


    Si incorporas uno o más rangos de direcciones IP en este cuadro, entonces los miembros solamente obtendrán los derechos de ese grupo, si alguno de ellos inicia sesión desde una de las direcciones IP válidas. Esto no evita que los miembros inicien sesión. Esto es porque el mismo usuario pudo tener que iniciar una sesión para acceder a partes del sistema sin restricción de direcciones IP. MEMBERS: "Miembros" + MEMBERS: "Miembros" MENUTITLE: "Seguridad" MemberListCaution: "Precaución: Al remover miembros de esta lista, debe eliminarlos de todos los grupos y de la base de datos." NEWGROUP: "Nuevo grupo" PERMISSIONS: "Permisos" ROLES: "Roles" - SGROUPS: "Grupos de seguridad" - TABIMPORT: "Importar" TABROLES: "Roles" - VIEWUSER: "Ver usuario" SecurityAdmin_MemberImportForm: BtnImport: "Importar" FileFieldLabel: "Archivo CSV (Extensiones permitidas: *.csv)" @@ -426,19 +337,14 @@ es_MX: ISREQUIRED: "En %s '%s' es obligatorio." TableField.ss: ADD: "Agregar un nuevo renglón" - ADDITEM: "Agregar %s" TableListField: CSVEXPORT: "Exportar a CSV" PRINT: "Imprimir" SELECT: "Seleccione:" TableListField.ss: - NOITEMSFOUND: "No se encontraron elementos" SORTASC: "Organizar en orden ascendente" SORTDESC: "Organizar en orden descendente" TableListField_PageControls.ss: - DISPLAYING: "Mostrado" - OF: "de" - TO: "a" VIEWFIRST: "Ver primero" VIEWLAST: "Ver último" VIEWNEXT: "Ver siguiente" diff --git a/lang/et_EE.yml b/lang/et_EE.yml index bd2c015ec..de60df07f 100644 --- a/lang/et_EE.yml +++ b/lang/et_EE.yml @@ -1,10 +1,17 @@ et_EE: AssetAdmin: - CHOOSEFILE: "Vali fail:" MENUTITLE: "Failid ja pildid" NEWFOLDER: "Uus kaust" - AssetAdmin_left.ss: - GO: "Mine" + AssetTableField: + CREATED: "Esmakordselt üles laaditud" + DIM: "Mõõtmed" + FILENAME: "Failinimi" + LASTEDIT: "Viimati muudetud" + OWNER: "Omanik" + SIZE: "Suurus" + TITLE: "Pealkiri" + TYPE: "Tüüp" + URL: "Aadress" BBCodeParser: ALIGNEMENT: "Joondus" ALIGNEMENTEXAMPLE: "Joondus paremale" @@ -35,6 +42,8 @@ et_EE: ERRORNOTADMIN: "Antud kasutaja ei ole administraator." ERRORNOTREC: "See kasutajanimi / parool ei ole tunnustatud" CMSMain: + ACCESS: "Ligipääs jaotisele %s" + ACCESSALLINTERFACES: "Ligipääs kõigile Sisuhalduse kasutajaliidestele" MENUTITLE: "Lehed" SAVE: "Salvesta" ChangePasswordEmail.ss: @@ -49,7 +58,6 @@ et_EE: SUCCESSEDIT: "Salvestatud %s %s %s" ComplexTableField.ss: ADDITEM: "Lisa %s" - NOITEMSFOUND: "Ei leidnud midagi" SORTASC: "Sorteeri kasvavalt" SORTDESC: "Sorteeri kahanevalt" ComplexTableField_popup.ss: @@ -58,21 +66,15 @@ et_EE: ConfirmedPasswordField: ATLEAST: "Paroolid peavad olema vähemelt %s ühikut pikkad" BETWEEN: "Paroolid peavad olema %s kuni %s ühiku pikkused" - HAVETOMATCH: "Paroolid peavad katuma" - LEASTONE: "Paroolides peab olema vähemalt üks täht ja üks number" MAXIMUM: "Paroolid võivad olla kuni %s ühikut pikkad" - NOEMPTY: "Paroolid ei saa olla tühjad" SHOWONCLICKTITLE: "Muuda parool" CreditCardField: FIRST: "esimene" FOURTH: "Neljas" SECOND: "teine" THIRD: "kolmas" - VALIDATIONJS1: "Kontolli et sisestasid" - VALIDATIONJS2: "Krediit kaardi numbri õigesti." CurrencyField: CURRENCYSYMBOL: "$" - VALIDATIONJS: "Sisesta õige valuuta" DataObject: PLURALNAME: "Andme objektid" SINGULARNAME: "Andme objekt" @@ -93,12 +95,10 @@ et_EE: DateField: NOTSET: "Pole seadistatud" TODAY: "Täna" - VALIDATIONJS: "Sisesta õige kuupäeva formaat (PP/KK/AAAA)." DropdownField: CHOOSE: "(Vali)" EmailField: VALIDATION: "Palun sisesta e-posti aadress." - VALIDATIONJS: "Palun sisesta e-posti aadress" File: Content: "Sisu" Filename: "Failinimi" @@ -107,23 +107,8 @@ et_EE: Name: "Nimi" PLURALNAME: "Failid" SINGULARNAME: "Fail" - Sort: "Järjestamine" TOOLARGE: "fail liiga suur, maksimum lubatud %s." Title: "Pealkiri" - Folder: - CREATED: "Esmalt üleslaaditud" - DELSELECTED: "Kustuta valitud failid" - DETAILSTAB: "Kirjeldus" - FILENAME: "Failinimi" - FILESTAB: "Failid" - LASTEDITED: "Viimati muudetud" - PLURALNAME: "Failid" - SINGULARNAME: "Fail" - TITLE: "Pealkiri" - TYPE: "Tüüp" - UPLOADTAB: "Laadi üles" - URL: "Aadress" - VIEWEDITASSET: "Vaata / Muuda Vahendit" ForgotPasswordEmail.ss: HELLO: "Tere" TEXT1: "Siin on sinu" @@ -144,18 +129,13 @@ et_EE: Group: Code: "Grupi kood" Description: "Kirjeldus" - IPRestrictions: "IP aadressi piirangud" Locked: "Lukus?" - PLURALNAME: "Grupid" Parent: "Vanem grupp" - SINGULARNAME: "Grupp" Sort: "Järjesta" has_many_Permissions: "Õigused" many_many_Members: "Liikmed" HtmlEditorField: ANCHORVALUE: "Link" - BUTTONINSERTFLASH: "Lisa flash" - BUTTONINSERTIMAGE: "Lisa pilt" BUTTONINSERTLINK: "Sisesta link" BUTTONREMOVELINK: "Eemalda link" CSSCLASS: "Joondus / Stiil" @@ -165,7 +145,6 @@ et_EE: CSSCLASSRIGHT: "Paremal, tekst voldib ennast ümber." EMAIL: "E-posti aadress" FILE: "Fail" - FLASH: "Flash" FOLDER: "Kaust" IMAGE: "Pilt" IMAGEDIMENSIONS: "Mõõtmed" @@ -179,14 +158,9 @@ et_EE: LINKFILE: "Salvesta fail" LINKINTERNAL: "Saidil olevat lehekülge" LINKOPENNEWWIN: "Ava link uues aknas?" - LINKTEXT: "Lingi text" LINKTO: "Lingi" PAGE: "Leht" - SEARCHFILENAME: "Otsi failinime järgi" URL: "URL" - Image: - PLURALNAME: "Failid" - SINGULARNAME: "Fail" Image_iframe.ss: TITLE: "Pildi üleslaadimise Iframe" LeftAndMain: @@ -200,8 +174,6 @@ et_EE: LoginAttempt: Email: "E-posti aadress" IP: "IP Aadress" - PLURALNAME: "Sisselogimis katsed" - SINGULARNAME: "Sisselogimis katse" Status: "Staatus" Member: ADDRESS: "Aadress" @@ -249,56 +221,22 @@ et_EE: db_PasswordExpiry: "Parool aegumise kuupäev" MemberAuthenticator: TITLE: "E-post ja parool" - MemberPassword: - PLURALNAME: "Kasutaja paroolid" - SINGULARNAME: "Kasutaja parool" - MemberTableField: - ADD: "Lisa" - ADDEDTOGROUP: "Liige lisati rühma" - ADDINGFIELD: "Lisamine ebaõnnestus" - FILTER: "Filter" - SEARCH: "Otsi" ModelAdmin: - ADDBUTTON: "Lisa" - ADDFORM: "Täida see vorm, et lisada %s andmebaasi." - CHOOSE_COLUMNS: "Valige tulemuste veerud" - CLEAR_SEARCH: "Puhasta otsing" - CREATEBUTTON: "Loo '%s'" DELETE: "Kustuta" DELETEDRECORDS: "Kustutatud %s kirjet." - FOUNDRESULTS: "Otsing leidis %s vastavat ühikut" IMPORT: "Impordi CSV failist" IMPORTEDRECORDS: "Imporditud %s kirjet." - ITEMNOTFOUND: "Ei suuda leida seda ühikut" - LOADEDFOREDITING: "'%s' muutmiseks laaditud." NOCSVFILE: "Palun avage CSV fail impordiks" NOIMPORT: "Midagi pole importida" - NORESULTS: "Tulemusi ei leitud" - SAVE: "Salvesta" - SEARCHRESULTS: "Otsingu tulemused" - SELECTALL: "Vali kõik" - SELECTNONE: "Tühista valitud" UPDATEDRECORDS: "Uuendatud %s kirjet." - MyEntity: - MyNamespace: "Minu peamine keel on" - MyNamespace: - MYENTITY: "Loenda %s asju" NumericField: VALIDATION: "'%s' ei ole number, ainult numbrid on lubatud selles väljas" - VALIDATIONJS: "See ei ole number, siia väljale saab sisestada vaid numbreid." - Page: - PLURALNAME: "Lehed" - SINGULARNAME: "Leht" Permission: FULLADMINRIGHTS: "Täis administraatori õigused" - PLURALNAME: "Õigused" - SINGULARNAME: "Õigus" PhoneNumberField: VALIDATION: "Palun sisesta kehtiv telefoninumber" RelationComplexTableField.ss: ADD: "Lisa" - CSVEXPORT: "Ekspordi - CSV-sse" - NOTFOUND: "Ei leidnud ühtegi asja" ReportAdmin: MENUTITLE: "Aruanded" Security: @@ -308,30 +246,20 @@ et_EE: CHANGEPASSWORDHEADER: "Muuda oma parool" ENTERNEWPASSWORD: "Palun sisesta uus parool." ERRORPASSWORDPERMISSION: "Pead olema sisseloginud, et parooli muuta!" - IPADDRESSES: "IP Aadressid" LOGGEDOUT: "Olete välja loginud. Kui soovite uuesti siseneda, sisestage oma andmed allpool" LOGIN: "Logi sisse" - LOSTPASSWORDHEADER: "Unustatud parool" NOTEPAGESECURED: "See leht on turvatud. Sisesta enda andmed allpool ja me saadame sind otse edasi" NOTERESETLINKINVALID: "

    Parooli tühistamise link on vale või aegunud.

    Saad küsida uue siit või muuta oma parooli peale sisenemist siit.

    " NOTERESETPASSWORD: "Sisesta oma email ja me saadame sulle lingi kus saad oma parooli tühistada." PASSWORDSENTHEADER: "Parooli tühistus link saadetud '%s'" PASSWORDSENTTEXT: "Täname ! Parooli tühistus link on saadetud '%s'." SecurityAdmin: - ADDMEMBER: "Lisa Liige" EDITPERMISSIONS: "Muuda õigusi ja IP aadresse igal grupil" GROUPNAME: "Rühma nimi" - IPADDRESSESHELP: | -

    Saad piirata ligipääsu lehele (üks IP rea kohta).
    Näited:
    - 203.96.152.12
    - 203.96.152/24
    - 203.96/16
    - 203/8

    Kui sisestad ühe või rohkem IP aadresside vahemike siia kasti, siis kasutajad saavad sisse vaid õigete IP aadrsside kaudu. See ei keela neil sisselogimast. Kuna nad võivad tulla aadressilt mida pole siis loetletud. MEMBERS: "Kasutajad" + MEMBERS: "Kasutajad" MENUTITLE: "Turvalisus" NEWGROUP: "Uus rühm" PERMISSIONS: "Õigused" - SGROUPS: "Turvarühm" - VIEWUSER: "Vaata kasutajat" SimpleImageField: NOUPLOAD: "Pilte pole üles laaditud" SiteTree: @@ -344,9 +272,6 @@ et_EE: CSVEXPORT: "Ekspordi CSV-sse" PRINT: "Prindi" TableListField_PageControls.ss: - DISPLAYING: "Kuvamine" - OF: "-" - TO: "-" VIEWFIRST: "Vaata esimest" VIEWLAST: "Vaata viimast" VIEWNEXT: "Vaata järgmist" diff --git a/lang/eu_ES.yml b/lang/eu_ES.yml deleted file mode 100644 index ccca9236a..000000000 --- a/lang/eu_ES.yml +++ /dev/null @@ -1,7 +0,0 @@ -eu_ES: - AssetAdmin: - MENUTITLE: "Fitxategiak eta irudiak" - LeftAndMain: - HELP: "Laguntza" - SecurityAdmin: - MENUTITLE: "Segurtasuna" diff --git a/lang/fa_IR.yml b/lang/fa_IR.yml index 6663e1814..8125fcb4c 100644 --- a/lang/fa_IR.yml +++ b/lang/fa_IR.yml @@ -1,8 +1,16 @@ fa_IR: AssetAdmin: - CHOOSEFILE: "انتخاب فايل" MENUTITLE: "فايل ها و عكس ها" NEWFOLDER: "پوشه جديد" + AssetTableField: + DIM: "ابعاد" + FILENAME: "نام فايل" + LASTEDIT: "آخرین تغییرات" + OWNER: "دارنده" + SIZE: "حجم" + TITLE: "عنوان" + TYPE: "نوع" + URL: "نشانی" BBCodeParser: ALIGNEMENT: "جاگذاری" ALIGNEMENTEXAMPLE: "به راست" @@ -22,6 +30,7 @@ fa_IR: NO: "نه" YES: "آری" CMSMain: + ACCESS: "دسترسی به '%s' (%s)" MENUTITLE: "محتواي سايت" SAVE: "نگاهداری" ChangePasswordEmail.ss: @@ -38,9 +47,10 @@ fa_IR: SUCCESSEDIT: "%s %s %s ذخيره شد" ComplexTableField.ss: ADDITEM: "افزودن" + ComplexTableField_popup.ss: + NEXT: "بعدی" + PREVIOUS: "قبلی" ConfirmedPasswordField: - HAVETOMATCH: "گذرواژه‌ها باید همانند هم باشند." - NOEMPTY: "گذرواژه نمی‌تواند تهی باشد" SHOWONCLICKTITLE: "تغيير كلمه عبور" CreditCardField: FIRST: "نخست" @@ -70,7 +80,6 @@ fa_IR: DropdownField: CHOOSE: "(گزینش)" EmailField: - VALIDATIONJS: "لطفاً آدرس ایمیل خود را وارد کنید." File: Content: "محتوا" Filename: "نام پرونده" @@ -78,21 +87,10 @@ fa_IR: Name: "نام" PLURALNAME: "فايل ها" SINGULARNAME: "فايل" - Sort: "ترتیب چیدن" TOOLARGE: "پرونده بیش از اندازه بزرگ است، بیشترین اندازه ممکن %s است." Title: "عنوان" FileIFrameField: NOSOURCE: "لطفا محل یک فایل را جهت پیوست انتخاب کنید" - Folder: - DELSELECTED: "حذف پرونده های انتخاب شده" - DETAILSTAB: "جزئیات" - FILENAME: "نام پرونده" - FILESTAB: "فایلها" - PLURALNAME: "فايل ها" - SINGULARNAME: "فايل" - TITLE: "عنوان" - TYPE: "نوع" - UPLOADTAB: "بالاگذاری" ForgotPasswordEmail.ss: HELLO: "درود" TEXT3: "برای" @@ -107,13 +105,9 @@ fa_IR: DefaultGroupTitleAdministrators: "مدیران کل" DefaultGroupTitleContentAuthors: "نویسندگان مطالب" Description: "توضحیات" - IMPORTTABTITLE: "وارد کردن" - IPRestrictions: "آی پی های محدود شده" Locked: "بسته شده است؟" - PLURALNAME: "گروه " Parent: "گروه مادر" RolesAddEditLink: "اضافه/ویرایش وظیفه" - SINGULARNAME: "گروه" Sort: "تربیت چیدن" has_many_Permissions: "مجوز‌ها" many_many_Members: "اعضاء" @@ -122,14 +116,11 @@ fa_IR: ResultDeleted: "گروه %d حذف شد" ResultUpdated: "گروه %d بروز شد" HtmlEditorField: - BUTTONINSERTFLASH: "گذاشتن فلش" - BUTTONINSERTIMAGE: "گذاشتن عکس" BUTTONINSERTLINK: "گذاشتن پیوند" BUTTONREMOVELINK: "برداشتن پیوند" CSSCLASS: "جاگیری / الگو" EMAIL: "پست الکترونیک" FILE: "پرونده" - FLASH: "فلش" FOLDER: "پوشه" IMAGE: "عکس" IMAGEHEIGHTPX: "بلندی" @@ -140,18 +131,9 @@ fa_IR: LINKFILE: "یک پرونده را بارگزاری کنید" LINKINTERNAL: "برگ در تارگاه" LINKOPENNEWWIN: "در پنجره جدید باز شود ؟" - LINKTEXT: "متن لینک" LINKTO: "پیوند به" PAGE: "برگ" - SEARCHFILENAME: "جستجو با نام فایل" - SHOWUPLOADFORM: "آپلود فایل" URL: "نشانی" - Image: - PLURALNAME: "پرونده‌ها" - SINGULARNAME: "پرونده" - Image_Cached: - PLURALNAME: "پرونده‌ها" - SINGULARNAME: "پرونده" LeftAndMain: HELP: "کمک" PAGETYPE: "نوع صفحه" @@ -159,12 +141,8 @@ fa_IR: PERMALREADY: "من متاسفم، شما نمی توانید به آن قسمت از سیستم مدیریت محتوا دسترسی پیدا کنید. اگر میخواهید به عنوان شخص دیگری وارد شوید از قسمت زیر تلاش کنید" PLEASESAVE: "لطفاً صفحه را ذخیره کنید : این صفحه نمی تواند بروز شود چراکه هنوز ذخیره نشده است." SAVED: "ذخیره شد" - LeftAndMain_right.ss: - WELCOMETO: "خوش آمدید به" LoginAttempt: Email: "آدرس های ایمیل" - PLURALNAME: "تلاش‌ برای ورود" - SINGULARNAME: "تلاش برای ورود" Member: ADDRESS: "نشانی" BUTTONCHANGEPASSWORD: "تغییر رمز عبور" @@ -198,31 +176,13 @@ fa_IR: ResultDeleted: "کاربر %d حذف شد" ResultNone: "تغییری ایجاد نشد" ResultUpdated: "کاربر %d بروز شد" - MemberPassword: - PLURALNAME: "گذرواژه‌های اعضاء" - SINGULARNAME: "گذرواژه عضو" - MemberTableField: - ADD: "افزودن" - ADDEDTOGROUP: "کاربر به گروه افزوده شد" - DeleteTitleText: "حذف از این گروه" - DeleteTitleTextDatabase: "حذف از بانک اطلاعاتی و همه گروه ها" ModelAdmin: - ADDBUTTON: "افزودن" - CREATEBUTTON: "ساخت '%s'" DELETE: "حذف" - ITEMNOTFOUND: "من نمیتوانم موارد مورد نظر را پیدا کنم" - SAVE: "ذخیره" - SEARCHRESULTS: "نتايج جستجو" NullableField: IsNullLabel: "خالی است" - Page: - PLURALNAME: "برگ‌ها" - SINGULARNAME: "صفحه" Permission: AdminGroup: "مدیر کل" FULLADMINRIGHTS: "توانایی‌های کامل مدیریتی:" - PLURALNAME: "مجوزها" - SINGULARNAME: "مجوز" PermissionCheckboxSetField: AssignedTo: "مجوز %s" Permissions: @@ -231,24 +191,20 @@ fa_IR: VALIDATION: "لطفاً شماره تلفن معتبر وارد کنید" RelationComplexTableField.ss: ADD: "افزودن" - NOTFOUND: "چیزی یافت نشد" ReportAdmin: MENUTITLE: "گزارش ها" Security: ALREADYLOGGEDIN: "شما به این صفحه دسترسی ندارید. اگر حساب کاربری دیگری دارید که به این صفحه دسترسی دارد، شما میتوانید دوباره وارد شوید.." - IPADDRESSES: "نشانی‌های IP" + CHANGEPASSWORDHEADER: "تغییر گذرواژه" + ENTERNEWPASSWORD: "لطفاً گذرواژه جدید را وارد کنید." LOGIN: "ورود" SecurityAdmin: - ADDMEMBER: "افزودن عضو" APPLY_ROLES: "اعمال وظایف به گروه" MEMBERS: "کاربران" MENUTITLE: "امنيت" NEWGROUP: "گروه تازه" ROLES: "وظایف" - SGROUPS: "گروه های امنیتی" - TABIMPORT: "وارد کردن" TABROLES: "وظایف" - VIEWUSER: "نمایش کاربر" SecurityAdmin_MemberImportForm: BtnImport: "وارد کردن" SiteTree: @@ -259,13 +215,9 @@ fa_IR: PRINT: "چاپ" SELECT: "انتخاب" TableListField.ss: - NOITEMSFOUND: "موردی یافت نشد" SORTASC: "چینش صعودی" SORTDESC: "چینش نزولی" TableListField_PageControls.ss: - DISPLAYING: "نمایش" - OF: "از" - TO: "به" VIEWFIRST: "مشاهده اولی" VIEWLAST: "مشاهده آخری" VIEWNEXT: "مشاهده بعدی" diff --git a/lang/fi.yml b/lang/fi.yml index 370b24a3b..58b9d37bf 100644 --- a/lang/fi.yml +++ b/lang/fi.yml @@ -1,10 +1,17 @@ fi: AssetAdmin: - CHOOSEFILE: "Valitse tiedosto" MENUTITLE: "Tiedostot ja kuvat" NEWFOLDER: "Uusi kansio" - AssetAdmin_left.ss: - GO: "Siirry" + AssetTableField: + CREATED: "Ensimmäisen kerran ladattu palvelimelle" + DIM: "Mitat" + FILENAME: "Tiedoston nimi" + LASTEDIT: "Viimeksi muokattu" + OWNER: "Omistaja" + SIZE: "Koko" + TITLE: "Otsikko" + TYPE: "Tyyppi" + URL: "URL" BBCodeParser: ALIGNEMENT: "Tasaus" ALIGNEMENTEXAMPLE: "tasattu oikealle" @@ -38,9 +45,10 @@ fi: ANY: "Yhtään" NO: "Ei" YES: "Kyllä" - CMSBatchActions: - PUBLISHED_PAGES: "Julkaistu %d sivua, %d epäonnistumista" CMSMain: + ACCESS: "Pääsy %s:ään CMS:ssä" + ACCESSALLINTERFACES: "Pääsy kaikkiin CMS-osioihin" + ACCESSALLINTERFACESHELP: "Ohittaa tarkemmat käyttöoikeudet." MENUTITLE: "Sivuston sisältö" SAVE: "Tallenna" ChangePasswordEmail.ss: @@ -58,7 +66,6 @@ fi: SUCCESSEDIT: "Tallennettu %s %s %s" ComplexTableField.ss: ADDITEM: "Lisää %s" - NOITEMSFOUND: "Kohteita ei löytynyt" SORTASC: "Nouseva järjestys" SORTDESC: "Laskeva järjestys" ComplexTableField_popup.ss: @@ -67,21 +74,15 @@ fi: ConfirmedPasswordField: ATLEAST: "Salasanojen pitää olla vähintään %s merkkiä pitkä." BETWEEN: "Salasanojen pitää olla %s-%s merkkiä pitkät." - HAVETOMATCH: "Salasanojen on oltava samat." - LEASTONE: "Salasanoissa pitää olla vähintään yksi numero ja yksi alfanumeerinen merkki." MAXIMUM: "Salasanojen pitää olla korkeintaan %s merkkiä pitkät." - NOEMPTY: "Salasanat eivät voi olla tyhjiä." SHOWONCLICKTITLE: "Vaihda salasana" CreditCardField: FIRST: "ensimmäinen" FOURTH: "neljäs" SECOND: "toinen" THIRD: "kolmas" - VALIDATIONJS1: "Varmista että olet syöttänyt " - VALIDATIONJS2: "luottokorttinumeron oikein." CurrencyField: CURRENCYSYMBOL: "$" - VALIDATIONJS: "Anna kelvollinen valuutta." DataObject: PLURALNAME: "Dataobjektit" SINGULARNAME: "Dataobjekti" @@ -102,7 +103,6 @@ fi: DateField: NOTSET: "ei asetettu" TODAY: "tänään" - VALIDATIONJS: "Ole hyvä ja syötä hyväksytty päivämäärä (DD/MM/VVVV)." VALIDDATEFORMAT2: "Anna päivämäärä kelvollisessa muoto (%s)" VALIDDATEMAXDATE: "Päivämäärän täytyy olla vanhempi tai vastata myöhäisintä sallittua päivämäärää (%s)" VALIDDATEMINDATE: "Päivämäärän täytyy olla uudempi tai vastata aikaisinta sallittua päivämäärää (%s)" @@ -110,7 +110,6 @@ fi: CHOOSE: "(Valitse)" EmailField: VALIDATION: "Kirjoita sähköpostiosoite." - VALIDATIONJS: "Ole hyvä ja syötä sähköpostiosoite." Enum: ANY: "Yhtään" File: @@ -122,7 +121,6 @@ fi: Name: "Nimi" PLURALNAME: "Tiedostot" SINGULARNAME: "Tiedosto" - Sort: "Järjestys" TOOLARGE: "Tiedosto on liian iso, %s on suurin sallittu." Title: "Otsikko" FileIFrameField: @@ -134,22 +132,6 @@ fi: FROMFILESTORE: "Tiedostovarastosta" NOSOURCE: "Valitse lähdetiedosto liitettäväksi" REPLACE: "Korvaa %s" - FileIFrameField.ss: - TITLE: "Kuvansiirto Iframe" - Folder: - CREATED: "Ensimmäinen kopioitu palvelimelle" - DELSELECTED: "Poista valitut tiedostot" - DETAILSTAB: "Tietoja" - FILENAME: "Tiedostonimi" - FILESTAB: "Tiedostot" - LASTEDITED: "Viimeeksi päivitetty" - PLURALNAME: "Tiedostot" - SINGULARNAME: "Tiedosto" - TITLE: "Otsikko" - TYPE: "Tyyppi" - UPLOADTAB: "Kopioi palvelimelle" - URL: "URL" - VIEWEDITASSET: "Näytä/muokkaa etu" ForgotPasswordEmail.ss: HELLO: "Hei" TEXT1: "Tässä on sinun" @@ -171,13 +153,9 @@ fi: DefaultGroupTitleAdministrators: "Järjestelmänvalvojat" DefaultGroupTitleContentAuthors: "Sisällöntuottajat" Description: "Kuvaus" - IMPORTTABTITLE: "Tuo" - IPRestrictions: "Rajoitukset IP-osoitteisiin" Locked: "Lukittu?" - PLURALNAME: "Ryhmät" Parent: "Yliryhmä" RolesAddEditLink: "Lisää/muokkaa rooleja" - SINGULARNAME: "Ryhmä" Sort: "Järjestys" has_many_Permissions: "Luvat" many_many_Members: "Jäsenet" @@ -188,8 +166,6 @@ fi: ResultUpdated: "Päivitetty %d ryhmää" HtmlEditorField: ANCHORVALUE: "Ankkuri" - BUTTONINSERTFLASH: "Lisää Flash-video" - BUTTONINSERTIMAGE: "Lisää kuva" BUTTONINSERTLINK: "Lisää linkki" BUTTONREMOVELINK: "Poista linkki" CAPTIONTEXT: "Kuvateksti" @@ -200,7 +176,6 @@ fi: CSSCLASSRIGHT: "Oikealla, tesktin ympätöimänä." EMAIL: "Sähköpostiosoite" FILE: "Tiedosto" - FLASH: "Lisää flash-video" FOLDER: "Kansio" IMAGE: "Lisää kuva" IMAGEALTTEXT: "Vaihtoehtoinen teksti (alt) - näytetään jos kuvaa ei voida näyttää" @@ -215,20 +190,11 @@ fi: LINKFILE: "Lataa tiedosto" LINKINTERNAL: "Sivu sivustolla" LINKOPENNEWWIN: "Avataanko linkki uudessa ikkunassa?" - LINKTEXT: "Linkin teksti" LINKTO: "Linkki" PAGE: "Sivu" - SEARCHFILENAME: "Hae tiedoston nimen mukaan" - SHOWUPLOADFORM: "Lataa tiedosto" URL: "URL-osoite" - Image: - PLURALNAME: "Tiedostot" - SINGULARNAME: "Tiedosto" ImageField: IMAGE: "Kuva" - Image_Cached: - PLURALNAME: "Tiedostot" - SINGULARNAME: "Tiedosto" LeftAndMain: CANT_REORGANISE: "Sinulla ei ole käyttöoikeutta uudelleen järjestää sivustorakennetta. Muutoksiasi ei tallennettu." HELP: "Ohje" @@ -238,13 +204,9 @@ fi: PERMDEFAULT: "Valitse tunnistustapa ja syötä tunnistetietosi CMS:ään." PLEASESAVE: "Tätä sivua ei voitu päivittää, koska sitä ei ole vielä tallennettu. Tallenna sivu." SAVED: "tallennettu" - LeftAndMain_right.ss: - WELCOMETO: "Tervetuloa" LoginAttempt: Email: "Sähköpostiosoite" IP: "IP-osoite" - PLURALNAME: "Kirjautumisyritykset" - SINGULARNAME: "Kirjautumisyritys" Status: "Tila" Member: ADDRESS: "Osoite" @@ -302,73 +264,36 @@ fi: ResultDeleted: "Poistettu %d jäsentä" ResultNone: "Ei muutoksia" ResultUpdated: "Päivitetty %d jäsentä" - MemberPassword: - PLURALNAME: "Jäsenen salasanat" - SINGULARNAME: "Jäsenen salasana" - MemberTableField: - ADD: "Lisää" - ADDEDTOGROUP: "Ryhmään lisättiin jäsen" - ADDINGFIELD: "Lisäys epäonnistui" - DeleteTitleText: "Poista tästä ryhmästä" - DeleteTitleTextDatabase: "Poista tietokannasta ja kaikista ryhmistä" - ERRORADDINGUSER: "Tapahtui virhe liitettäessä käyttäjää ryhmään: %s" - FILTER: "Suodata" - SEARCH: "Haku" ModelAdmin: - ADDBUTTON: "Lisää" - ADDFORM: "Täytä tämä lomake lisätäksesi kohteen '%s' tietokantaan" - CHOOSE_COLUMNS: "Valitse tulossarakkeet..." - CLEAR_SEARCH: "Tyhjennä haku" - CREATEBUTTON: "Create '%s'" DELETE: "Poista" DELETEDRECORDS: "Poistettu %s tietuetta." - FOUNDRESULTS: "Haku tuotti %s yhteensopivaa kohdetta" IMPORT: "Tuo CSV:stä" IMPORTEDRECORDS: "Tuotiin %s tietuetta." - ITEMNOTFOUND: "En löydä kohdetta" - LOADEDFOREDITING: "Ladattu '%s' muokkaamista varten." NOIMPORT: "Ei tuotavia" - NORESULTS: "Ei tuloksia" - SAVE: "Tallenna" - SEARCHRESULTS: "Haun tulokset" - SELECTALL: "valitse kaikki" - SELECTNONE: "poista valinta" UPDATEDRECORDS: "Päivitetty %s tietuetta." MoneyField: FIELDLABELAMOUNT: "Määrä" FIELDLABELCURRENCY: "Valuutta" - MyNamespace: - MYENTITY: "Laskemassa %s kohdetta" NullableField: IsNullLabel: "On nolla" NumericField: VALIDATION: "%s ei ole numero, tähän kenttään hyväksytään vain numeroita." - VALIDATIONJS: "ei ole numero, tämä kenttä hyväksyy vain numeroita" - Page: - PLURALNAME: "Sivut" - SINGULARNAME: "Sivu" Permission: AdminGroup: "Järjestelmänvalvoja" + CMS_ACCESS_CATEGORY: "CMS-pääsy" FULLADMINRIGHTS: "Täydet ylläpitäjän oikeudet" FULLADMINRIGHTS_HELP: "Merkitsee ja ohittaa kaikki muut määritellyt käyttöoikeudet." - PLURALNAME: "Luvat" - SINGULARNAME: "Lupa" PermissionCheckboxSetField: AssignedTo: "määritetty \"%s\"" FromGroup: "periytynyt ryhmästä \"%s\"" FromRole: "periytynyt roolista \"%s\"" FromRoleOnGroup: "periytynyt roolista \"%s\" ryhmässä \"%s\"" - PermissionRole: - PLURALNAME: "Roolit" - SINGULARNAME: "Rooli" Permissions: PERMISSIONS_CATEGORY: "Roolit ja käyttöoikeudet" PhoneNumberField: VALIDATION: "Kirjoita pätevä puhelinnumero" RelationComplexTableField.ss: ADD: "Lisää" - CSVEXPORT: "Vie CSV:een" - NOTFOUND: "Kohteita ei löytynyt" ReportAdmin: MENUTITLE: "Raportit" Security: @@ -378,38 +303,28 @@ fi: CHANGEPASSWORDHEADER: "Vaihda salasanasi" ENTERNEWPASSWORD: "Syötä uusi salasanasi" ERRORPASSWORDPERMISSION: "Sinun täytyy olla kirjautuneena sisään, jotta voit vaihtaa salasanasi." - IPADDRESSES: "IP-osoitteet" LOGGEDOUT: "Kirjauduit ulos. Jos haluat kirjautua sisään, syötä tietosi alle." LOGIN: "Kirjaudu sisään" - LOSTPASSWORDHEADER: "Salasana kadotettu" NOTEPAGESECURED: "Tämä sivu on suojattu. Syötä tunnistetietosi alle ja annamme sinulle oikeat oikeudet." NOTERESETLINKINVALID: "

    Salasanan linkki on virheellinen tai vanhentunut.

    Voit pyytää uuden täällä tai vaihda salasanasi sisäänkirjauduttuasi.

    " NOTERESETPASSWORD: "Syötä sähköpostiosoitteesi ja lähetämme sinulle linkin, jonka avulla saat palautettua salasanasi" PASSWORDSENTHEADER: "Salasanan palautuslinkki lähetettiin osoitteeseen %s" PASSWORDSENTTEXT: "Kiitos! Salasanan palautuslinkki on lähetetty osoitteeseen %s." SecurityAdmin: - ADDMEMBER: "Lisää jäsen" + ACCESS_HELP: "Oikeuttaa käyttäjien katselun, lisäämisen ja muokkaamisen, kuten myös käyttöoikeuksien ja roolien määrittämisen heille." APPLY_ROLES: "Aseta roolit ryhmille" APPLY_ROLES_HELP: "Mahdollisuus muokata ryhmän roolinimityksiä. Vaatii \"Pääsy turvallisuusosioon\" -oikeuden." EDITPERMISSIONS: "Muokkaa jokaisen ryhmän oikeuksia ja IP-osotteita." EDITPERMISSIONS_HELP: "Mahdollisuus muokata ryhmän käyttöoikeuksia ja IP-osoitteita. Vaatii \"Pääsy turvallisuusosioon\" -oikeuden." GROUPNAME: "Ryhmän nimi" - IPADDRESSESHELP: | -

    Voit rajata tämän ryhmän käyttöoikeudet vain tiettyihin IP osoitteisiin (yksi raja riville).
    Rajat voi olla seuraavissa muodoissa:
    - 203.96.152.12
    - 203.96.152/24
    - 203.96/16
    - 203/8

    Jos syötät yhden tai useamman IP osoitteen tähän laatikkoon, jäsenet saavat ryhmän oikeudet vain kirjautuessaan sallitusta IP osoitteesta. Kirjautumista ei kuitenkaan estetä muista IP osoitteesta ja käyttäjä pystyy toimimaan järjestelmän alueilla, joissa rajoitus ei ole käytössä. MEMBERS: "Jäsenet" + MEMBERS: "Jäsenet" MENUTITLE: "Turvallisuus" MemberListCaution: "Varoitus: Jäsenten poistaminen listalta poistaa ne kaikista ryhmistä ja tietokannasta" NEWGROUP: "Uusi ryhmä" PERMISSIONS: "Oikeudet" ROLES: "Roolit" ROLESDESCRIPTION: "Tässä osiossa voit lisätä rooleja tähän ryhmään. Roolit ovat käyttöoikeuksien loogisia ryhmittymiä, joita voidaan muokata Roolit-välilehdellä" - SGROUPS: "Tietoturvaryhmät" - TABIMPORT: "Tuonti" TABROLES: "Roolit" - VIEWUSER: "Näytä käyttäjä" SecurityAdmin_MemberImportForm: BtnImport: "Tuonti" FileFieldLabel: "CSV-tiedosto (Sallitut päätteet: *.csv)" @@ -421,17 +336,14 @@ fi: ISREQUIRED: "%s:ssa %s on tarvittu." TableField.ss: ADD: "Lisää uusi rivi" - ADDITEM: "Lisää %s" TableListField: CSVEXPORT: "Vie CSV:nä" PRINT: "Tulosta" SELECT: "Valitse:" TableListField.ss: - NOITEMSFOUND: "Kohteita ei löytynyt" SORTASC: "Järjestä nousevasti" SORTDESC: "Järjestä laskevasti" TableListField_PageControls.ss: - DISPLAYING: "Näytetään" VIEWFIRST: "Näytä ensimmäinen" VIEWLAST: "Näytä viimeinen" VIEWNEXT: "Näytä seuraava" diff --git a/lang/fo.yml b/lang/fo.yml index b5ad65080..58076832f 100644 --- a/lang/fo.yml +++ b/lang/fo.yml @@ -1,10 +1,15 @@ fo: AssetAdmin: - CHOOSEFILE: "Áset eina fílu" MENUTITLE: "Fílur og myndir" NEWFOLDER: "Nýggj skjátta" - AssetAdmin_left.ss: - GO: "Víðari" + AssetTableField: + FILENAME: "Fílunavn" + LASTEDIT: "Seinast broyting" + OWNER: "Eigari" + SIZE: "Stødd" + TITLE: "Heiti" + TYPE: "Slag" + URL: "URL" BBCodeParser: COLOREDEXAMPLE: "bláur tekstur" EMAILLINK: "Teldupost leinka" @@ -19,6 +24,7 @@ fo: ERRORNOTADMIN: "Hasin brúkarin er ikki ein fyrisitari." ERRORNOTREC: "Brúkaranavn / loyniorð er skeivt" CMSMain: + ACCESS: "Rættindi til '%s' (%s)" MENUTITLE: "Heimasíðu innihald" SAVE: "Goym" ChangePasswordEmail.ss: @@ -31,7 +37,6 @@ fo: SUCCESSADD: "Stovnaði %s %s %s" ComplexTableField.ss: ADDITEM: "Stovna %s" - NOITEMSFOUND: "Einki var funnið" SORTASC: "Raða hækkandi" SORTDESC: "Raða lækkandi" ComplexTableField_popup.ss: @@ -40,21 +45,15 @@ fo: ConfirmedPasswordField: ATLEAST: "Loyniorð mugu verða í minsta lagi %s stavir til longdar." BETWEEN: "Loyniorð mugu verða %s til %s stavir til longdar." - HAVETOMATCH: "Loyniorð mugu samsvara." - LEASTONE: "Loyniorð mugu hava í minsta lagi innihalda eitt tal og ein bókstav." MAXIMUM: "Loyniorð mugu verða í mesta lagi %s stavir til longdar." - NOEMPTY: "Loyniorð kunnu ikki verða tóm." SHOWONCLICKTITLE: "Broyt loyniorð" CreditCardField: FIRST: "fyrsta" FOURTH: "fjóra" SECOND: "næsta" THIRD: "triða" - VALIDATIONJS1: "Vinarliga tryggja at tygum hava inntøppað" - VALIDATIONJS2: "gjaldskortsnummarið rætt" CurrencyField: CURRENCYSYMBOL: "$" - VALIDATIONJS: "Vinarliga inntøppa eitt galdandi gjaldsoyra." DataObject: PLURALNAME: "Dáta eindir" SINGULARNAME: "Dáta eind" @@ -75,7 +74,6 @@ fo: DateField: NOTSET: "ikki ásett" TODAY: "í dag" - VALIDATIONJS: "Vinarliga inntøppa eitt galdandi dato format (DD/MM/YYYY)." DropdownField: CHOOSE: "(Áset)" EmailField: @@ -87,19 +85,8 @@ fo: Name: "Navn" PLURALNAME: "Fílur" SINGULARNAME: "Fíla" - Sort: "Raða eftir" TOOLARGE: "Fílan er ov stór, mest loyvt er %s." Title: "Heiti" - Folder: - DETAILSTAB: "upplýsningar" - FILENAME: "Fílunavn" - FILESTAB: "Fílur" - LASTEDITED: "Seinast broytt" - PLURALNAME: "Fílur" - SINGULARNAME: "Fíla" - TITLE: "Heiti" - TYPE: "Slag" - URL: "URL" ForgotPasswordEmail.ss: HELLO: "Hey" TEXT1: "Her er títt" @@ -116,15 +103,11 @@ fo: Code: "Bólka kota" Description: "Frágreiðing" Locked: "Læst?" - PLURALNAME: "Bólkar" Parent: "Yvirbólkur" - SINGULARNAME: "Bólkur" Sort: "Raða eftir" has_many_Permissions: "Loyvir" many_many_Members: "Limir" HtmlEditorField: - BUTTONINSERTFLASH: "Innset flash" - BUTTONINSERTIMAGE: "Innset mynd" BUTTONINSERTLINK: "Stovna leinku" BUTTONREMOVELINK: "Strika leinku" CSSCLASSCENTER: "Í miðuni, einsamalt." @@ -132,7 +115,6 @@ fo: CSSCLASSRIGHT: "Til høgru, við tekstinum rundan um." EMAIL: "Teldupostadressu" FILE: "Fíla" - FLASH: "Flash" FOLDER: "Skjátta" IMAGE: "Mynd" IMAGEHEIGHTPX: "Hædd" @@ -146,12 +128,6 @@ fo: LINKTO: "Leinka til" PAGE: "Síða" URL: "URL" - Image: - PLURALNAME: "Fílur" - SINGULARNAME: "Fíla" - Image_Cached: - PLURALNAME: "Fílur" - SINGULARNAME: "Fíla" LeftAndMain: HELP: "Leiðbeiningar" PAGETYPE: "Slag av síðu:" @@ -163,8 +139,6 @@ fo: LoginAttempt: Email: "Teldupostur" IP: "IP adressa" - PLURALNAME: "Royndir at innrita" - SINGULARNAME: "Roynd at innrita" Status: "Støða" Member: ADDRESS: "Bústaður" @@ -202,34 +176,16 @@ fo: db_PasswordExpiry: "Loyniorð gongur út" MemberAuthenticator: TITLE: "Teldupostadressa & Loyniorð" - MemberPassword: - PLURALNAME: "Loyniorð hjá brúkarum" - SINGULARNAME: "Loyniorð hjá brúkara" - MemberTableField: - ADD: "Stovna" - ADDEDTOGROUP: "Legði lim í bólkin" - FILTER: "Filtur" - SEARCH: "Leita" ModelAdmin: - CLEAR_SEARCH: "Nullstilla leiting" - CREATEBUTTON: "Stovna '%s'" DELETE: "Strika" IMPORT: "Innles frá CSV" IMPORTEDRECORDS: "Innlæs %s skrásetingar." - SAVE: "Goym" - SEARCHRESULTS: "Leitiúrslit" UPDATEDRECORDS: "Dagførdi %s skrásetingar." - Page: - PLURALNAME: "Síður" - SINGULARNAME: "Síða" Permission: - PLURALNAME: "Rættindir" - SINGULARNAME: "Rættindi" PhoneNumberField: VALIDATION: "Vinarliga inntøppa eitt galdandi telefonnummar" RelationComplexTableField.ss: ADD: "Stovna" - CSVEXPORT: "Útles til CSV" ReportAdmin: MENUTITLE: "Úrrit" Security: @@ -238,19 +194,14 @@ fo: CHANGEPASSWORDHEADER: "Broyt títt loyniorð" ENTERNEWPASSWORD: "Vinarliga inntøppa eitt nýtt loyniorð" ERRORPASSWORDPERMISSION: "Tú má verða innritað/ur fyri at kunna broyta títt loyniorð!" - IPADDRESSES: "IP-adressur" LOGGEDOUT: "Tú ert blivin útritaður. Um tygum ynskja at innrita aftur, inntøppa so tínar upplýsningar niðanfyri." LOGIN: "Innrita" - LOSTPASSWORDHEADER: "Gloymt loyniorð" SecurityAdmin: - ADDMEMBER: "Stovna lim" GROUPNAME: "Bólkaheiti" MEMBERS: "Limir" MENUTITLE: "Trygd" NEWGROUP: "Nýggjur bólkur" PERMISSIONS: "Rættindi" - SGROUPS: "Trygdarbólkar" - VIEWUSER: "Vís brúkara" SiteTree: TABMAIN: "Alment" TableField.ss: @@ -258,8 +209,6 @@ fo: CSVEXPORT: "Útles til CSV" PRINT: "Prenta" TableListField_PageControls.ss: - OF: "av" - TO: "til" VIEWFIRST: "Vís fyrstu" VIEWLAST: "Vís seinastu" VIEWNEXT: "Vís næstu" diff --git a/lang/fr.yml b/lang/fr.yml index 169de1997..a246809f5 100644 --- a/lang/fr.yml +++ b/lang/fr.yml @@ -1,10 +1,17 @@ fr: AssetAdmin: - CHOOSEFILE: "Choisissez un fichier :" MENUTITLE: "Fichiers & Images" NEWFOLDER: "Nouveau dossier" - AssetAdmin_left.ss: - GO: "Go" + AssetTableField: + CREATED: "Premier chargement" + DIM: "Dimensions" + FILENAME: "Nom du fichier" + LASTEDIT: "Dernière modification" + OWNER: "Propriétaire" + SIZE: "Taille" + TITLE: "Titre" + TYPE: "Type" + URL: "URL" BBCodeParser: ALIGNEMENT: "Alignement" ALIGNEMENTEXAMPLE: "alignement à droite" @@ -38,9 +45,10 @@ fr: ANY: "Tout" NO: "Non" YES: "Oui" - CMSBatchActions: - PUBLISHED_PAGES: "%d pages publiées, %d échecs" CMSMain: + ACCESS: "Accès à la section « %s »" + ACCESSALLINTERFACES: "Accès à toutes les sections du CMS" + ACCESSALLINTERFACESHELP: "Prioritaire sur les droits plus spécifiques d'accès." MENUTITLE: "Contenu du site" SAVE: "Enregistrer" ChangePasswordEmail.ss: @@ -58,7 +66,6 @@ fr: SUCCESSEDIT: "Sauvegardé %s %s %s" ComplexTableField.ss: ADDITEM: "Ajoute %s" - NOITEMSFOUND: "Aucun élément trouvé" SORTASC: "Tri croissant" SORTDESC: "Tri décroissant" ComplexTableField_popup.ss: @@ -67,21 +74,15 @@ fr: ConfirmedPasswordField: ATLEAST: "Les mots de passe doivent contenir au minimum %s caractères." BETWEEN: "Les mots de passe doivent contenir %s à %s caractères." - HAVETOMATCH: "Les mots de passe de correspondent pas." - LEASTONE: "Le mots de passe doivent au moins contenir un chiffre et un caractère alphanumérique." MAXIMUM: "Les mots de passe ne doivent pas contenir plus de %s caractères." - NOEMPTY: "Les mots de passe ne doivent pas être vide." SHOWONCLICKTITLE: "Changer le mot de passe" CreditCardField: FIRST: "premier" FOURTH: "quatrième" SECOND: "second" THIRD: "troisième" - VALIDATIONJS1: "Veuillez vous assurer que vous avez entré le" - VALIDATIONJS2: "le bon numéro de de la carte de crédit." CurrencyField: CURRENCYSYMBOL: "$" - VALIDATIONJS: "Merci d'entrer une devise existante" DataObject: PLURALNAME: "Data Objects" SINGULARNAME: "Data Object" @@ -102,7 +103,6 @@ fr: DateField: NOTSET: "pas d'ensemble" TODAY: "aujourd'hui" - VALIDATIONJS: "Veuillez saisir un format de date valide (JJ-MM-AAAA)." VALIDDATEFORMAT2: "Veuillez saisir une date au formate valide (%s)" VALIDDATEMAXDATE: "Votre date doit être plus ancienne ou correspondante à la date maximum autorisée (%s)" VALIDDATEMINDATE: "Votre date doit être récente ou correspondante à la date minimale autorisée (%s)" @@ -110,7 +110,6 @@ fr: CHOOSE: "(Choisir)" EmailField: VALIDATION: "Entrer une adresse email s'il vous plaît." - VALIDATIONJS: "Veuillez saisir une adresse email." Email_BounceRecord: PLURALNAME: "Enregistrements des Emails rejetés" SINGULARNAME: "Enregistrement de Email rejeté" @@ -125,7 +124,6 @@ fr: Name: "Nom" PLURALNAME: "Fichiers" SINGULARNAME: "Fichier" - Sort: "Ordre de tri" TOOLARGE: "La taille du fichier est trop grande, le maximum permis est %s ." Title: "Titre" FileIFrameField: @@ -137,22 +135,6 @@ fr: FROMFILESTORE: "Depuis le magasin de fichier" NOSOURCE: "Choisir un fichier à attacher" REPLACE: "Remplacer %s" - FileIFrameField.ss: - TITLE: "Iframe de téléversement de l'image." - Folder: - CREATED: "Premier téléchargement" - DELSELECTED: "Supprimer les fichiers sélectionnés" - DETAILSTAB: "Détails" - FILENAME: "Nom du fichier" - FILESTAB: "Fichiers" - LASTEDITED: "Dernière mise à jour" - PLURALNAME: "Fichiers" - SINGULARNAME: "Fichier" - TITLE: "Titre" - TYPE: "Type" - UPLOADTAB: "Télécharger" - URL: "URL" - VIEWEDITASSET: "Voir/Editer le fichier" ForgotPasswordEmail.ss: HELLO: "Salut" TEXT1: "Voici votre" @@ -175,13 +157,9 @@ fr: DefaultGroupTitleAdministrators: "Administrateur" DefaultGroupTitleContentAuthors: "Auteurs du contenu" Description: "Description" - IMPORTTABTITLE: "Importer" - IPRestrictions: "Restrictions d'adresse IP" Locked: "Verrouillé?" - PLURALNAME: "Groupes" Parent: "Groupe parent" RolesAddEditLink: "Ajouter/éditer les rôles" - SINGULARNAME: "Groupe" Sort: "Ordre de tri" has_many_Permissions: "Permissions" many_many_Members: "Membres" @@ -196,13 +174,12 @@ fr:

  • Une hiérarchie de groupe peut être créé avec la colonne ParentCode.
  • Les codes de permissions peuvent être assignés grâce à la colonne PermissionCode. Les codes permissions ne sont pas effacés.
  • - ResultCreated: "%d groupes créés" + + ResultCreated: "%d groupes créés" ResultDeleted: "%d groupes supprimés" ResultUpdated: "%d groupes mises à jour" HtmlEditorField: ANCHORVALUE: "Ancre" - BUTTONINSERTFLASH: "Insérer Flash" - BUTTONINSERTIMAGE: "Insérer image" BUTTONINSERTLINK: "Insérer un lien" BUTTONREMOVELINK: "Supprimer le lien" CAPTIONTEXT: "Légende" @@ -213,7 +190,6 @@ fr: CSSCLASSRIGHT: "a droite, avec texte à la ligne." EMAIL: "Adresse email" FILE: "Fichier" - FLASH: "Flash" FOLDER: "Dossier" IMAGE: "Image" IMAGEALTTEXT: "Texte alternatif (alt) - s'affiche si l'image ne peut être affichée." @@ -229,20 +205,11 @@ fr: LINKFILE: "Un fichier à télécharger" LINKINTERNAL: "Une page du site" LINKOPENNEWWIN: "Ouvrir le lien dans une nouvelle fenêtre ?" - LINKTEXT: "Texte du lien" LINKTO: "Lier à" PAGE: "Page" - SEARCHFILENAME: "Recherche par nom de fichier" - SHOWUPLOADFORM: "Fichier téléchargé" URL: "URL" - Image: - PLURALNAME: "Fichiers" - SINGULARNAME: "fichier" ImageField: IMAGE: "Image" - Image_Cached: - PLURALNAME: "Fichiers" - SINGULARNAME: "Fichier" Image_iframe.ss: TITLE: "Fenêtre de chargement d'images" LeftAndMain: @@ -254,13 +221,9 @@ fr: PERMDEFAULT: "Saisissez votre adresse de courriel et votre mot de passe pour accéder au CMS." PLEASESAVE: "Enregistez la page s'il vous plaît : Cette page ne pouvait pas être actualisée, car elle n'a pas encore été enregistrée." SAVED: "enregistré" - LeftAndMain_right.ss: - WELCOMETO: "Bienvenue à" LoginAttempt: Email: "Adresse Email" IP: "Adresse IP" - PLURALNAME: "Tentatives d'authentification" - SINGULARNAME: "Tentative d'authentification" Status: "Statut" Member: ADDRESS: "Adresse" @@ -322,83 +285,42 @@ fr:
  • Les membres existants dont le Code valeur concorde, sont mis à jour avec les nouvelles valeurs du fichier importé.
  • Les groupes peuvent être assignés par la colonne Groups. Les groupes sont identifiés par Code , les groupes multiples sont séparés par une virgule. Les groupes existants ne sont pas effacés.
  • - ResultCreated: "%d membres créés" + + ResultCreated: "%d membres créés" ResultDeleted: "%d membres supprimés" ResultNone: "Aucun changements" ResultUpdated: "%d membres modifiés" - MemberPassword: - PLURALNAME: "Mots de passe du membre" - SINGULARNAME: "mot de passe du membre" - MemberTableField: - ADD: "Ajouter" - ADDEDTOGROUP: "Membre ajouté au groupe" - ADDINGFIELD: "L'ajout a échoué" - DeleteTitleText: "Supprimer de ce groupe" - DeleteTitleTextDatabase: "Supprimer de la base et de tous les groupes" - ERRORADDINGUSER: "Il y a eu une erreur en ajoutant l'utilisateur au groupe : %s" - FILTER: "Filtrer" - SEARCH: "Recherche" ModelAdmin: - ADDBUTTON: "Ajout" - ADDFORM: "Complétez cette forme pour ajouter un %s à la base de données." - CHOOSE_COLUMNS: "Sélectionne les colonnes du résultat " - CLEAR_SEARCH: "Efface la recherche" - CREATEBUTTON: "Crée '%s'" DELETE: "Supprime" DELETEDRECORDS: "%s enregistrements supprimés." - FOUNDRESULTS: "Votre recherche a trouvé %s articles" IMPORT: "Importer de CSV" IMPORTEDRECORDS: "%s enregistrements importés." - ITEMNOTFOUND: "Je ne peux pas trouver cet article" - LOADEDFOREDITING: "'%s' chargé pour edition." NOCSVFILE: "Veuillez choisir un fichier CSV à importer" NOIMPORT: "Rien à importer" - NORESULTS: "Votre recherche n'a abouti à aucun article" - SAVE: "Sauvegarde" - SEARCHRESULTS: "Cherche résultats" - SELECTALL: "Tout sélectionner" - SELECTNONE: "ne rien sélectionner" UPDATEDRECORDS: "%s enregistrements mis à jour." MoneyField: FIELDLABELAMOUNT: "Quantité" FIELDLABELCURRENCY: "Devise" - MyEntity: - MyNamespace: "Valeur par défaut de ma langue naturelle" - MyNamespace: - MYENTITY: "%s éléments comptés" NullableField: IsNullLabel: "Est Null" NumericField: VALIDATION: "'%s' n'est pas un nombre, seul un nombre est autorisé pour cette donnée" - VALIDATIONJS: "ce n'est pas un nombre, seuls les nombres peuvent être acceptés pour ce champ." - Page: - PLURALNAME: "Pages" - SINGULARNAME: "Page" Permission: AdminGroup: "Administrateur" + CMS_ACCESS_CATEGORY: "Accès au CMS" FULLADMINRIGHTS: "Droits d'administration complets" FULLADMINRIGHTS_HELP: "Implique et écrase toute les autres permissions assignées." - PLURALNAME: "Permissions" - SINGULARNAME: "Permission" PermissionCheckboxSetField: AssignedTo: "assigné à \"%s\"" FromGroup: "hérité depuis \"%s\"" FromRole: "hérité du rôle \"%s\"" FromRoleOnGroup: "hérité du rôle \"%s\" du groupe \"%s\"" - PermissionRole: - PLURALNAME: "Rôles" - SINGULARNAME: "Rôle" - PermissionRoleCode: - PLURALNAME: "Codes Règle de Permission " - SINGULARNAME: "Code Règle de Permission " Permissions: PERMISSIONS_CATEGORY: "Rôles et autorisations d’accès" PhoneNumberField: VALIDATION: "Entrer un numéro de téléphone valide" RelationComplexTableField.ss: ADD: "Ajouter" - CSVEXPORT: "Exporte en CSV" - NOTFOUND: "Aucun élément trouvé" ReportAdmin: MENUTITLE: "Rapports" Security: @@ -408,28 +330,21 @@ fr: CHANGEPASSWORDHEADER: "Modifier votre mot de passe" ENTERNEWPASSWORD: "Entrer un nouveau mot de passe s'il vous plaît." ERRORPASSWORDPERMISSION: "Vous devez être connecté pour modifier votre mot de passe !" - IPADDRESSES: "Adresses IP" LOGGEDOUT: "Vous avez été déconnecté. Si vous voulez vous reconnecter, entrer vos détaisl ci-dessous." LOGIN: "Connectez-vous" - LOSTPASSWORDHEADER: "Mot de passe perdu" NOTEPAGESECURED: "Cette page est sécurisée. Entrer vos détails ci-dessous et nous vous enverrons directement." NOTERESETLINKINVALID: "

    Le lien de réinitialisation du mot de passe n'est pas valide ou a expiré.

    Vous pouvez en demander un nouveau ici ou changer votre mot de passe après vous être connecté.

    " NOTERESETPASSWORD: "Entrer votre adresse email et nous vous enverrons un lien pour modifier votre mot de passe" PASSWORDSENTHEADER: "Le lien pour modifier le mot de passe a été envoyé à '%s'" PASSWORDSENTTEXT: "Merci ! Le lien pour modifier le mot de passe a été envoyé à '%s'." SecurityAdmin: - ADDMEMBER: "Ajouter un membre" + ACCESS_HELP: "Permettre la visualisation, l'addition et l'édition des utilisateurs, aussi bien que leur assigner des permissions et des rôles." APPLY_ROLES: "Appliquer des rôles aux groupes" APPLY_ROLES_HELP: "Possibilité d'éditer les rôles assignés à un groupe. Nécessite \"Access to 'Security' section\"." EDITPERMISSIONS: "Gérer les permissions des groupes" EDITPERMISSIONS_HELP: "Possibilité d'éditer les permissions et les l'adresses IP pour un groupe. Nécessite \"Access to 'Security' section\"." GROUPNAME: "Nom du group" - IPADDRESSESHELP: | -

    Vous pouvez restreindre ce groupe à des intervalles d'adresses IP (une classe par ligne).
    Un intervalle peut-être exprimé sous l'une des formes suivantes :
    - 203.96.152.12
    - 203.96.152/24
    - 203.96/16
    - 203/8

    Si vous entrez un ou plusieurs intervalles d'adresses IP dans ce champ, les membres n'auront le droit d'être dans ce groupe que s'il s'identifient à partir de l'une de ces adresses IP valides. Mais n'empêchera pas leur identification. Ils pourront toujours accéder à d'autes parties du système pour lesquelles il n'y a pas de restriction d'adresses IP. MEMBERS: "Membres" + MEMBERS: "Membres" MENUTITLE: "Sécurité" MemberListCaution: "Attention : Enlever des membres de cette liste va les enlever de tous les groupes et de la base de donnée" NEWGROUP: "Nouveau Groupe" @@ -437,10 +352,8 @@ fr: ROLES: "Rôles" ROLESDESCRIPTION: | Cette section vous permet d'ajouter des rôles à ce groupe. Les rôles sont des regroupements logiques d'autorisations, qui peuvent être modifiés dans l'onglet Rôles - SGROUPS: "Groupes de sécurité" - TABIMPORT: "Importer" + TABROLES: "Rôles" - VIEWUSER: "Voir les utilisateurs" SecurityAdmin_MemberImportForm: BtnImport: "Importer" FileFieldLabel: "Fichier CSV (Extension permise: *.csv)" @@ -452,19 +365,14 @@ fr: ISREQUIRED: "Dans %s, '%s' est requis." TableField.ss: ADD: "Ajouter une nouvelle ligne" - ADDITEM: "Ajouter %s" TableListField: CSVEXPORT: "Exporter vers un fichier CSV" PRINT: "Imprimer" SELECT: "Sélectionner:" TableListField.ss: - NOITEMSFOUND: "Aucun élément trouvé" SORTASC: "Classer en ordre croissant" SORTDESC: "Classer en ordre décroissant" TableListField_PageControls.ss: - DISPLAYING: "Affichage" - OF: "de" - TO: "à" VIEWFIRST: "Voir premier" VIEWLAST: "Voir dernier" VIEWNEXT: "Voir suivant" diff --git a/lang/he_IL.yml b/lang/he_IL.yml index 012dec655..39406386f 100644 --- a/lang/he_IL.yml +++ b/lang/he_IL.yml @@ -1,15 +1,24 @@ he_IL: AssetAdmin: - CHOOSEFILE: "בחר קובץ" MENUTITLE: "קבצים ותמונות" NEWFOLDER: "תיקיהחדשה" - AssetAdmin_left.ss: - GO: "סע" + AssetTableField: + CREATED: "הועלה לראשונה" + DIM: "מידות" + FILENAME: "שם הקובץ" + LASTEDIT: "שונה לאחרונה" + OWNER: "בעל הקובץ" + SIZE: "גודל" + TITLE: "כותרת" + TYPE: "סוג" + URL: "כתובת הדף" BasicAuth: ENTERINFO: "נא הכנס שם משתמש וסיסמא" ERRORNOTADMIN: "משתמש זה אינו מנהל" ERRORNOTREC: "שם המשתמש / סיסמא לא מזוהה" CMSMain: + ACCESS: "גישה ל '%s' (%s)" + ACCESSALLINTERFACES: "גישה לכל ממשקי המערכת" MENUTITLE: "תכני האתר" SAVE: "שמור" ChangePasswordEmail.ss: @@ -21,7 +30,6 @@ he_IL: SUCCESSADD: "%s %s %s הוסף" ComplexTableField.ss: ADDITEM: "הוסף" - NOITEMSFOUND: "לא נמצאו פריטים" SORTASC: "סדר בסדר עולה" SORTDESC: "סדר בסדר יורד" ComplexTableField_popup.ss: @@ -56,9 +64,6 @@ he_IL: PLURALNAME: "קבצים" SINGULARNAME: "קובץ" TOOLARGE: "הקובץ גדול מדי, גודל מקסימום להעלאה: %s" - Folder: - PLURALNAME: "קבצים" - SINGULARNAME: "קובץ" ForgotPasswordEmail.ss: HELLO: "היי" Form: @@ -73,14 +78,10 @@ he_IL: Group: Code: "קוד קבוצה" Locked: "נעול?" - PLURALNAME: "קבוצות" Parent: "קבוצת אב" - SINGULARNAME: "קבוצה" has_many_Permissions: "הרשאות" many_many_Members: "חברים רשומים" HtmlEditorField: - BUTTONINSERTFLASH: "הכנס פלאש" - BUTTONINSERTIMAGE: "הכנס תמונה" BUTTONINSERTLINK: "הכנס קישור" BUTTONREMOVELINK: "הסר קישור" CSSCLASS: "יישור/סגנון" @@ -95,9 +96,6 @@ he_IL: IMAGEWIDTHPX: "רוחב" LINKDESCR: "תאור הקישור" LINKOPENNEWWIN: "לפתוח קישור בחלון חדש?" - Image: - PLURALNAME: "קבצים/" - SINGULARNAME: "קובץ" Image_iframe.ss: TITLE: "מסגרת העלאת תמונה" LeftAndMain: @@ -109,8 +107,6 @@ he_IL: PLEASESAVE: "נא לשמור עמוד זה. העמוד לא עודכן מכיוון ולא עודכן." SAVED: "נשמר" LoginAttempt: - PLURALNAME: "נסיונות כניסה למערכת" - SINGULARNAME: "נסיון כניסה למערכת" Member: ADDRESS: "כתובת" BUTTONCHANGEPASSWORD: "שנה סיסמא" @@ -131,8 +127,9 @@ he_IL: GREETING: "ברוך הבא" INTERFACELANG: "שפת ממשק" LOGGEDINAS: | - אתה מחובר כ %s. - MOBILE: "נייד" + אתה מחובר כ %s. + + MOBILE: "נייד" NAME: "שם" NEWPASSWORD: "סיסמא חדשה" PASSWORD: "סיסמא" @@ -145,51 +142,25 @@ he_IL: SURNAME: "שם משפחה" VALIDATIONMEMBEREXISTS: "קיים כבר משתמש עם כתובת דואר זו." WELCOMEBACK: | - ברוך הבא, %s - YOUROLDPASSWORD: "הסיסמא הישנה שלך" + ברוך הבא, %s + + YOUROLDPASSWORD: "הסיסמא הישנה שלך" belongs_many_many_Groups: "קבוצות" db_LockedOutUntil: "נעול עד " db_PasswordExpiry: "תאריך תפוגת סיסמא" MemberAuthenticator: TITLE: "דואר אלקטרוני וסיסמא" - MemberPassword: - PLURALNAME: "סיסמאות" - SINGULARNAME: "סיסמה" - MemberTableField: - ADD: "הוסף" - ADDEDTOGROUP: "חבר הוסף לקבוצה" - ADDINGFIELD: "הוספה נכשלה" - FILTER: "סנן" - SEARCH: "חיפוש" ModelAdmin: - ADDBUTTON: "הוסף" - ADDFORM: "מלא טופס זה והוסף %s לבסיס הנתונים." - CHOOSE_COLUMNS: "בחירת עמודות לתוצאה" - CLEAR_SEARCH: "נקוי חיפוש" - CREATEBUTTON: "צור '%s'" DELETE: "מחק" DELETEDRECORDS: "%s פריטים נמחקו" - FOUNDRESULTS: "נמצאו %s רשומות מתאימות" IMPORT: "ייבא מקובץ CSV" IMPORTEDRECORDS: "%s פריטים יובאו בהצלחה." - ITEMNOTFOUND: "הפריט המבוקש לא נמצא" - LOADEDFOREDITING: "'%s' נטען עבור עריכה." NOCSVFILE: "בחר קובץ CSV לייבוא" NOIMPORT: "לא נמצאו פריטים לייבוא" - NORESULTS: "לא נמצאו רשומות" - SAVE: "שמור" - SEARCHRESULTS: "תוצאות חיפוש" - SELECTALL: "בחר הכל" - SELECTNONE: "נקה בחירה" UPDATEDRECORDS: "%s פריטים עודכנו." NumericField: VALIDATION: "'%s' אינו מספר, רק מספרים מתקבלים עבור שדה זה." - Page: - PLURALNAME: "דפים" - SINGULARNAME: "דף" Permission: - PLURALNAME: "הרשאות" - SINGULARNAME: "הרשאה" PhoneNumberField: VALIDATION: "יש להכניס מספר טלפון תקין" ReportAdmin: @@ -202,14 +173,18 @@ he_IL: ENTERNEWPASSWORD: "נא הכנס סיסמא חדשה." ERRORPASSWORDPERMISSION: "אתה מוכרח להיות מחובר על מנת לשנות את הסיסמא שלך!" LOGGEDOUT: "נותקת . אם ברצונך להתחבר שנית הכנס את הפרטים שלך" - LOSTPASSWORDHEADER: "איבדת סיסמא" NOTEPAGESECURED: "עמוד זה אינו מאובטח. הכנס את הפרטים שלך להלן ונשלח אליך מייד." NOTERESETPASSWORD: "הכנס את כתובת הדואר האלקטרוני שלך ונשלח אליך קישור שבעזרתו תוכל לאפס את הסיסמא שלך" - ADDMEMBER: "הוסף חבר" + PASSWORDSENTHEADER: | + קישור לאיפוס סיסמא נשלח ל '%s' + + PASSWORDSENTTEXT: | + תודה רבה! קישור לאיפוס הסיסמא נשלח ל '%s'. + + SecurityAdmin: EDITPERMISSIONS: "ערוך הרשאות וכתובות IP לכל קבוצה" MENUTITLE: "אבטחה" NEWGROUP: "קבוצה חדשה" - SGROUPS: "קבוצות אבטחה" SimpleImageField: NOUPLOAD: "לא הועלתה תמונה" SiteTree: @@ -217,9 +192,6 @@ he_IL: ISREQUIRED: "ב %s נדרש '%s'" TableField.ss: TableListField_PageControls.ss: - DISPLAYING: "מציג" - OF: "מתוך" - TO: "עד" VIEWFIRST: "הצג ראשון" VIEWLAST: "הצג אחרון" VIEWNEXT: "הצג את הבא" diff --git a/lang/hi_IN.yml b/lang/hi_IN.yml deleted file mode 100644 index 49ed61853..000000000 --- a/lang/hi_IN.yml +++ /dev/null @@ -1,3 +0,0 @@ -hi_IN: - CMSMain: - SAVE: "बचाओ" diff --git a/lang/hr.yml b/lang/hr.yml index d0258eaef..34bb154d7 100644 --- a/lang/hr.yml +++ b/lang/hr.yml @@ -1,15 +1,22 @@ hr: AssetAdmin: - CHOOSEFILE: "Odaberite datoteku" MENUTITLE: "Datoteke i Slike" NEWFOLDER: "Novi direktorij" - AssetAdmin_left.ss: - GO: "Idi" + AssetTableField: + CREATED: "Uploadano" + DIM: "Dimenzije" + FILENAME: "Ime datoteke" + LASTEDIT: "Zadnja promjena" + OWNER: "Vlasnik" + SIZE: "Veličina" + TITLE: "Naslov" + TYPE: "Tip" BasicAuth: ENTERINFO: "Unesite korisničko ime i lozinu" ERRORNOTADMIN: "Korisnik nije administrator" ERRORNOTREC: "Korisničko ime / lozinka nije prepoznata" CMSMain: + ACCESS: "Pristup u '%s' (%s)" MENUTITLE: "Sadržaj stranice" SAVE: "Snimi" ChangePasswordEmail.ss: @@ -18,7 +25,6 @@ hr: HELLO: "Pozdrav" ComplexTableField.ss: ADDITEM: "Dodaj" - NOITEMSFOUND: "Ništa nije pronađeno" SORTASC: "Sortiraj (ascending)" SORTDESC: "Sortiraj (descending)" ComplexTableField_popup.ss: @@ -53,9 +59,6 @@ hr: PLURALNAME: "Datoteke" SINGULARNAME: "Datoteka" TOOLARGE: "Prevelika datoteka, dozvoljeni maksimum je %s." - Folder: - PLURALNAME: "Datoteke" - SINGULARNAME: "Datoteka" ForgotPasswordEmail.ss: HELLO: "Pozdrav" TEXT1: "Ovdje je vaš" @@ -73,14 +76,10 @@ hr: Group: Code: "Krupni kod" Locked: "Zaključano?" - PLURALNAME: "Grupe" Parent: "Roditeljska grupa" - SINGULARNAME: "Grupa" has_many_Permissions: "Dozvole" many_many_Members: "Članovi" HtmlEditorField: - BUTTONINSERTFLASH: "Umetni Flash" - BUTTONINSERTIMAGE: "Umetni sliku" BUTTONINSERTLINK: "Ubaci vezu" BUTTONREMOVELINK: "Obriši vezu" CSSCLASS: "Poravnanje / Stil" @@ -89,7 +88,6 @@ hr: CSSCLASSRIGHT: "Desno, sa okruženjem teksta" EMAIL: "Email adresa" FILE: "Datoteka" - FLASH: "Ubaci flash" FOLDER: "Direktorij" IMAGE: "Ubaci sliku" IMAGEDIMENSIONS: "Dimenzije" @@ -105,9 +103,6 @@ hr: LINKTO: "Poveži na" PAGE: "Stranica" URL: "URL" - Image: - PLURALNAME: "Datoteke" - SINGULARNAME: "Datoteka" Image_iframe.ss: TITLE: "Iframe za upload slike" LeftAndMain: @@ -119,8 +114,6 @@ hr: PLEASESAVE: "Molim spremite stranicu: Nemože biti ažurirano dok nije spremljeno." SAVED: "spremljeno" LoginAttempt: - PLURALNAME: "Pokušaji prijave" - SINGULARNAME: "Pokušaj prijave" Member: ADDRESS: "Adresa" BUTTONCHANGEPASSWORD: "Promjeni lozinku" @@ -160,27 +153,13 @@ hr: db_PasswordExpiry: "Lozinka ističe" MemberAuthenticator: TITLE: "E-mail & Lozinka" - MemberPassword: - PLURALNAME: "Korisnička lozinke" - SINGULARNAME: "Korisnička lozinka" - MemberTableField: - ADD: "Dodaj" - ADDEDTOGROUP: "Dodaj člana u grupu" - ModelAdmin: - CREATEBUTTON: "Kreiraj '%s'" NumericField: VALIDATION: "'%s' nije broj, prihvaćaju se samo brojevi" - Page: - PLURALNAME: "Stranice" - SINGULARNAME: "Stranica" Permission: - PLURALNAME: "Dozvole" - SINGULARNAME: "Dozvola" PhoneNumberField: VALIDATION: "Molim unesite ispravan telefonski broj" RelationComplexTableField.ss: ADD: "Dodaj" - NOTFOUND: "Nije pronađeno" ReportAdmin: MENUTITLE: "Izvještaji" Security: @@ -190,27 +169,15 @@ hr: CHANGEPASSWORDHEADER: "Promjeni lozinku" ENTERNEWPASSWORD: "Upišite novu lozinku" ERRORPASSWORDPERMISSION: "Morate biti prijavljeni kako bi ste promjenili lozinku" - IPADDRESSES: "IP adresa" LOGGEDOUT: "Odlogirani ste. Želite li se ponovno logirati, upišite podatke" LOGIN: "Logiraj se" - LOSTPASSWORDHEADER: "Izgubljena lozinka" NOTEPAGESECURED: "Stranica je osigurana. Upišite svoje podatke i poslat ćemo Vam." NOTERESETPASSWORD: "Upišite vaš e-mail i polati ćemo Vam link na kojem možete dobiti novu lozinku" PASSWORDSENTHEADER: "Link je poslan na '%s'" PASSWORDSENTTEXT: "Hvala Vam! Link na reset lozinke je poslan na '%s'." SecurityAdmin: - ADDMEMBER: "Dodaj člana" - IPADDRESSESHELP: | -

    Možete ograničiti ovu grupu na određen raspon IP adresa. Unesite 1 raspon po retku. Rasponi IP adresa mogu biti u bilo kojem od ovih 4 formi:
    - 203.96.152.12
    - 203.96.152/24
    - 203.96/16
    - 203/8
    -
    - Ukoliko unesete jednu ili više IP adresa u ovaj box, tada će članovi imati pravo pristupiti grupi ukoliko se logiraju sa neke od dozvoljenih IIP adresa. To neće spriječiti da se ljudi logiraju. To je zato da se koristnik može logirati u dijelove sustava na koje se ne odnosi restrikcija u IP adresama.

    MENUTITLE: "Sigurnost" + MENUTITLE: "Sigurnost" NEWGROUP: "Nova Grupa" - SGROUPS: "Sigurnosne grupe" - VIEWUSER: "Pogledaj korisnika" SimpleImageField: NOUPLOAD: "Nema uploadanih slika" SiteTree: @@ -220,9 +187,6 @@ hr: TableField.ss: ADD: "Dodaj novi redak" TableListField_PageControls.ss: - DISPLAYING: "Prikazujem" - OF: "od" - TO: "do" VIEWFIRST: "Pogledaj prvi" VIEWLAST: "Pogledaj zadnji" VIEWNEXT: "Pogledaj slijedeći" diff --git a/lang/hu.yml b/lang/hu.yml index 5eae99114..7c52c4140 100644 --- a/lang/hu.yml +++ b/lang/hu.yml @@ -1,15 +1,24 @@ hu: AssetAdmin: - CHOOSEFILE: "Válassz fájlt" MENUTITLE: "Fájlok és Képek" NEWFOLDER: "Új mappa" - AssetAdmin_left.ss: - GO: "Mehet" + AssetTableField: + CREATED: "Először feltöltve" + DIM: "Képméret" + FILENAME: "Fájlnév" + LASTEDIT: "Utoljára változott" + OWNER: "Tulajdonos" + SIZE: "Méret" + TITLE: "Cím" + TYPE: "Típus" + URL: "URL" BasicAuth: ENTERINFO: "Kérünk, ajd meg egy felhasználónevet és jelszót." ERRORNOTADMIN: "Ez a felhasználó nem adminisztrátor. " ERRORNOTREC: "Ez a felhasználónév / jelszó nem létezik" CMSMain: + ACCESS: "'%s' elérése (%s)" + ACCESSALLINTERFACES: "Elérés minden CMS interfészhez" MENUTITLE: "Honlaptartalom" SAVE: "Mentés" ChangePasswordEmail.ss: @@ -21,7 +30,6 @@ hu: SUCCESSADD: "%s %s %s hozzáadva" ComplexTableField.ss: ADDITEM: "Hozzáadás:" - NOITEMSFOUND: "Nem található elem" SORTASC: "Rendezés növekvő sorrendben" SORTDESC: "Rendezés csökkenő sorrendben" ComplexTableField_popup.ss: @@ -58,9 +66,6 @@ hu: PLURALNAME: "Fájlok" SINGULARNAME: "Fájl" TOOLARGE: "Fájlméret túl nagy, max megengedett %s." - Folder: - PLURALNAME: "Fájlok" - SINGULARNAME: "Fájl" ForgotPasswordEmail.ss: HELLO: "Szia" Form: @@ -74,14 +79,10 @@ hu: VALIDCURRENCY: "Kérünk, ajd meg egy létező valutát." Group: Code: "Csoport Kód" - PLURALNAME: "Csoportok" Parent: "Szülő csoport" - SINGULARNAME: "Csoport" has_many_Permissions: "Jogosultságok" many_many_Members: "Tagok" HtmlEditorField: - BUTTONINSERTFLASH: "Flash beszúrása" - BUTTONINSERTIMAGE: "Kép beszúrása" BUTTONINSERTLINK: "Link beszúrása" BUTTONREMOVELINK: "Link eltávolítása" CSSCLASS: "Elhelyezkedés / stílus" @@ -90,7 +91,6 @@ hu: CSSCLASSRIGHT: "Jobb oldalon, szöveg körbefuttatásával. " EMAIL: "E-mail cím" FILE: "Fájl" - FLASH: "Flash animáció beszúrása" FOLDER: "Mappa" IMAGE: "Kép beszúrása" IMAGEDIMENSIONS: "Képméret" @@ -106,9 +106,6 @@ hu: LINKTO: "Linkelés ide:" PAGE: "Oldal" URL: "URL" - Image: - PLURALNAME: "Fájlok" - SINGULARNAME: "Fájl" Image_iframe.ss: TITLE: "Képfeltöltő iframe" LeftAndMain: @@ -120,8 +117,6 @@ hu: PLEASESAVE: "Kérjük, mentsd el az oldalt: az oldalt nem lehetett frissíteni, mivel még nem került elmentésre." SAVED: "Elmentve." LoginAttempt: - PLURALNAME: "Belépési próbálkozások" - SINGULARNAME: "Belépési próbálkozás" Member: ADDRESS: "Cím" BUTTONCHANGEPASSWORD: "Jelszó megváltoztatása" @@ -161,41 +156,17 @@ hu: db_PasswordExpiry: "Jelszó érvényességi idejének lejárta" MemberAuthenticator: TITLE: "E-mail és jelszó" - MemberTableField: - ADD: "Hozzáadás" - ADDEDTOGROUP: "Tag hozzáadásra került a csoporthoz." - ADDINGFIELD: "Hozzáadás meghiúsult" - FILTER: "Szűrés" - SEARCH: "Keresés" ModelAdmin: - ADDBUTTON: "Hozzáadás" - ADDFORM: "Töltsd ki az űrlapot egy %s hozzáadásához." - CHOOSE_COLUMNS: "Eredményoszlopok kiválasztása" - CLEAR_SEARCH: "Keresés törlése" - CREATEBUTTON: "'%s' létrehozása" DELETE: "Törlés" DELETEDRECORDS: "%s sor törölve." - FOUNDRESULTS: "A keresés %s megfelelő elemet talált" IMPORT: "Betöltés CSV-ből" IMPORTEDRECORDS: "%s sor betöltve." - ITEMNOTFOUND: "Nem találom az elemet." - LOADEDFOREDITING: "'%s' betöltése szerkesztésre." NOCSVFILE: "Kérünk, válaszd ki a betöltendő CSV fájlt" NOIMPORT: "Nincs mit betölteni" - NORESULTS: "Nincs találat" - SAVE: "Mentés" - SEARCHRESULTS: "Keresési eredmények" - SELECTALL: "mind kiválasztása" - SELECTNONE: "kiválasztás törlése" UPDATEDRECORDS: "%s sor frissítve." NumericField: VALIDATION: "A „%s” nem szám, ebbe a mezőbe csak számok írhatók" - Page: - PLURALNAME: "Oldalak" - SINGULARNAME: "Oldal" Permission: - PLURALNAME: "Jogosultságok" - SINGULARNAME: "Jogosultság" PhoneNumberField: VALIDATION: "Kérünk, adj meg egy valós telefonszámot." ReportAdmin: @@ -208,17 +179,14 @@ hu: ENTERNEWPASSWORD: "Kérünk, add meg az új jelszavad." ERRORPASSWORDPERMISSION: "Hogy meg tudd változtatni a jelszavad, bejelentkezve kell lenned." LOGGEDOUT: "Kiléptetésre kerültél. Ha újra be szeretnél jelentkezni, add meg alább az azonosítási adataid." - LOSTPASSWORDHEADER: "Elfelejtett jelszó" NOTEPAGESECURED: "Ez az oldal védett. Add meg alább az azonosítási adataidat, és továbbirányítunk." NOTERESETPASSWORD: "Add meg az e-mail címed, és küldünk egy linket, mellyel új jelszót kérhetsz." PASSWORDSENTHEADER: "Az új jelszót kérő link elküldésre került a „%s” címre." PASSWORDSENTTEXT: "Köszönjük! Az új jelszót kérő link elküldésre került a „%s” címre." SecurityAdmin: - ADDMEMBER: "Tag hozzáadása" EDITPERMISSIONS: "Jogosultságok és IP címek szerkesztése minden csoportban" MENUTITLE: "Biztonság" NEWGROUP: "Új csoport" - SGROUPS: "Biztonsági csoportok" SimpleImageField: NOUPLOAD: "Nincs feltöltött kép" SiteTree: @@ -227,7 +195,6 @@ hu: ISREQUIRED: "A %s-ben „%s” szükséges. " TableField.ss: TableListField_PageControls.ss: - DISPLAYING: "Bemutatás" VIEWFIRST: "Első mutatása" VIEWLAST: "Utolsó mutatása" VIEWNEXT: "Következő mutatása" diff --git a/lang/hy_AM.yml b/lang/hy_AM.yml index 053d4b1b1..2b9cbea75 100644 --- a/lang/hy_AM.yml +++ b/lang/hy_AM.yml @@ -3,12 +3,9 @@ hy_AM: MENUTITLE: "Նշոցներ և Պատկերներ" CMSMain: MENUTITLE: "Կայքի Պարունակություն" - ConfirmedPasswordField: - SHOWONCLICKTITLE: "Փոխել Գաղտնաբառ" LeftAndMain: HELP: "Օգնություն" ReportAdmin: MENUTITLE: "Զեկույցներ" SecurityAdmin: MENUTITLE: "Անվտանգություն" - SiteTree: diff --git a/lang/id.yml b/lang/id.yml index eb6cb7314..7ade6d41e 100644 --- a/lang/id.yml +++ b/lang/id.yml @@ -1,10 +1,5 @@ id: AssetAdmin: - CHOOSEFILE: "Pilih file" - MENUTITLE: "File-file & Gambar-gambar" - NEWFOLDER: "FolderBaru" - AssetAdmin_left.ss: - GO: "Maju" BBCodeParser: ALIGNEMENT: "Penjajaran barisan" ALIGNEMENTEXAMPLE: "jajar kanan" @@ -35,7 +30,6 @@ id: ERRORNOTADMIN: "User tersebut bukan administrator." ERRORNOTREC: "Username/password tidak dikenali" CMSMain: - MENUTITLE: "Isi Situs" SAVE: "Simpan" ChangePasswordEmail.ss: CHANGEPASSWORDTEXT1: "Anda merubah password anda untuk" @@ -43,12 +37,11 @@ id: EMAIL: "Email" HELLO: "Hai" ComplexTableField: - CLOSEPOPUP: "Tutup Popup" + CLOSEPOPUP: "Tutup popup" SUCCESSADD: "Telah menambah %s %s %s" SUCCESSEDIT: "Telah menyimpan %s %s %s" ComplexTableField.ss: ADDITEM: "Tambahkan %s" - NOITEMSFOUND: "Tidak ada item yang ditemukan" SORTASC: "Urut ascending" SORTDESC: "Urut descending" ComplexTableField_popup.ss: @@ -57,21 +50,15 @@ id: ConfirmedPasswordField: ATLEAST: "Kata sandi harus sedikitnya %s karakter panjangnya." BETWEEN: "Panjang kata sandi harus %s sampai %s karakter panjangnya." - HAVETOMATCH: "Kata sandi harus sama." - LEASTONE: "Kata sandi harus sedikitnya mempunyai satu karakter digit dan satu karakter alphanumeric." MAXIMUM: "Kata sandi harus maksimal %s karakter panjangnya." - NOEMPTY: "Kata sandi tidak boleh kosong." SHOWONCLICKTITLE: "Ganti Kata Sandi" CreditCardField: FIRST: "pertama" FOURTH: "keempat" SECOND: "kedua" THIRD: "ketiga" - VALIDATIONJS1: "Mohon pastikan anda telah memasukkan" - VALIDATIONJS2: "nomer kartu kredit anda dengan benar." CurrencyField: CURRENCYSYMBOL: "$" - VALIDATIONJS: "Mohon masukkan mata uang yang sah." DataObject: PLURALNAME: "Objek-objek Data" SINGULARNAME: "Objek Data" @@ -92,12 +79,10 @@ id: DateField: NOTSET: "tidak diset" TODAY: "hari ini" - VALIDATIONJS: "Mohon masukkan format tanggal yabg sah (TT/BB/TTTT)." DropdownField: CHOOSE: "(Pilih)" EmailField: VALIDATION: "Harap masukkan alamat email." - VALIDATIONJS: "Mohon masukkan alamat email." File: Content: "Isi" Filename: "Nama File" @@ -106,23 +91,8 @@ id: Name: "Nama" PLURALNAME: "File-file" SINGULARNAME: "File" - Sort: "Urutan Sortir" TOOLARGE: "Ukuran File terlalu besar, maksimum %s diperbolehkan." Title: "Judul" - Folder: - CREATED: "Uploaded Pertama Kali" - DELSELECTED: "Hapus file-file yang telah dipilih" - DETAILSTAB: "Perincian" - FILENAME: "Nama file" - FILESTAB: "File-file" - LASTEDITED: "Terakhir Kali Diperbaharui" - PLURALNAME: "File-file" - SINGULARNAME: "File" - TITLE: "Judul" - TYPE: "Tipe" - UPLOADTAB: "Upload" - URL: "URL" - VIEWEDITASSET: "Tampilkan/Edit Aset" ForgotPasswordEmail.ss: HELLO: "Hai" TEXT1: "Inilah" @@ -145,18 +115,13 @@ id: DefaultGroupTitleAdministrators: "Pengurus" DefaultGroupTitleContentAuthors: "Pencipta isi" Description: "Deskripsi" - IPRestrictions: "Restriksi alamat IP" Locked: "Terkunci?" - PLURALNAME: "Grup-grup" Parent: "Grup induk" - SINGULARNAME: "Grup" Sort: "Urutan Sortir" has_many_Permissions: "Ijin" many_many_Members: "Anggota-anggota" HtmlEditorField: ANCHORVALUE: "Anchor" - BUTTONINSERTFLASH: "Beri Flash" - BUTTONINSERTIMAGE: "Beri gambar" BUTTONINSERTLINK: "Beri link" BUTTONREMOVELINK: "Pindahkan link" CSSCLASS: "Aligmen/gaya" @@ -166,7 +131,6 @@ id: CSSCLASSRIGHT: "Pada sebelah kanan, dengan teks disekitarnya" EMAIL: "Alamat email" FILE: "File" - FLASH: "Beri flash" FOLDER: "Folder" IMAGE: "Beri gambar" IMAGEDIMENSIONS: "Dimensi" @@ -182,29 +146,12 @@ id: LINKOPENNEWWIN: "Buka link pada jendela baru?" LINKTO: "Link ke" PAGE: "Halaman" - SEARCHFILENAME: "Cari berdasarkan nama file" - SHOWUPLOADFORM: "Upload arsip" URL: "URL" - Image: - PLURALNAME: "File-file" - SINGULARNAME: "File" Image_iframe.ss: TITLE: "Iframe Meng-upload Gambar" - LeftAndMain: - HELP: "Bantuan" - PAGETYPE: "Tipe halaman:" - PERMAGAIN: "Anda sudah keluar dari CMS. Jika Anda ingin ingin masuk lagi, masukkan username dan password di bawah ini." - PERMALREADY: "Mohon maaf, Anda tidak dapat memasuki bagian CMS tersebut. Jika anda ingin masuk sebagai orang lain, lakukan di bawah ini" - PERMDEFAULT: "Masukkan alamat email dan kata sandi untuk mengakses CMS." - PLEASESAVE: "Mohon Simpan Halaman : Halaman ini tidak dapat di-update karena belum disimpan." - SAVED: "tersimpan" - LeftAndMain_right.ss: - WELCOMETO: "Selamat datang di" LoginAttempt: Email: "Alamat Email" IP: "Alamat IP" - PLURALNAME: "Login yang telah dicoba" - SINGULARNAME: "Login yang telah dicoba" Status: "Status" Member: ADDRESS: "Alamat" @@ -251,58 +198,18 @@ id: db_PasswordExpiry: "Tanggal Kata Sandi Berakhir" MemberAuthenticator: TITLE: "E-mail & Password" - MemberPassword: - PLURALNAME: "Kata-kata Sandi Anggota" - SINGULARNAME: "Kata Sandi Anggota" - MemberTableField: - ADD: "Tambah" - ADDEDTOGROUP: "Member yang telah ditambahkan ke dalam grup" - ADDINGFIELD: "Penambahan gagal" - FILTER: "Filter" - SEARCH: "Cari" - ModelAdmin: - ADDBUTTON: "Tambah" - ADDFORM: "Isi formulir ini untuk menambahkan %s ke database." - CHOOSE_COLUMNS: "Pilih kolum-kolum hasil..." - CLEAR_SEARCH: "Hapus Pencarian" - CREATEBUTTON: "Buat '%s'" - DELETE: "Hapus" - DELETEDRECORDS: "Telah menghapus %s catatan." - FOUNDRESULTS: "Pencarian anda menemukan %s hasil yang cocok" - IMPORT: "Impor dari CSV" - IMPORTEDRECORDS: "Telah mengimpor %s %s." - ITEMNOTFOUND: "Saya tidak bisa menemukan barang tersebut" - LOADEDFOREDITING: "'%s' telah diload untuk diedit." - NOCSVFILE: "Mohon pilih sebuah file CSV untuk diimpor" - NOIMPORT: "Tidak ada yang bisa diimpor" - NORESULTS: "Tidak ada hasil" - SAVE: "Simpan" - SEARCHRESULTS: "Hasil Pencarian" - SELECTALL: "pilih semua" - SELECTNONE: "tidak pilih" - UPDATEDRECORDS: "Telah membaharui %s catatan." MoneyField: FIELDLABELAMOUNT: "Jumlah" FIELDLABELCURRENCY: "Mata Uang" NumericField: VALIDATION: "'%s' bukan angka, hanya angka yang dapat diterima untuk field ini" - VALIDATIONJS: "bukanlah sebuah angka, hanya angka yang bisa diterima di field ini " - Page: - PLURALNAME: "Halaman-halaman" - SINGULARNAME: "Halaman" Permission: AdminGroup: "Pengurus" FULLADMINRIGHTS: "Hak-hak administratif yang penuh" - PLURALNAME: "Ijin-ijin" - SINGULARNAME: "Ijin" PhoneNumberField: VALIDATION: "Harap masukkan nomor telepon yang valid" RelationComplexTableField.ss: ADD: "Tambah" - CSVEXPORT: "Ekspor ke CSV" - NOTFOUND: "Tidak ada barang yang diketemukan" - ReportAdmin: - MENUTITLE: "Laporan-laporan" Security: ALREADYLOGGEDIN: "Anda tidak memiliki akses ke halaman ini. Jika anda memiliki keanggotaan yang dapat mengakses halaman ini, anda dapat masuk di bawah ini." BUTTONSEND: "Kirimi saya link untuk mengeset ulang password " @@ -310,28 +217,16 @@ id: CHANGEPASSWORDHEADER: "Ubah password anda" ENTERNEWPASSWORD: "Harap masukkan password anda yang baru" ERRORPASSWORDPERMISSION: "Anda harus masuk terlebih dahulu untuk merubah password Anda!" - IPADDRESSES: "Alamat-alamat IP" LOGGEDOUT: "Anda telah keluar. Jika Anda ingin masuk lagi, masukkan surat kepercayaan Anda di bawah ini." LOGIN: "Log in" - LOSTPASSWORDHEADER: "Password yang Hilang" NOTEPAGESECURED: "Halaman ini diamankan. Masukkan surat kepercayaan Anda di bawah ini dan kami akan mengirim Anda ke jalur yang benar." NOTERESETPASSWORD: "Masukkan alamat e-mail anda dan kami akan mengirimi anda link yang dapat anda gunakan untuk mengeset ulang password " PASSWORDSENTHEADER: "link untuk mengeset ulang password dikirim ke '%s'" PASSWORDSENTTEXT: "Terima kasih! Link untuk mengeset ulang password telah dikirim ke '%s'." SecurityAdmin: - ADDMEMBER: "Tambah Member" - EDITPERMISSIONS: "Edit ijin-ijin dan alamat-alamat IP setiap grup" GROUPNAME: "Nama grup" - IPADDRESSESHELP: | -

    Anda bisa merestriksi grup ini ke dalam lingkup alamat IP secara khusus (satu lingkup per baris).
    Lingkup-lingkup dapat dimasukkan dalam bentuk-bentuk sebagai berikut:
    - 203.96.152/24
    - 203.96/16
    - 203/8

    Jika anda masukkan satu lingkup alamat IP atau lebih ke dalam kotak ini, anggota-anggota hanya akan mempunyai hak-hak dalam grup ini jika mereka log on dari salah satu alamat-alamat IP yang disahkan. Ini tidak akan mencegah orang untuk log in. Hal ini dibiarkan karena pengguna yang sama mungkin harus log in untuk mengakses bagian-bagian dari sistem tanpa restriksi alamat IP. MEMBERS: "Anggota-anggota" - MENUTITLE: "Keamanan" - NEWGROUP: "Grup Baru" + MEMBERS: "Anggota-anggota" PERMISSIONS: "Ijin-ijin" - SGROUPS: "Grup keamanan" - VIEWUSER: "Tampilkan Pengguna" SimpleImageField: NOUPLOAD: "Tidak Ada Gambar yang Di-upload" SiteTree: @@ -345,13 +240,10 @@ id: PRINT: "Cetak" SELECT: "Pilih:" TableListField_PageControls.ss: - DISPLAYING: "Menampilkan" - OF: "dari" - TO: "ke" - VIEWFIRST: "Simak pertama" - VIEWLAST: "Simak terakhir" - VIEWNEXT: "Simak berikutnya" - VIEWPREVIOUS: "Simak sebelumnya" + VIEWFIRST: "Tampil pertama" + VIEWLAST: "Tampil terakhir" + VIEWNEXT: "Tampil berikutnya" + VIEWPREVIOUS: "Tampil sebelumnya" ToggleCompositeField.ss: HIDE: "Sembunyikan" SHOW: "Perlihatkan" diff --git a/lang/is.yml b/lang/is.yml index 35e558229..10315dbed 100644 --- a/lang/is.yml +++ b/lang/is.yml @@ -1,10 +1,5 @@ is: AssetAdmin: - CHOOSEFILE: "Veldu skrá" - MENUTITLE: "Skrár og myndir" - NEWFOLDER: "Ný Mappa" - AssetAdmin_left.ss: - GO: "Framkvæma" BBCodeParser: ALIGNEMENT: "Textastilling" ALIGNEMENTEXAMPLE: "hægri jafnað" @@ -37,7 +32,6 @@ is: NO: "Nei" YES: "Já" CMSMain: - MENUTITLE: "Efni síðu" SAVE: "Vista" ChangePasswordEmail.ss: CHANGEPASSWORDTEXT1: "Þú breyttir þínu lykilorði vegna" @@ -50,11 +44,10 @@ is: YES: "Já" ComplexTableField: CLOSEPOPUP: "Loka glugga" - SUCCESSADD: "Bætti við %s %s %s" + SUCCESSADD: "Bætt við %s %s %s" SUCCESSEDIT: "Vitað %s %s %s" ComplexTableField.ss: ADDITEM: "Bæta við %s." - NOITEMSFOUND: "Engir hlutir fundust" SORTASC: "Raða í hækkandi röð" SORTDESC: "Raða í lækkandi röð" ComplexTableField_popup.ss: @@ -63,21 +56,15 @@ is: ConfirmedPasswordField: ATLEAST: "Lykilorðin verða að vera að minstakosti %s stafa löng." BETWEEN: "Lykilorðin verða að vera %s til %s stafa löng." - HAVETOMATCH: "Lykilorðin verða að stemma" - LEASTONE: "Lykilorðin verða að innihalda að minsta kosti einn tölustaf og eitt tákn." MAXIMUM: "Lykilorðin mega ekki vera lengri en %s stafa löng." - NOEMPTY: "Lykilorð má ekki vera tómt" SHOWONCLICKTITLE: "Breyta lykliorði" CreditCardField: FIRST: "fyrsta" FOURTH: "fjórða" SECOND: "annað" THIRD: "þriðja" - VALIDATIONJS1: "Vinasamlegast vertu viss um að þú hafir slegið inn" - VALIDATIONJS2: "kredit korta númer rétt" CurrencyField: CURRENCYSYMBOL: "kr" - VALIDATIONJS: "Vinsamlegast sláðu inn löglegan gjaldmiðil." DataObject: PLURALNAME: "Gagna hlutir" SINGULARNAME: "Gagna hlutir" @@ -98,12 +85,10 @@ is: DateField: NOTSET: "ekki valið" TODAY: "í dag" - VALIDATIONJS: "Vinsamlegast sláðu inn gilt dagssetningar snið (DD.MM.ÁÁÁÁ)." DropdownField: CHOOSE: "(Veldu)" EmailField: VALIDATION: "Vinsamlegast sláðu inn tölvupóstfang" - VALIDATIONJS: "Vinasamlegast sláðu inn tölvupóstfang." Enum: ANY: "Einhver" File: @@ -115,7 +100,6 @@ is: Name: "Nafn" PLURALNAME: "Skrár" SINGULARNAME: "Skrá" - Sort: "Röðun" TOOLARGE: "Skráin er of stór, hámark %s er leyfilegt" Title: "Titill" FileIFrameField: @@ -123,20 +107,6 @@ is: FILE: "Skrá" FROMCOMPUTER: "Frá tölvunni þinni" FROMFILESTORE: "Frá skrárgeymslu" - Folder: - CREATED: "First sótt" - DELSELECTED: "Eyða völdum skrám" - DETAILSTAB: "Upplýsingar" - FILENAME: "Skráarnafn" - FILESTAB: "Skrár" - LASTEDITED: "Síðast uppfært" - PLURALNAME: "Skrár" - SINGULARNAME: "Skrá" - TITLE: "Titill" - TYPE: "Tegund" - UPLOADTAB: "Sækja" - URL: "Veffang (URL)" - VIEWEDITASSET: "Skoða/breyta eignum" ForgotPasswordEmail.ss: HELLO: "Hæ" TEXT1: "Hérna er þitt" @@ -157,22 +127,13 @@ is: Group: Code: "Hóp kóði" Description: "Lýsing" - IPRestrictions: "IP tölu takmörkun" Locked: "Læst?" - PLURALNAME: "Hópar" Parent: "Yfir hópur" - RolesAddEditLink: "Bæta við/breyta hlutverkum" - SINGULARNAME: "Hópur" Sort: "Röðun" has_many_Permissions: "Leyfi" many_many_Members: "Félagar" - GroupImportForm: - ResultDeleted: "Eyddi %d hópum" - ResultUpdated: "Uppfærði %d hópa" HtmlEditorField: ANCHORVALUE: "Markstikla" - BUTTONINSERTFLASH: "Setja inn Flash" - BUTTONINSERTIMAGE: "Setja inn mynd" BUTTONINSERTLINK: "Bæta við hlekk" BUTTONREMOVELINK: "Fjarlægja hlekk" CSSCLASS: "Textastilling / stíll" @@ -182,7 +143,6 @@ is: CSSCLASSRIGHT: "Til hægri, með textann umhverfis" EMAIL: "Tölvupóstfang" FILE: "Skrá" - FLASH: "Flash" FOLDER: "Mappa" IMAGE: "Mynd" IMAGEDIMENSIONS: "Stærð" @@ -196,34 +156,14 @@ is: LINKFILE: "Hlaða niður skrá" LINKINTERNAL: "Síða innan heimasíðunnar" LINKOPENNEWWIN: "Opna hlekk í nýjum glugga?" - LINKTEXT: "Texti á hlekk" LINKTO: "Hlekkur í" PAGE: "Síða" - SEARCHFILENAME: "Leita eftir nafni skráar" URL: "Veffang (URL)" - Image: - PLURALNAME: "Skrár" - SINGULARNAME: "Skrá" ImageField: IMAGE: "Mynd" - Image_Cached: - PLURALNAME: "Skrár" - SINGULARNAME: "Skrá" - LeftAndMain: - HELP: "Hjálp" - PAGETYPE: "Tegund síðu:" - PERMAGAIN: "Þú hefur verið út skráður úr kerfinu. Ef þú vilt innskrá þig aftur, sláðu þá inn notendanafn og lykilorð" - PERMALREADY: "Þú hefur ekki aðgang að þessum hluta kerfisins. Ef þú vilt innskrá þig sem einhver annar, gerðu það þá hér fyrir neðan" - PERMDEFAULT: "Sláðu inn tölvupóstfang og lykilorð til að fá aðgang að kerfinu" - PLEASESAVE: "Vinsamlegast vistaðu síðuna: Það er ekki hægt að uppfæra þessa síðu því hún hefur ekki verið vistuð." - SAVED: "vistað" - LeftAndMain_right.ss: - WELCOMETO: "Velkominn til" LoginAttempt: Email: "Tölvupóstfang" IP: "IP tala" - PLURALNAME: "Innskrá tilraunir" - SINGULARNAME: "Innskrá tilraunir" Status: "Staða" Member: ADDRESS: "Heimilisfang" @@ -270,40 +210,6 @@ is: db_PasswordExpiry: "Lykilorð rennur út" MemberAuthenticator: TITLE: "Tölvupóstur & Lykilorð" - MemberImportForm: - ResultNone: "Engar breytingar" - MemberPassword: - PLURALNAME: "Lykilorð félaga" - SINGULARNAME: "Lykilorð félaga" - MemberTableField: - ADD: "Bæta við" - ADDEDTOGROUP: "Bæta félaga í hóp" - ADDINGFIELD: "Það mistókst að bæta við" - DeleteTitleText: "Eyða úr þessum hóp" - DeleteTitleTextDatabase: "Eyða úr gagnagrunni og gúppum" - FILTER: "Sía" - SEARCH: "Leita" - ModelAdmin: - ADDBUTTON: "Bæta við" - ADDFORM: "Fylltu út þetta form til að bæta %s við gagnagrunninn" - CHOOSE_COLUMNS: "Veldu niðurstöðu dálka..." - CLEAR_SEARCH: "Hreinsa leit" - CREATEBUTTON: "Búa til '%s'" - DELETE: "Eyða" - DELETEDRECORDS: "Eyddi %s færslur" - FOUNDRESULTS: "Leitin þín skilaði %s samsvarandi hlutum" - IMPORT: "Flytja inn frá CSV" - IMPORTEDRECORDS: "Flutti inn %s færlsur." - ITEMNOTFOUND: "Ég get ekki fundið þennan atriði " - LOADEDFOREDITING: "Sótti '%s' til breytingar" - NOCSVFILE: "Vinasamlegast finndu CSV skrá til að flytja inn" - NOIMPORT: "Það er ekkert til að flytja inn" - NORESULTS: "Leitin þín skilaðu engum niðurstöðum" - SAVE: "Vista" - SEARCHRESULTS: "Leitarniðurstöður" - SELECTALL: "velja allt" - SELECTNONE: "velja ekkert" - UPDATEDRECORDS: "Uppfærði %s færslur" MoneyField: FIELDLABELAMOUNT: "Reikningur" FIELDLABELCURRENCY: "Gjaldmiðill" @@ -311,22 +217,12 @@ is: IsNullLabel: "Er Null" NumericField: VALIDATION: "'%s' er ekki tölustafur, aðeins tölustafir eru leyfðir í þessu svæði" - VALIDATIONJS: "er ekki tölur, aðeins tölur eru leyfðar í þessu svæði" - Page: - PLURALNAME: "Síða" - SINGULARNAME: "Síða" Permission: FULLADMINRIGHTS: "Full stjórnanda réttindi" - PLURALNAME: "Leyfi" - SINGULARNAME: "Leyfi" PhoneNumberField: VALIDATION: "Vinsamlegast sláðu inn gilt símanúmer" RelationComplexTableField.ss: ADD: "Bæta við" - CSVEXPORT: "Flytja út í CSV" - NOTFOUND: "Engir hlutir fundust" - ReportAdmin: - MENUTITLE: "Skýrslur" Security: ALREADYLOGGEDIN: "Þú hefur ekki aðgang að þessari síðu. Ef þú hefur annan reikning sem hefur aðgang að þessari síðu, þá getur þú innskráð þig fyrir neðan." BUTTONSEND: "Sendu mér hlekk til að endursetja lykilorðið" @@ -334,27 +230,17 @@ is: CHANGEPASSWORDHEADER: "Breyttu lykilorðinu þínu" ENTERNEWPASSWORD: "Vinsamlegast sláðu inn nýtt lykilorð" ERRORPASSWORDPERMISSION: "Þú verður að vera innskráður til að geta breytt lykilorðinu þínu!" - IPADDRESSES: "IP Tala" LOGGEDOUT: "Þú hefur verið útskráð(ur). Ef þú villt innskrá þig aftur, sláðu þá inn auðkennið þín fyrir neðan." LOGIN: "Innskrá" - LOSTPASSWORDHEADER: "Tapað lykilorð" NOTEPAGESECURED: "Þessi síða er læst. Sláðu inn auðkennið þitt fyrir neðan og við munum senda þig áfram." NOTERESETPASSWORD: "Sláðu inn tölvupóstfangið þitt og við munum senda þér hlekk þar sem þú getur endursett lykilorðið þitt" PASSWORDSENTHEADER: "Hlekkurinn til að endursetja lykilorðið hefur verið sent til '$s'" PASSWORDSENTTEXT: "Þakka þér fyrir! Hlekkurinn til að endursetja lykilorðið hefur verið sent til '$s'" SecurityAdmin: - ADDMEMBER: "Bæta við félaga" - APPLY_ROLES: "Bæta hlutverkum við grúppur" - EDITPERMISSIONS: "Breyta réttindum og IP tölum fyrir hverja grúppu" GROUPNAME: "Nafn hóps" MEMBERS: "Félagar" - MENUTITLE: "Aðgangur" - NEWGROUP: "Nýr hópur" PERMISSIONS: "Leyfi" ROLES: "Hlutverk" - SGROUPS: "Aðgangs grúppur" - TABROLES: "Hlutverk" - VIEWUSER: "Skoða Notanda" SimpleImageField: NOUPLOAD: "Engin mynd sótt" SiteTree: @@ -367,16 +253,11 @@ is: CSVEXPORT: "Flytja út í CSV" PRINT: "Prenta" SELECT: "Veldu:" - TableListField.ss: - NOITEMSFOUND: "Engar færslur fundust" TableListField_PageControls.ss: - DISPLAYING: "Birtir" - OF: "af" - TO: "til" - VIEWFIRST: "Sýna fyrsta" - VIEWLAST: "Sýna síðasta" + VIEWFIRST: "Sýna first" + VIEWLAST: "Sýna síðast" VIEWNEXT: "Sýna næsta" - VIEWPREVIOUS: "Sýna fyrra" + VIEWPREVIOUS: "Sýna fyrri" ToggleCompositeField.ss: HIDE: "Fela" SHOW: "Sýna" diff --git a/lang/it.yml b/lang/it.yml index fde315a06..d5fe97def 100644 --- a/lang/it.yml +++ b/lang/it.yml @@ -1,10 +1,17 @@ it: AssetAdmin: - CHOOSEFILE: "Scegli file" MENUTITLE: "File & immagini" NEWFOLDER: "NuovaCartella" - AssetAdmin_left.ss: - GO: "Vai" + AssetTableField: + CREATED: "Primo inserito" + DIM: "Dimensioni" + FILENAME: "Nome del file" + LASTEDIT: "Ultimo modificato" + OWNER: "Proprietario" + SIZE: "Dimensione" + TITLE: "Titolo" + TYPE: "Tipo" + URL: "URL" BBCodeParser: ALIGNEMENT: "Allineamento" ALIGNEMENTEXAMPLE: "allinea a destra" @@ -38,9 +45,9 @@ it: ANY: "Qualsiasi" NO: "NO" YES: "SI" - CMSBatchActions: - PUBLISHED_PAGES: "Pubblicate %d pagine, %d non a buon fine" CMSMain: + ACCESS: "Accedi a %s nel CMS" + ACCESSALLINTERFACES: "Accesso a tutte le interfaccia CMS" MENUTITLE: "Contenuto del sito" SAVE: "Salva" ChangePasswordEmail.ss: @@ -58,7 +65,6 @@ it: SUCCESSEDIT: "Salvato %s %s %s" ComplexTableField.ss: ADDITEM: "Inserisci %s" - NOITEMSFOUND: "Nessun oggetto trovato" SORTASC: "Ordina in modo crescente" SORTDESC: "Ordina in modo decrescente" ComplexTableField_popup.ss: @@ -67,21 +73,15 @@ it: ConfirmedPasswordField: ATLEAST: "La password deve essere almeno di %s caratteri." BETWEEN: "Le password devono essere lunghe da %s a %s caratteri." - HAVETOMATCH: "Le password inserite non sono uguali" - LEASTONE: "Le password devono avere almeno un numero e un carattere alfanumerico." MAXIMUM: "La password deve essere al massimo di %s caratteri." - NOEMPTY: "La password non può essere vuota." SHOWONCLICKTITLE: "Cambia la password" CreditCardField: FIRST: "primo" FOURTH: "quarto" SECOND: "secondo" THIRD: "terzo" - VALIDATIONJS1: "Assicurati di aver inserito la " - VALIDATIONJS2: "il numero di carta di credito correttamente." CurrencyField: CURRENCYSYMBOL: "$" - VALIDATIONJS: "Inserisci un simbolo di valuta valido." DataObject: PLURALNAME: "Oggetti dati" SINGULARNAME: "Oggetto dati" @@ -102,12 +102,10 @@ it: DateField: NOTSET: "non impostato" TODAY: "oggi" - VALIDATIONJS: "Inserisci la data nel formato corretto (GG/MM/YYYY)." DropdownField: CHOOSE: "(Scegli)" EmailField: VALIDATION: "Per favore inserisci un indirizzo e-mail." - VALIDATIONJS: "Prego inserire un'indirizzo email valido." Enum: ANY: "Qualsiasi" File: @@ -119,7 +117,6 @@ it: Name: "Nome" PLURALNAME: "File" SINGULARNAME: "File" - Sort: "Tipo ordinamento" TOOLARGE: "La grandezza massima consentita per un file è %s." Title: "Titolo" FileIFrameField: @@ -129,20 +126,6 @@ it: FILE: "File" FROMCOMPUTER: "Dal tuo computer" REPLACE: "Sostituisci %s" - Folder: - CREATED: "Primo caricato" - DELSELECTED: "Cancella file selezionati" - DETAILSTAB: "Dettagli" - FILENAME: "Nome file" - FILESTAB: "Files" - LASTEDITED: "Modificato l'ultima volta" - PLURALNAME: "File" - SINGULARNAME: "File" - TITLE: "Titolo" - TYPE: "Tipo" - UPLOADTAB: "Upload" - URL: "URL" - VIEWEDITASSET: "Mostra/Modifica risorsa" ForgotPasswordEmail.ss: HELLO: "Ciao" TEXT1: "Questa è la tua" @@ -163,20 +146,14 @@ it: Group: Code: "Codice gruppo" Description: "Descrizione" - IMPORTTABTITLE: "Importa" - IPRestrictions: "Restrizioni sull'indirizzo IP" Locked: "Bloccato?" - PLURALNAME: "Gruppi" Parent: "Gruppo padre" RolesAddEditLink: "Aggiungi/modifica ruoli" - SINGULARNAME: "Gruppo" Sort: "Tipo ordinamento" has_many_Permissions: "Autorizzazioni" many_many_Members: "Membri" HtmlEditorField: ANCHORVALUE: "Ancora" - BUTTONINSERTFLASH: "Inserisci flash" - BUTTONINSERTIMAGE: "Inserisci immagine" BUTTONINSERTLINK: "Inserisci link" BUTTONREMOVELINK: "Rimuovi link" CSSCLASS: "Allineamento / stile" @@ -186,7 +163,6 @@ it: CSSCLASSRIGHT: "Sulla destra, con il testo inserito attorno." EMAIL: "Indirizzo email" FILE: "File" - FLASH: "Flash" FOLDER: "Cartella" IMAGE: "Immagine" IMAGEALTTEXT: "Testo alternativo (alt) - mostrato se l'immagine non puà essere mostrata." @@ -202,19 +178,11 @@ it: LINKFILE: "Scarica il file" LINKINTERNAL: "Pagina su questo sito" LINKOPENNEWWIN: "Apri il link in una nuova finestra?" - LINKTEXT: "Testo del collegamento" LINKTO: "Collega alla pagina" PAGE: "Pagina" - SEARCHFILENAME: "Cerca per nome del file" URL: "URL" - Image: - PLURALNAME: "File" - SINGULARNAME: "File" ImageField: IMAGE: "Immagine" - Image_Cached: - PLURALNAME: "File" - SINGULARNAME: "File" Image_iframe.ss: TITLE: "Iframe per l'inserimento dell'immagine" LeftAndMain: @@ -229,8 +197,6 @@ it: LoginAttempt: Email: "Indirizzo e-mail" IP: "Indirizzo IP" - PLURALNAME: "Tentativi d'accesso" - SINGULARNAME: "Tentativo d'accesso" Status: "Stato" Member: ADDRESS: "Indirizzo" @@ -278,71 +244,31 @@ it: db_PasswordExpiry: "Data di scadenza della password" MemberAuthenticator: TITLE: "E-mail & Password" - MemberPassword: - PLURALNAME: "Password dei membri" - SINGULARNAME: "Password del membro" - MemberTableField: - ADD: "Inserisci" - ADDEDTOGROUP: "Inserito membro al gruppo" - ADDINGFIELD: "Inserimento non riuscito" - DeleteTitleText: "Cancella da questo gruppo" - DeleteTitleTextDatabase: "Cancella dal database e da tutti i gruppi" - ERRORADDINGUSER: "Si è verificato un errore nell'aggiungere l'utente al gruppo: %s" - FILTER: "Filtro" - SEARCH: "Cerca" ModelAdmin: - ADDBUTTON: "Aggiungi" - ADDFORM: "Riempi questo form per aggiungere %s al database." - CHOOSE_COLUMNS: "Seleziona la colonna dei risultati..." - CLEAR_SEARCH: "Resetta Ricerca" - CREATEBUTTON: "Crea '%s'" DELETE: "Cancella" DELETEDRECORDS: "Cancellati %s records." - FOUNDRESULTS: "La tua ricerca ha trovato %s oggetti corrispondenti" IMPORT: "Importa da CSV" IMPORTEDRECORDS: "Importati %s records." - ITEMNOTFOUND: "Non trovo questo oggetto" - LOADEDFOREDITING: "Caricato '%s' per modifiche." NOCSVFILE: "Cerca un file CSV da importare" NOIMPORT: "Nulla da importare." - NORESULTS: "La tua ricerca non ha prodotto nessun risultato" - SAVE: "Salva" - SEARCHRESULTS: "Risultati della Ricerca" - SELECTALL: "seleziona tutti" - SELECTNONE: "de-seleziona" UPDATEDRECORDS: "Aggiornati %s records." MoneyField: FIELDLABELAMOUNT: "Totale" FIELDLABELCURRENCY: "Valuta" - MyEntity: - MyNamespace: "Valore del mio linguaggio naturale in difetto" - MyNamespace: - MYENTITY: "Contando %s oggetti" NullableField: IsNullLabel: "è nullo." NumericField: VALIDATION: "'%s' non è un numero, solamente numeri possono essere accettati in questo campo" - VALIDATIONJS: "non è un numero, questo campo accetta solo numeri" - Page: - PLURALNAME: "Pagine" - SINGULARNAME: "Pagina" Permission: FULLADMINRIGHTS: "Diritti di amministrazione" - PLURALNAME: "Autorizzazioni" - SINGULARNAME: "Autorizzazione" PermissionCheckboxSetField: FromGroup: "eredita dal gruppo \"%s\"" FromRole: "eredita dal ruolo \"%s\"" FromRoleOnGroup: "eredita dal ruolo \"%s\" sul gruppo \"%s\"" - PermissionRole: - PLURALNAME: "Ruoli" - SINGULARNAME: "Ruolo" PhoneNumberField: VALIDATION: "Per favore inserisci un numero di telefono valido" RelationComplexTableField.ss: ADD: "Aggiungi" - CSVEXPORT: "Esporta come CSV" - NOTFOUND: "Nessun argomento trovato" ReportAdmin: MENUTITLE: "Rapporti" Security: @@ -352,29 +278,20 @@ it: CHANGEPASSWORDHEADER: "Cambia la tua password" ENTERNEWPASSWORD: "Per favore inserisci una nuova password." ERRORPASSWORDPERMISSION: "Devi essere autenticato per poter cambiare la tua password!" - IPADDRESSES: "Indirizzo IP" LOGGEDOUT: "Sei stato sloggato. Se vuoi autenticarti nuovamente, inserisci qui sotto le tue credenziali." LOGIN: "Entra" - LOSTPASSWORDHEADER: "Password smarrita" NOTEPAGESECURED: "La pagina è sicura. Inserisci le credenziali qui di seguito per poter andare avanti." NOTERESETLINKINVALID: "

    Il collegamento di azzeramento password non è valido o è scaduto.

    Puoi richiederne uno nuovo qui o cambiare la password dopo l'accesso.

    " NOTERESETPASSWORD: "Inserisci il tuo indirizzo e-mail e ti verrà inviato un link per poter reimpostare la tua password." PASSWORDSENTHEADER: "Link per reimpostare la password inviato a '%s'" PASSWORDSENTTEXT: "Grazie! Il link per poter reimpostare la password è stato inviato a '%s'." SecurityAdmin: - ADDMEMBER: "Aggiungi membro" EDITPERMISSIONS: "Modifica i permessi e gli indirizzi IP in ogni gruppo" GROUPNAME: "Nome del gruppo" - IPADDRESSESHELP: | -

    Puoi restringere questo gruppo ad un particolare intervallo di indirizzi IP (un intervallo per linea).
    Gli intervalli possono essere in una qualunque delle forme seguenti:
    203.96.152.12
    - 203.96.152/24
    - 203.96/16
    - 203/8

    Se inserisci uno o più intervalli di indirizzi IP in questo riquardo, i membri acquisiranno il diritto di essere parte di questo gruppo solo se si collegano da un IP valido. Ciò non impedisce il log in; serve in quanto alcuni utenti potrebbero avere la necessità di collegarsi a parti del sistema esenti dalla restrizione IP. MEMBERS: "Membri" + MEMBERS: "Membri" MENUTITLE: "Sicurezza" NEWGROUP: "Nuovo gruppo" PERMISSIONS: "Permessi" - SGROUPS: "Gruppi di sicurezza" - VIEWUSER: "Vedi utente" SimpleImageField: NOUPLOAD: "Nessuna immagine caricata" SiteTree: @@ -387,9 +304,6 @@ it: CSVEXPORT: "Esporta come CSV" PRINT: "Stampa" TableListField_PageControls.ss: - DISPLAYING: "Mostrando" - OF: "di" - TO: "a" VIEWFIRST: "Vedi prima" VIEWLAST: "Vedi infine" VIEWNEXT: "Vedi successivo" diff --git a/lang/ja_JP.yml b/lang/ja_JP.yml index 004eddc1b..091cf4e72 100644 --- a/lang/ja_JP.yml +++ b/lang/ja_JP.yml @@ -1,10 +1,5 @@ ja_JP: AssetAdmin: - CHOOSEFILE: "ファイルを選択" - MENUTITLE: "ファイルと画像" - NEWFOLDER: "新規フォルダ" - AssetAdmin_left.ss: - GO: "GO" BBCodeParser: ALIGNEMENT: "整列" ALIGNEMENTEXAMPLE: "右寄せ" @@ -35,7 +30,6 @@ ja_JP: ERRORNOTADMIN: "このユーザーは管理者(アドミニストレーター)ではありません" ERRORNOTREC: "ユーザー名 / パスワードは認識されませんでした" CMSMain: - MENUTITLE: "ページ" SAVE: "保存" ChangePasswordEmail.ss: CHANGEPASSWORDTEXT1: "このサイトのパスワードが変更されました。" @@ -49,7 +43,6 @@ ja_JP: SUCCESSEDIT: "更新日時 %s %s %s" ComplexTableField.ss: ADDITEM: "%sを追加する" - NOITEMSFOUND: "アイテムがありません" SORTASC: "昇順" SORTDESC: "ソート(下順)" ComplexTableField_popup.ss: @@ -58,21 +51,15 @@ ja_JP: ConfirmedPasswordField: ATLEAST: "パスワードには少なくとも %s 文字以上の長さで設定してください" BETWEEN: "パスワードには %s から %s 文字の長さにしてください" - HAVETOMATCH: "入力されたパスワードが一致しました" - LEASTONE: "パスワードには、最低1桁以上の英数字を含んでください" MAXIMUM: "パスワードには %s 文字までで設定してください" - NOEMPTY: "パスワードに何も入力されていません" SHOWONCLICKTITLE: "パスワード変更" CreditCardField: FIRST: "一番目" FOURTH: "四番目" SECOND: "二番目" THIRD: "三番目" - VALIDATIONJS1: "確実に入力してください" - VALIDATIONJS2: "クレジットカード番号を正確に" CurrencyField: CURRENCYSYMBOL: "$" - VALIDATIONJS: "有効な通貨を入力してください" DataObject: PLURALNAME: "データオブジェクト" SINGULARNAME: "データオブジェクト" @@ -93,12 +80,10 @@ ja_JP: DateField: NOTSET: "セットされていません" TODAY: "今日" - VALIDATIONJS: "日付値を (DD/MM/YYYY) の形式で入力してください" DropdownField: CHOOSE: "(選択)" EmailField: VALIDATION: "メールアドレスを入力してください" - VALIDATIONJS: "メールアドレスを入力して下さい" Email_BounceRecord: PLURALNAME: "Eメール 反応記録" SINGULARNAME: "Eメール 反応記録" @@ -110,26 +95,11 @@ ja_JP: Name: "名前" PLURALNAME: "ファイル" SINGULARNAME: "ファイル" - Sort: "並び順" TOOLARGE: "ファイル容量が大きすぎます。最大でも%S 以下にしてください。" Title: "タイトル" FileIFrameField: FILE: "ファイル" FROMCOMPUTER: "コンピューターから" - Folder: - CREATED: "作成日時" - DELSELECTED: "選択されたファイルを削除" - DETAILSTAB: "詳細" - FILENAME: "ファイル名" - FILESTAB: "ファイル" - LASTEDITED: "更新日時" - PLURALNAME: "ファイル" - SINGULARNAME: "ファイル" - TITLE: "タイトル" - TYPE: "種類" - UPLOADTAB: "アップロード" - URL: "URL" - VIEWEDITASSET: "アセットを表示/編集" ForgotPasswordEmail.ss: HELLO: "こんにちわ!" TEXT1: "ここ'貴方の" @@ -139,7 +109,8 @@ ja_JP: FIELDISREQUIRED: "%s が必要です" VALIDATIONCREDITNUMBER: | クレジットカードに書かれた - %s が含まれた番号を確実にしてください。 VALIDATIONFAILED: "検証できませんでした" + %s が含まれた番号を確実にしてください。 + VALIDATIONFAILED: "検証できませんでした" VALIDATIONNOTUNIQUE: "入力された値はユニークではありません" VALIDATIONPASSWORDSDONTMATCH: "パスワードが一致しません" VALIDATIONPASSWORDSNOTEMPTY: "パスワードが空欄です" @@ -152,19 +123,13 @@ ja_JP: Code: "グループコード" DefaultGroupTitleAdministrators: "管理者" Description: "説明文" - IMPORTTABTITLE: "インポート" - IPRestrictions: "IPアドレス制限" Locked: "ロックしますか?" - PLURALNAME: "グループ" Parent: "元グループ" - SINGULARNAME: "グループ" Sort: "並び順" has_many_Permissions: "承認" many_many_Members: "メンバー" HtmlEditorField: ANCHORVALUE: "アンカー" - BUTTONINSERTFLASH: "フラッシュ挿入" - BUTTONINSERTIMAGE: "画像挿入" BUTTONINSERTLINK: "リンクを追加" BUTTONREMOVELINK: "リンクを削除" CAPTIONTEXT: "タイトル" @@ -175,7 +140,6 @@ ja_JP: CSSCLASSRIGHT: "右側にテキストと一緒に処理してください" EMAIL: "メールアドレス" FILE: "ファイル" - FLASH: "flashを挿入" FOLDER: "フォルダ" IMAGE: "画像を挿入" IMAGEDIMENSIONS: "サイズ" @@ -189,35 +153,16 @@ ja_JP: LINKFILE: "ファイルをダウンロード" LINKINTERNAL: "サイトのページ" LINKOPENNEWWIN: "リンクを新しい新規ウインドウで開く" - LINKTEXT: "リンクテキスト" LINKTO: "リンクする" PAGE: "ページ" - SEARCHFILENAME: "ファイル名で検索" - SHOWUPLOADFORM: "ファイルをアップロード" URL: "URL" - Image: - PLURALNAME: "ファイル" - SINGULARNAME: "ファイル" ImageField: IMAGE: "画像" - Image_Cached: - PLURALNAME: "ファイル" - SINGULARNAME: "ファイル" Image_iframe.ss: TITLE: "イメージアップロード(Iframe)" - LeftAndMain: - HELP: "ヘルプ" - PAGETYPE: "ページタイプ:" - PERMAGAIN: "ログアウトしました。 再度ログインしたい場合は、ユーザー名とパスワードを入力してください。" - PERMALREADY: "恐れ入りますが、アクセスできません。別ユーザーでログインしたい場合は、下記をから。" - PERMDEFAULT: "CMSにアクセスするために、メールアドレスとパスワードを入力してください。" - PLEASESAVE: "保存してください: 保存してないため更新できません。" - SAVED: "保存しました" LoginAttempt: Email: "メールアドレス" IP: "IPアドレス" - PLURALNAME: "ログインの試み" - SINGULARNAME: "ログインの試み" Status: "ステータス" Member: ADDRESS: "住所" @@ -267,76 +212,21 @@ ja_JP: db_PasswordExpiry: "パスワードの有効期限" MemberAuthenticator: TITLE: "メールアドレスとパスワード" - MemberImportForm: - Help1: "

    CSV形式(コンマ区切り)でメンバーをインポートする。高度な使用例を表示

    " - ResultCreated: "%d人のメンバーを作成しました" - ResultDeleted: "%d人のメンバーを削除しました" - ResultNone: "変更なし" - ResultUpdated: "%d人のメンバーを更新しました" - MemberPassword: - PLURALNAME: "メンバーパスワード" - SINGULARNAME: "メンバーパスワード" - MemberTableField: - ADD: "追加" - ADDEDTOGROUP: "グループにメンバーを追加" - ADDINGFIELD: "領域を追加しています" - DeleteTitleText: "このグループから削除する" - DeleteTitleTextDatabase: "データベースおよび全てのグループから削除する" - FILTER: "フィルター" - SEARCH: "検索" - ModelAdmin: - ADDBUTTON: "追加" - ADDFORM: "%s をデータベースに追加するために、今フォームを記述してください" - CHOOSE_COLUMNS: "結果の列から選択してください" - CLEAR_SEARCH: "検索結果を消去" - CREATEBUTTON: "'%s' を作成" - DELETE: "削除" - DELETEDRECORDS: "レコード %s 件を削除しました" - FOUNDRESULTS: "%s に該当するアイテムは見つかりません" - IMPORT: "CSVファイルからインポートする" - IMPORTEDRECORDS: "レコード %s 件をインポートしました" - ITEMNOTFOUND: "見つかりませんでした" - LOADEDFOREDITING: "'%s' の編集画面をロードしています" - NOCSVFILE: "インポートするためのCSVファイルを参照してください" - NOIMPORT: "インポートするものがありません" - NORESULTS: "結果がありません" - SAVE: "保存" - SEARCHRESULTS: "検索結果" - SELECTALL: "すべて選択" - SELECTNONE: "ひとつ選択" - UPDATEDRECORDS: "レコード %s 件をアップデートしました" MoneyField: FIELDLABELAMOUNT: "総計" - MyEntity: - MyNamespace: "デフォルトの言語" - MyNamespace: - MYENTITY: "%s 回目" NumericField: VALIDATION: "'%s' は1桁数字ではなく、2桁以上の数字が受付可能です。" - VALIDATIONJS: "1桁の数字は受け付けられません。2桁以上の数のみここでは受け付けられます。" - Page: - PLURALNAME: "ページ" - SINGULARNAME: "ページ" Permission: AdminGroup: "管理者" FULLADMINRIGHTS: "完全な管理権" - PLURALNAME: "アクセス権" - SINGULARNAME: "アクセス権" PermissionCheckboxSetField: FromGroup: "グループ \"%s\" から継承" FromRole: "ロール \"%s\" から継承" FromRoleOnGroup: "グループ \"%s\" のロール \"%s\"から継承" - PermissionRole: - PLURALNAME: "ロール" - SINGULARNAME: "ロール" PhoneNumberField: VALIDATION: "電話番号を入力してください" RelationComplexTableField.ss: ADD: "追加" - CSVEXPORT: "CSVとしてエクスポート" - NOTFOUND: "何もありません" - ReportAdmin: - MENUTITLE: "レポート" Security: ALREADYLOGGEDIN: "あなたはこのページにアクセスできません。別のアカウントを持っていたら 再ログインを行ってください。" BUTTONSEND: "パスワードリセットのリンクを送信してください" @@ -344,39 +234,17 @@ ja_JP: CHANGEPASSWORDHEADER: "パスワードを変更しました" ENTERNEWPASSWORD: "新しいパスワードを入力してください" ERRORPASSWORDPERMISSION: "パスワードを変更する為に、ログインしなければなりません!" - IPADDRESSES: "IPアドレス" LOGGEDOUT: "ログアウトしました。再度ログインする場合は証明書キーを入力してください" LOGIN: "ログイン" - LOSTPASSWORDHEADER: "パスワードを忘れました" NOTEPAGESECURED: "このページはセキュリティで保護されております証明書キーを下記に入力してください。こちらからすぐに送信します" NOTERESETLINKINVALID: "

    パスワードリセット用のリンクが不正です

    あたらしく設定するために ここ をクリックもしくは ログインしてパスワードを変更してください。

    " NOTERESETPASSWORD: "メールアドレスを入力してください、パスワードをリセットするURLを送信致します" PASSWORDSENTHEADER: "パスワードリセットのリンクを送信はこちら '%s'" PASSWORDSENTTEXT: "%s へパスワードリセットのメールを送信しました。しばらくしてメールを確認してください。" SecurityAdmin: - ADDMEMBER: "メンバー追加" - EDITPERMISSIONS: "グループの権限を編集" GROUPNAME: "グループ名" - IPADDRESSESHELP: | -

    このグループを特定のIPアドレスの範囲(1行1レンジ)に制限できます。
    - 範囲は次のような指定が出来ます:
    - 203.96.152.12
    - 203.96.152/24
    - 203.96/16
    - 203/8
    -
    - このテキストボックスに1つかそれ以上のIPアドレスの範囲を入力すると、 - 該当するIPアドレスからログインした場合のみこのグループのメンバーとしての権利を取得できます。 - この設定はログインを防ぐことは出来ません。 - 同じユーザーがIPアドレス制限なしでシステムの一部にアクセスするためのログインをする必要があるためです。 MEMBERS: "メンバー" - MENUTITLE: "セキュリティ" - NEWGROUP: "新規グループ" + MEMBERS: "メンバー" PERMISSIONS: "承認" - SGROUPS: "セキュリティグループ" - TABIMPORT: "インポート" - VIEWUSER: "ユーザー閲覧" - SecurityAdmin_MemberImportForm: - BtnImport: "インポート" SimpleImageField: NOUPLOAD: "何も画像がアップロードされていません" SiteTree: @@ -390,17 +258,11 @@ ja_JP: PRINT: "印刷" SELECT: "選択:" TableListField.ss: - NOITEMSFOUND: "見つかりませんでした" - SORTASC: "昇順に並び替える" - SORTDESC: "降順に並び替える" TableListField_PageControls.ss: - DISPLAYING: "表示中" - OF: "of" - TO: "to" - VIEWFIRST: "最初を表示" - VIEWLAST: "最後を表示" + VIEWFIRST: "一番目を表示" + VIEWLAST: "最新を表示" VIEWNEXT: "次を表示" - VIEWPREVIOUS: "前を表示" + VIEWPREVIOUS: "前回を表示" ToggleCompositeField.ss: HIDE: "非表示" SHOW: "表示" diff --git a/lang/km.yml b/lang/km.yml index b793e18b5..5dee0fb2c 100644 --- a/lang/km.yml +++ b/lang/km.yml @@ -1,9 +1,4 @@ km: - AssetAdmin: - MENUTITLE: "រូបភាព និងឯកសារ" - CMSMain: - MENUTITLE: "ទំព័រ" - SAVE: "រក្សា​ទុក​" ChangePasswordEmail.ss: CHANGEPASSWORDTEXT1: "អ្នកបានផ្លាស់ប្តូរពាក្យសំងាត់សំរាប់" ComplexTableField.ss: @@ -34,28 +29,14 @@ km: PLURALNAME: "ឯកសារ" SINGULARNAME: "ឯកសារ" TOOLARGE: "ឯកសារនេះធំពេក, អាចដាក់បានត្រឹមតែ %s" - Folder: - PLURALNAME: "ឯកសារ" - SINGULARNAME: "ឯកសារ" Group: Code: "លេខកូដក្រុម" Locked: "មិនអាចប្រើ" - PLURALNAME: "ចំណាត់ក្រុម" Parent: "ចំណាត់ក្រុមដើម" - SINGULARNAME: "ចំណាត់ក្រុម" has_many_Permissions: "ការអនុញ្ញាតិ្ត" many_many_Members: "សមាជិក" HtmlEditorField: - BUTTONINSERTFLASH: "បញ្ចូល Flash" - BUTTONINSERTIMAGE: "បញ្ចូលរូបភាព" - Image: - PLURALNAME: "ឯកសារ" - SINGULARNAME: "ឯកសារ" - LeftAndMain: - HELP: "ជំនួយការ" LoginAttempt: - PLURALNAME: "ចំនួនព្យាយាមចូល" - SINGULARNAME: "ព្យាយាមចូល" Member: EMAIL: "អ៊ីម៉េល" INTERFACELANG: "ភាសាប្រើសំរាប់ទំព័រមុខ" @@ -66,25 +47,11 @@ km: belongs_many_many_Groups: "ចំណាត់ក្រុម" db_LockedOutUntil: "ដោះចេញរហូតដល់" db_PasswordExpiry: "កាលបរិច្ឆេទផុតកំណត់ពាក្យសំងាត់" - MemberPassword: - PLURALNAME: "ពាក្យសំងាត់របស់សមាជិក" - SINGULARNAME: "ពាក្យសំងាត់របស់សមាជិក" - ModelAdmin: - CREATEBUTTON: "បង្កើត '%s'" NullableField: IsNullLabel: "ទទេ" - Page: - PLURALNAME: "ទំព័រ" - SINGULARNAME: "ទំព័រ" Permission: - PLURALNAME: "ការអនុញ្ញាត្តិ" - SINGULARNAME: "ការអនុញ្ញាត្តិ" - ReportAdmin: - MENUTITLE: "របាយការណ៍" Security: ALREADYLOGGEDIN: "អ្នកមិនអាចមើលទំព័រនេះបានទេ។ សូមប្រើប្រាស់ព័ត៌មានសំរាប់ថ្មី មួយទៀតសំរាប់ចូលមើល។ សូមចូលតាម " - SecurityAdmin: - MENUTITLE: "សុវត្ថិភាព" SiteTree: Versioned: has_many_Versions: "ជំនាន់" diff --git a/lang/kn_IN.yml b/lang/kn_IN.yml deleted file mode 100644 index a8ef20a84..000000000 --- a/lang/kn_IN.yml +++ /dev/null @@ -1,9 +0,0 @@ -kn_IN: - AssetAdmin: - MENUTITLE: "ಫೈಲ್ಗಳು ಮತ್ತು ಚಿತ್ರಗಳು" - CMSMain: - MENUTITLE: "ತಾಣದ ವಿಷಯಗಳು" - LeftAndMain: - HELP: "ಸಹಾಯ" - SecurityAdmin: - MENUTITLE: "ಭದ್ರತೆ" diff --git a/lang/ku.yml b/lang/ku.yml deleted file mode 100644 index e89aae654..000000000 --- a/lang/ku.yml +++ /dev/null @@ -1,10 +0,0 @@ -ku: - AssetAdmin: - MENUTITLE: "Rûpelan & Xiyalan" - Folder: - FILESTAB: "Rûpelan" - LeftAndMain: - HELP: "Arîkarî" - SecurityAdmin: - MENUTITLE: "Ewleyî" - SiteTree: diff --git a/lang/kxm.yml b/lang/kxm.yml deleted file mode 100644 index 992f3f124..000000000 --- a/lang/kxm.yml +++ /dev/null @@ -1,11 +0,0 @@ -kxm: - AssetAdmin: - MENUTITLE: "រូបភាព និង ឯកសារ" - CMSMain: - MENUTITLE: "ទំព័រ" - LeftAndMain: - HELP: "ជំនួយការ" - ReportAdmin: - MENUTITLE: "របាយការណ៍" - SecurityAdmin: - MENUTITLE: "សុវត្ថិភាព" diff --git a/lang/lc_XX.yml b/lang/lc_XX.yml index edc81b421..b4d7793ae 100644 --- a/lang/lc_XX.yml +++ b/lang/lc_XX.yml @@ -1,24 +1,14 @@ lc_XX: - AssetAdmin: - CHOOSEFILE: "CHOOSE FIEL" - MENUTITLE: "FILEZ N IMAGEZ" - NEWFOLDER: "NEW FOLDR" - AssetAdmin_left.ss: - GO: "GOGOOG0!!!111!!" BasicAuth: ENTERINFO: "PLZ ENTR UR USERNAYM N A PASWORD." ERRORNOTADMIN: "DAT USR IZ NOT AN ADMINISTRATOR." ERRORNOTREC: "DAT USERNAYM / PASWORD ISNT RECOGNISD SUZ 2 HEAR" - CMSMain: - MENUTITLE: "SITEZ CONTENT" - SAVE: "SAVE" ChangePasswordEmail.ss: CHANGEPASSWORDTEXT1: "U CHANGD UR PASWORD 4" CHANGEPASSWORDTEXT2: "U CAN NAO USE TEH FOLLOWIN CREDENSHALS 2 LOG IN:" HELLO: "OHI! HOWRU2DAI?" ComplexTableField.ss: ADDITEM: "ADD" - NOITEMSFOUND: "I R FOUNDZ NO ITEMZ" SORTASC: "SORT ASCENDIN" SORTDESC: "SORT DESCENDIN" ComplexTableField_popup.ss: @@ -42,8 +32,6 @@ lc_XX: CHOOSE: "(pik)" EmailField: VALIDATION: "PLZ ENTR AN EMAIL ADDRES." - Folder: - FILESTAB: "FILEZ" ForgotPasswordEmail.ss: HELLO: "OHI! HOWRU2DAI?" Form: @@ -56,8 +44,6 @@ lc_XX: VALIDATIONSTRONGPASSWORD: "PASWORDZ MUST HAS AT LEAST WAN DIGIT AN WAN ALFANUMERIC CHARACTR." VALIDCURRENCY: "PLZ ENTR VALID CURRENCY. CUD U?" HtmlEditorField: - BUTTONINSERTFLASH: "ADD SUM COOL FLASH STUFF" - BUTTONINSERTIMAGE: "INSERT PIKSHUR" BUTTONINSERTLINK: "INSERT LINK" BUTTONREMOVELINK: "REMOOV LINK" CSSCLASS: "ALIGNMENT / STYLE" @@ -66,7 +52,6 @@ lc_XX: CSSCLASSRIGHT: "ON TEH RITE, WIF TEXT WRAPPIN AROUND." EMAIL: "EMAIL ADDRESZ" FILE: "FIEL" - FLASH: "INSERT SUM SERIOUS FLASH STUFF" FOLDER: "TEH FOLDER" IMAGE: "INSERT PIKSHUR" IMAGEDIMENSIONS: "DIMENSHUNZ" @@ -84,14 +69,6 @@ lc_XX: URL: "URL N STUFF" Image_iframe.ss: TITLE: "PIKSHUR UPLOADIN IFRAME" - LeftAndMain: - HELP: "HALP" - PAGETYPE: "TYPE OV TEH PAEG:" - PERMAGAIN: "U HAS BEEN LOGGD OUT OV TEH CMS. IF U WUD LIEK 2 LOG IN AGAIN, ENTR USERNAME AN PASWORD BELOW." - PERMALREADY: "I R SRY, BUT U CANT ACCES DAT PART OV TEH CMS. IF U WANTS 2 LOG IN AS SUM1 ELSE, DO SO BELOW" - PERMDEFAULT: "PLZ CHOOSE AN AUTHENTICASHUN METHOD AN ENTR UR CREDENTIALS 2 ACCES TEH CMS." - PLEASESAVE: "PLZ SAVE PAEG: DIS PAEG CUD NOT BE UPATD CUZ IT HASNT BIN SAVD YET." - SAVED: "SAVD" Member: ADDRESS: "ADDRESZ" BUTTONCHANGEPASSWORD: "CHANGE PASWORD" @@ -126,15 +103,10 @@ lc_XX: YOUROLDPASSWORD: "UR OLD PASWORD" MemberAuthenticator: TITLE: "E-MAIL N PASWORD" - MemberTableField: - ADD: "ADD" - ADDEDTOGROUP: "ADDED MEMBR TO GROUP, RITE?" NumericField: VALIDATION: "'%s' IZ NOT NUMBR, ONLY NUMBERS CAN BE ACCEPTD 4 DIS FIELD" PhoneNumberField: VALIDATION: "PLZ ENTR VALID FONE NUMBR WE WUNT DISTURB 2 MUCH JUS A BIT" - ReportAdmin: - MENUTITLE: "REPORTZ" Security: ALREADYLOGGEDIN: "U SHALL NOT PASS!! IF U HAS ANOTHR AKOWNT DAT CAN ACCES DAT PAEG, U CAN LOG IN BELOW." BUTTONSEND: "SEND ME TEH PASWORD RESETZ LINK" @@ -143,16 +115,10 @@ lc_XX: ENTERNEWPASSWORD: "PLEEZ ENTR NEW PASSWORD. KTHX." ERRORPASSWORDPERMISSION: "U MUST BE LOGGD IN IN ORDR 2 CHANGE UR PASWORD!" LOGGEDOUT: "U HAS BEEN LOGGD OUT. IF U WUD LIEK 2 LOG IN AGAIN, ENTR UR CREDENTIALS BELOW." - LOSTPASSWORDHEADER: "LUST PASWRD" NOTEPAGESECURED: "TEH PAGE IZ SECURD. ENTR UR CREDENSHALS BELOW AN WE WILL SEND U RITE ALONG." NOTERESETPASSWORD: "ENTR UR E-MAIL ADDRES AN WE R GONA SEND U LINK WIF WHICH U CAN RESET UR PASWORD" PASSWORDSENTHEADER: "I R SENT TEH PASWORD RESET LINK TO '%s'" PASSWORDSENTTEXT: "THXALOT! I R SENT TEH PASWORD RESET LINK TO '%s'" - SecurityAdmin: - ADDMEMBER: "ADD MEMBR1!1!!11!" - MENUTITLE: "SECURITY" - NEWGROUP: "NEW GROUP" - SGROUPS: "SECURITY GROUPZ" SimpleImageField: NOUPLOAD: "DEREZ NO PIKSHUR UPLOADED" SiteTree: diff --git a/lang/lt.yml b/lang/lt.yml index 0f346932d..da5564f92 100644 --- a/lang/lt.yml +++ b/lang/lt.yml @@ -1,10 +1,4 @@ lt: - AssetAdmin: - CHOOSEFILE: "Pasirinkite bylą" - MENUTITLE: "Bylos ir paveikslėliai" - NEWFOLDER: "Nauja direktorija" - AssetAdmin_left.ss: - GO: "Eiti" BBCodeParser: ALIGNEMENT: "Lygiavimas" ALIGNEMENTEXAMPLE: "sulygiuota pagal dešinę" @@ -38,10 +32,7 @@ lt: ANY: "Bet koks" NO: "Ne" YES: "Taip" - CMSBatchActions: - PUBLISHED_PAGES: "Publikuoti %d puslapiai" CMSMain: - MENUTITLE: "Svetainės turinys" SAVE: "Išsaugoti" ChangePasswordEmail.ss: CHANGEPASSWORDTEXT1: "Jūs pakeitėte slaptažodį" @@ -58,7 +49,6 @@ lt: SUCCESSEDIT: "Išsaugota %s %s %s" ComplexTableField.ss: ADDITEM: "Pridėti %s" - NOITEMSFOUND: "Nieko nerasta" SORTASC: "Rūšiuoti A-Z" SORTDESC: "Rūšiuoti Z-A" ComplexTableField_popup.ss: @@ -67,21 +57,15 @@ lt: ConfirmedPasswordField: ATLEAST: "Slaptažodžiai turi būti bent jau %s simbolių ilgumo." BETWEEN: "Slaptažodžiai turi būti nuo %s iki %s simbolių ilgumo." - HAVETOMATCH: "Slaptažodžiai turi sutapti" - LEASTONE: "Slaptažodžiai turi turėti bent po vieną skaičių ir raidę." MAXIMUM: "Slaptažodžiai negali būti ilgesni nei %s simboliai." - NOEMPTY: "Slaptažodžiai negali būti tušti." SHOWONCLICKTITLE: "Pakeisti slaptažodį" CreditCardField: FIRST: "pirmas" FOURTH: "ketvirtas" SECOND: "antras" THIRD: "trečias" - VALIDATIONJS1: "Įsitikinkite, kad įvedėte" - VALIDATIONJS2: "teisingai kreditinės kortelės numerį." CurrencyField: CURRENCYSYMBOL: "$" - VALIDATIONJS: "Įveskite teisingą valiutą." DataObject: PLURALNAME: "Duomenų objektai" SINGULARNAME: "Duomenų objektas" @@ -102,12 +86,10 @@ lt: DateField: NOTSET: "nenustatyta" TODAY: "šiandien" - VALIDATIONJS: "Įveskite teisingą datos formatą (DD-MM-YYYY)." DropdownField: CHOOSE: "(Pasirinkti)" EmailField: VALIDATION: "Įveskite e. pašto adresą." - VALIDATIONJS: "Įveskite e. pašto adresą." Email_BounceRecord: PLURALNAME: "El.Pašto persiuntimų įrašai" SINGULARNAME: "El.Pašto persiuntimų įrašas" @@ -122,7 +104,6 @@ lt: Name: "Vardas" PLURALNAME: "Bylos" SINGULARNAME: "Byla" - Sort: "Rūšiavimo tvarka" TOOLARGE: "Byla per didelė, maksimalus dydis %s." Title: "Pavadinimas" FileIFrameField: @@ -133,22 +114,6 @@ lt: FROMCOMPUTER: "Iš jūsų kompiuterio" FROMFILESTORE: "Š failų saugyklos " REPLACE: "Pakeisti %s" - FileIFrameField.ss: - TITLE: "Paveikslėlių įdėjimo freimas" - Folder: - CREATED: "Pirmiausia užkrauta" - DELSELECTED: "Ištrinti pažymėtas bylas" - DETAILSTAB: "Smulkesnė informacija" - FILENAME: "Byla" - FILESTAB: "Bylos" - LASTEDITED: "Vėliausiai užkrauta" - PLURALNAME: "Bylos" - SINGULARNAME: "Byla" - TITLE: "Pavadinimas" - TYPE: "Tipas" - UPLOADTAB: "Įkelti" - URL: "URL adresas" - VIEWEDITASSET: "Žiūrėti / Redaguoti nuosavybę" ForgotPasswordEmail.ss: HELLO: "Sveiki" TEXT1: "Štai Jūsų" @@ -169,18 +134,13 @@ lt: Group: Code: "Grupės kodas" Description: "Aprašymas" - IPRestrictions: "Draudžiami IP adresai" Locked: "Užrakinta?" - PLURALNAME: "Grupės" Parent: "Priklauso grupei" - SINGULARNAME: "Grupė" Sort: "Rūšiavimo tvarka" has_many_Permissions: "Leidimai" many_many_Members: "Nariai" HtmlEditorField: ANCHORVALUE: "Pagrindinis" - BUTTONINSERTFLASH: "įterpti Flash" - BUTTONINSERTIMAGE: "iterpti paveikslėlį" BUTTONINSERTLINK: "Įterpti nuorodą" BUTTONREMOVELINK: "Pašalinti nuorodą" CAPTIONTEXT: "Pavadinimo tekstas" @@ -191,7 +151,6 @@ lt: CSSCLASSRIGHT: "Dešinėje, su tekstu aplink." EMAIL: "E. pašto adresas" FILE: "Byla" - FLASH: "Flash" FOLDER: "Direktorija" IMAGE: "Paveikslėlis" IMAGEALTTEXT: "Alternatyvus tekstas (alt) - rodomas kai nepavyksta parodyti paveikslėlio" @@ -207,35 +166,16 @@ lt: LINKFILE: "Atsisiųsti bylą" LINKINTERNAL: "Puslapis svetainėje" LINKOPENNEWWIN: "Atidaryti nuorodą naujame lange?" - LINKTEXT: "Nuorodos tekstas" LINKTO: "Nuoroda į" PAGE: "Puslapis" - SEARCHFILENAME: "Ieškoti pagal bylos pavadinimą" URL: "URL adresas" - Image: - PLURALNAME: "Bylos" - SINGULARNAME: "Byla" ImageField: IMAGE: "Paveikslėlis" - Image_Cached: - PLURALNAME: "Failai" - SINGULARNAME: "Failas" Image_iframe.ss: TITLE: "Atvaizdo siuntimas iframe" - LeftAndMain: - CANT_REORGANISE: "Jūs neturite teisių svetainės schemos pakeitimams. Jūsų pakeitimai neišsaugoti. " - HELP: "Pagalba" - PAGETYPE: "Puslapio tipas:" - PERMAGAIN: "Jūs atsijungėte iš TVS. Jei norite prisijungti iš naujo, įveskite vartotojo vardą ir slaptažodį." - PERMALREADY: "Jūs neturite prieigos teisių į šią TVS dalį. Jeigu norite prisijunkite kitu vardu." - PERMDEFAULT: "Prisijungimui prie TVS įveskite savo e. paštą ir slaptažodį." - PLEASESAVE: "Išsaugokite puslapį: šis puslapis negali būti atnaujintas kol jo neišsaugojote." - SAVED: "išsaugota" LoginAttempt: Email: "E. pašto adresas" IP: "IP adresas" - PLURALNAME: "Bandymai prisijungti" - SINGULARNAME: "Bandymas prisijungti" Status: "Statusas" Member: ADDRESS: "Adresas" @@ -283,62 +223,17 @@ lt: db_PasswordExpiry: "Slaptažodžio pabaigos data" MemberAuthenticator: TITLE: "E-paštas ir slaptažodis" - MemberPassword: - PLURALNAME: "Nario slaptažodžiai" - SINGULARNAME: "Nario slaptažodis" - MemberTableField: - ADD: "Pridėti" - ADDEDTOGROUP: "Į grupę pridėtas narys" - ADDINGFIELD: "Pridėti nepavyko" - ERRORADDINGUSER: "Ivyko klaida įtraukiant naudotoją i grupę: %s" - FILTER: "Filtruoti" - SEARCH: "Ieškoti" - ModelAdmin: - ADDBUTTON: "Pridėti" - ADDFORM: "Užpildykite šią formą, kad %s pridėti į duomenų bazę." - CHOOSE_COLUMNS: "Pasirinkti rezultatų stulpelius..." - CLEAR_SEARCH: "Išvalyti paiešką" - CREATEBUTTON: "Sukurti '%s'" - DELETE: "Ištrinti" - DELETEDRECORDS: "Ištrinta įrašų: %s." - FOUNDRESULTS: "Pagal Jūsų paiešką pavyko rasti: %s" - IMPORT: "Importuoti iš CSV" - IMPORTEDRECORDS: "Importuota įrašų: %s." - ITEMNOTFOUND: "Nepavyko rasti šios prekės" - LOADEDFOREDITING: "Užkrauta redagavimui: '%s'." - NOCSVFILE: "Pasirinkite CSV bylą importui" - NOIMPORT: "Nėra ką importuoti" - NORESULTS: "Be rezultatų" - SAVE: "Išsaugoti" - SEARCHRESULTS: "Paieškos rezultatai" - SELECTALL: "pažymėti viską" - SELECTNONE: "nieko nežymėti" - UPDATEDRECORDS: "Atnaujinta įrašų: %s." MoneyField: FIELDLABELAMOUNT: "Kiekis" FIELDLABELCURRENCY: "Valiuta" - MyEntity: - MyNamespace: "Mano gimtos kalbos numatytoji reikšmė" - MyNamespace: - MYENTITY: "Skaičiuojama: %s" NumericField: VALIDATION: "'%s' nėra numeris, šiame laukelyje gali būti tik skaičiai" - VALIDATIONJS: "nėra skaičius, šiame laukelyje gali būti įvesti tik skaičiai" - Page: - PLURALNAME: "Puslapiai" - SINGULARNAME: "Puslapis" Permission: FULLADMINRIGHTS: "Pilnos administravimo teisės" - PLURALNAME: "Privilegijos" - SINGULARNAME: "Privilegija" PhoneNumberField: VALIDATION: "Įveskite teisingą telefono numerį" RelationComplexTableField.ss: ADD: "Pridėti" - CSVEXPORT: "Eksportuoti į CSV" - NOTFOUND: "Nieko nerasta" - ReportAdmin: - MENUTITLE: "Ataskaitos" Security: ALREADYLOGGEDIN: "Jūs neturite prieigos prie šio puslapio. Jeigu norite prisijungti kaip kitas vartotojas, spauskite čia." BUTTONSEND: "Atsiųsti slaptažodžio atstatymo nuorodą" @@ -346,30 +241,17 @@ lt: CHANGEPASSWORDHEADER: "Pasikeiskite savo slaptažodį" ENTERNEWPASSWORD: "Įveskite naują slaptažodį." ERRORPASSWORDPERMISSION: "Norėdami keisti savo slaptažodį turite būti prisijungęs!" - IPADDRESSES: "IP adresai" LOGGEDOUT: "Jūs atsijungėte. Norėdami vėl prisijungti, įveskite savo duomenis į žemiau esančius laukelius." LOGIN: "Prisijungti" - LOSTPASSWORDHEADER: "Pamiršau slaptažodį" NOTEPAGESECURED: "Šis puslapis yra apsaugotas. Įveskite savo prisijungimo duomenis, esančius žemiau." NOTERESETLINKINVALID: "

    Slaptažodžio atstatymo nuoroda neteisinga arba pasenusi.

    Galite prašyti dar vienos čia arba pasikeisti slaptažodį po to, kai prisijungsite.

    " NOTERESETPASSWORD: "Įveskite savo e. pašto adresą ir mes atsiųsime slaptažodžio atstatymui skirtą nuorodą" PASSWORDSENTHEADER: "Slaptažodžio atstatymo nuoroda išsiųssta į '%s'" PASSWORDSENTTEXT: "Ačiū! Slaptažodžio atstatymo nuoroda išsiųssta į '%s'" SecurityAdmin: - ADDMEMBER: "Pridėti narį" - EDITPERMISSIONS: "Redaguoti kiekvienos grupės leidimus ir IP adresus" GROUPNAME: "Grupės pavadinimas" - IPADDRESSESHELP: | -

    Galite apriboti šios grupės galimų IP adresų diapazoną (intervalas per vieną eilutę).
    Diapazonai gali būti nurodyti bet kuria iš šių formų:
    - 203.96.152.12
    - 203.96.152/24
    - 203.96/16
    - 203 / 8

    Jei įvesite vieną ar daugiau IP adresų diapazonų į šį langelį, prisijungimo teises turės tik tie nariai, kurių išorinis IP adresas pakliūna į vieną iš jūsų nurodytų diapazonų. Tai neuždraudžia prisijungimų apskritai, bet bus apribojamos vartotojų teisės į tam tikras sistemos dalis. MEMBERS: "Nariai" - MENUTITLE: "Saugumas" - NEWGROUP: "Nauja grupė" + MEMBERS: "Nariai" PERMISSIONS: "Leidimai" - SGROUPS: "Saugumo grupės" - VIEWUSER: "Žiūrėti vartotoją" SimpleImageField: NOUPLOAD: "Neįkrauta jokių paveikslėlių" SiteTree: @@ -378,18 +260,13 @@ lt: ISREQUIRED: "%s '%s' yra būtinas." TableField.ss: ADD: "Pridėti naują eilutę" - ADDITEM: "Įtraukti %s" TableListField: CSVEXPORT: "Ekportuoti į CSV" PRINT: "Spausdinti" TableListField.ss: - NOITEMSFOUND: "Nerasta elementų" SORTASC: "Rūšiuoti didėjimo tvarka" SORTDESC: "Rūšiuoti mažėjimo tvarka" TableListField_PageControls.ss: - DISPLAYING: "Rodoma" - OF: "iš" - TO: "į" VIEWFIRST: "Žiūrėti pirmą" VIEWLAST: "Žiūrėti paskutinį" VIEWNEXT: "Žiūrėti sekantį" diff --git a/lang/lv.yml b/lang/lv.yml index d7aeda61b..9c95fcd9e 100644 --- a/lang/lv.yml +++ b/lang/lv.yml @@ -1,10 +1,5 @@ lv: AssetAdmin: - CHOOSEFILE: "Izvēlaties failu:" - MENUTITLE: "Faili un Attēli" - NEWFOLDER: "JaunaMape" - AssetAdmin_left.ss: - GO: "Doties" BBCodeParser: ALIGNEMENT: "Līdzināšana" ALIGNEMENTEXAMPLE: "izlīdzināts pa labi" @@ -38,10 +33,7 @@ lv: ANY: "Jebkurš" NO: "Nē" YES: "Jā" - CMSBatchActions: - PUBLISHED_PAGES: "Publicētas %d lapas, %d kļūdas" CMSMain: - MENUTITLE: "Lapas" SAVE: "Saglabāt" ChangePasswordEmail.ss: CHANGEPASSWORDTEXT1: "Jūs nomainījāt savu paroli " @@ -58,7 +50,6 @@ lv: SUCCESSEDIT: "Saglabāts %s %s %s" ComplexTableField.ss: ADDITEM: "Pievienot %s" - NOITEMSFOUND: "Netika atrasts neviens ieraksts" SORTASC: "Kārtot augoši" SORTDESC: "Kārtot dilstoši" ComplexTableField_popup.ss: @@ -67,21 +58,15 @@ lv: ConfirmedPasswordField: ATLEAST: "Parolēm jābūt vismaz %s simbolu garām." BETWEEN: "Parolēm jābūt %s l'diz %s simbolu garām." - HAVETOMATCH: "Parolēm ir jāsakrīt." - LEASTONE: "Parolēm ir jāsatur vismaz viens cipars un viens burtciparu simbols." MAXIMUM: "Parolēm jābūt līdz %s simbolu garām." - NOEMPTY: "Paroles nedrīkst būt tukšas." SHOWONCLICKTITLE: "Mainīt paroli" CreditCardField: FIRST: "pirmais" FOURTH: "ceturtais" SECOND: "otrais" THIRD: "trešais" - VALIDATIONJS1: "Lūdzu pārliecinieties, ka esiet ievadījuši " - VALIDATIONJS2: "kredītkartes numur pareizi." CurrencyField: CURRENCYSYMBOL: "Ls" - VALIDATIONJS: "Lūduz ievadiet derīgu valūtu." DataObject: PLURALNAME: "Datu Objekti" SINGULARNAME: "Datu Objekts" @@ -102,7 +87,6 @@ lv: DateField: NOTSET: "nav uzstādīts" TODAY: "šodien" - VALIDATIONJS: "Lūdzu ievadiet derīgu datuma formātu (DD/MM/GGGG)." VALIDDATEFORMAT2: "Lūdzu ievadiet derīgu daruma formātu (%s)" VALIDDATEMAXDATE: "Jūsu norādītajam datumam ir jāsakrīt vai jābūt vecākam par maksimāli atļauto datumu (%s)" VALIDDATEMINDATE: "Jūsu datumam ir jāsakrīt vai jābūt jaunākam par minimāli atļauto datumu (%s)" @@ -110,7 +94,6 @@ lv: CHOOSE: "(Izvēlieties)" EmailField: VALIDATION: "Lūdzu ievadiet e-pasta adresi." - VALIDATIONJS: "Lūdzu ievadiet e-pasta adresi." Email_BounceRecord: PLURALNAME: "Atgriezti e-pasta ieraksti" SINGULARNAME: "Atgriezts e-pasta ieraksts" @@ -125,7 +108,6 @@ lv: Name: "Nosaukms" PLURALNAME: "Faili" SINGULARNAME: "Fails" - Sort: "Kārtošanas secība" TOOLARGE: "Faila izmērs ir pārāk liels, māksimāli pieļaujams ir %s ." Title: "Virsraksts" FileIFrameField: @@ -137,22 +119,6 @@ lv: FROMFILESTORE: "No failu glabātuves" NOSOURCE: "Lūdzu izvēlieties avota failu, kuru pievienot" REPLACE: "Aizvietot %s" - FileIFrameField.ss: - TITLE: "Attēlu augšupielādes Iframe rāmis" - Folder: - CREATED: "Pirmoreiz augšupielādēts" - DELSELECTED: "Dzēst izvēlētos failus" - DETAILSTAB: "Parametri" - FILENAME: "Faila nosaukums" - FILESTAB: "Faili" - LASTEDITED: "Pēdējoreiz atjaunots" - PLURALNAME: "Faili" - SINGULARNAME: "Fails" - TITLE: "Virsraksts" - TYPE: "Tips" - UPLOADTAB: "Augšupielāde" - URL: "URL" - VIEWEDITASSET: "Skatīt/Labot palīgfailu" ForgotPasswordEmail.ss: HELLO: "Sveiki" TEXT1: "Šeit ir Jūsu" @@ -175,34 +141,13 @@ lv: DefaultGroupTitleAdministrators: "Administratori" DefaultGroupTitleContentAuthors: "Satura autori" Description: "Apraksts" - IMPORTTABTITLE: "Imports" - IPRestrictions: "IP adreses ierobežojumi" Locked: "Slēgt?" - PLURALNAME: "Grupas" Parent: "Grupas vecāks" - RolesAddEditLink: "Pievienot/labot lomas" - SINGULARNAME: "Grupa" Sort: "Kārtošanas secība" has_many_Permissions: "Atļaujas" many_many_Members: "Dalībnieki" - GroupImportForm: - Help1: "

    Importēt vienu vai vairākas grupas CSV formatā (komatatdalītas vērtības). Rādīt paplašinātu pielietojumu

    " - Help2: | -
    -

    Paplašināts pielietojums

    -
      -
    • Atļautās kolonnas: %s
    • -
    • Katra no esošajām grupām tiek atlasīta pēc tās unikālā Koda vērtības, un tiek atjaunota ar jauno vērtību no importētā faila.
    • -
    • Grupu hierarhijasVecākaKods kolonna.
    • -
    • Piekļuves tiesību kodi var tikt piekārtotiPermissionCode kolonnā. Esošie piekļuves tiesību kodi netiks dzēsti.
    • -
    -
    ResultCreated: "Izveidotas %d grupas" - ResultDeleted: "Dzēstas %d grupas" - ResultUpdated: "Atjauninātas %d grupas" HtmlEditorField: ANCHORVALUE: "Enkurs" - BUTTONINSERTFLASH: "Ievietot Flash" - BUTTONINSERTIMAGE: "Ievietot attēlu" BUTTONINSERTLINK: "Ievietot saiti" BUTTONREMOVELINK: "Noņemt saiti" CAPTIONTEXT: "Virsraksta teksts" @@ -213,7 +158,6 @@ lv: CSSCLASSRIGHT: "Labajā pusē ar tekstu apkārt." EMAIL: "E-pasta adrese" FILE: "Fails" - FLASH: "Flash" FOLDER: "Mape" IMAGE: "Attēls" IMAGEALTTEXT: "Alternatīvais teksts (alt) - būs redzams, kad nebūs iespējams attēlot attēlu" @@ -229,38 +173,16 @@ lv: LINKFILE: "Lejupielādēt failu" LINKINTERNAL: "Vietnes lapa" LINKOPENNEWWIN: "Atvērt saiti jaunā logā?" - LINKTEXT: "Saites teksts" LINKTO: "Saite uz" PAGE: "Lapa" - SEARCHFILENAME: "Meklēt pēc faila nosaukuma" - SHOWUPLOADFORM: "Augšupielādēt failu" URL: "URL" - Image: - PLURALNAME: "Faili" - SINGULARNAME: "Fails" ImageField: IMAGE: "Attēls" - Image_Cached: - PLURALNAME: "Faili" - SINGULARNAME: "Fails" Image_iframe.ss: TITLE: "Attēla augšupielādes iframe bloks" - LeftAndMain: - CANT_REORGANISE: "Jums nav piekļuves tiesības, lai pārkārtotu vietnes koku. Jūs izmaiņas netika saglabātas." - HELP: "Palīdzība" - PAGETYPE: "Lapas tips:" - PERMAGAIN: "Jūs esat atteicies no CMS. Ja jūs vēlaties vēlreiz pieteikties, tad ievadiet zemāk savu lietotājvārdu un paroli." - PERMALREADY: "Atvaino, bet tev nav piekļuves tiesību šai CMS daļai. Ja jūs vēlaties autorizēties kā kāds cits, tad to var izdarīt zemāk" - PERMDEFAULT: "Lai piekļūtu CMS, lūdzu izvēlieties autentificēšanas metodi un ievadiet savus akreditācijas datus." - PLEASESAVE: "Lūdzu saglabājiet lapu: Šo lapu nav iespējams atjaunot, jo tā vēl nav saglabāta." - SAVED: "saglabāts" - LeftAndMain_right.ss: - WELCOMETO: "Laipni lūgti" LoginAttempt: Email: "E-pasta adrese" IP: "IP Adrese" - PLURALNAME: "Pieteikšanās mēģinājumi" - SINGULARNAME: "Pieteikšanās mēģinājums" Status: "Statuss" Member: ADDRESS: "Adreses" @@ -312,95 +234,28 @@ lv: db_PasswordExpiry: "Paroles Termiņa Izbeigšanās Datums" MemberAuthenticator: TITLE: "E-pasts un Parole" - MemberImportForm: - Help1: "

    Importēt lietotājus CSV formātā (komatatdalītas vērtības). Rādīt uzlabotu pielietojumu

    " - Help2: | -
    -

    Paplašināts pielietojums

    -
      -
    • Atļautās kolonnas: %s
    • -
    • Katra no esošajiem lietotājiem tiek atlasīts pēc tā unikālā Koda vērtības, un tiek atjaunots ar jauno vērtību no importētā faila.
    • -
    • Grupas var tikt piekārtotas kolonnā Grupas. Grupas tiek identificētas pēc to parametra Kods, Vairākas grupas var tikt atdalītas ar komatu. Esošās grupas lietotāju tiesības netiks dzēstas.
    • -
    -
    ResultCreated: "Izveidoti %d lietotāji" - ResultDeleted: "Dzēsti %d lietotāji" - ResultNone: "Nav izmaiņas" - ResultUpdated: "Atjaunināti %d lietotāji" - MemberPassword: - PLURALNAME: "Dalībnieku paroles" - SINGULARNAME: "Dalībnieka parole" - MemberTableField: - ADD: "Pievienot" - ADDEDTOGROUP: "Lietotājs pievienots grupai" - ADDINGFIELD: "Pievienošana neizdevās" - DeleteTitleText: "Izdzēst no šīs grupas" - DeleteTitleTextDatabase: "Izdzēst no datubāzes un visām grupām" - ERRORADDINGUSER: "Atgadījusies kļūda pievienojot lietotāju grupai: %s" - FILTER: "Filtrēt" - SEARCH: "Meklēt" - ModelAdmin: - ADDBUTTON: "Pievienot" - ADDFORM: "Lai datubāzei pievienotu %s, aizpildiet šo formu. " - CHOOSE_COLUMNS: "Izvēlēties rezultātu kolonnas..." - CLEAR_SEARCH: "Notīrīt meklēšanas filtru" - CREATEBUTTON: "Izveidot '%s'" - DELETE: "Dzēst" - DELETEDRECORDS: "Dzēsti %s ieraksti." - FOUNDRESULTS: "Atrasti %s jūsu meklēšanas pieprasījumam atbilstoši ieraksti" - IMPORT: "Importēt no CSV" - IMPORTEDRECORDS: "Importēti %s ieraksti." - ITEMNOTFOUND: "Nevaru atrast šo ierakstu" - LOADEDFOREDITING: "'%s' ielādēts labošanai." - NOCSVFILE: "Lūdzu izvēlaties CSV failu, kuru importēt" - NOIMPORT: "Nav ko importēt" - NORESULTS: "Nekas netika atrasts" - SAVE: "Saglabāt" - SEARCHRESULTS: "Meklēšanas rezultāti" - SELECTALL: "izvēlēties visus" - SELECTNONE: "neizvēlēties nevienu" - UPDATEDRECORDS: "Atjaunoti %s ieraksti." MoneyField: FIELDLABELAMOUNT: "Skaits" FIELDLABELCURRENCY: "Valūta" - MyEntity: - MyNamespace: "Mana noklusētās valodas vērtība" - MyNamespace: - MYENTITY: "Saskaita %s lietas" NullableField: IsNullLabel: "Ir Null" NumericField: VALIDATION: "'%s' nav skaitlis, šajā laukā drīkst ievadīt tikai skaitļus" - VALIDATIONJS: "nav skaitlis, šajā laukā atļauts ievadīt tikai skaitļus" - Page: - PLURALNAME: "Lapas" - SINGULARNAME: "Lapa" Permission: AdminGroup: "Administrators" FULLADMINRIGHTS: "Pilnas administratora tiesības" FULLADMINRIGHTS_HELP: "Ietver un pārraksta visas pārējās piesaistītās atļaujas" - PLURALNAME: "Atļaujas" - SINGULARNAME: "Atļauja" PermissionCheckboxSetField: AssignedTo: "piesaistīts \"%s\"" FromGroup: "mantots no grupas \"%s\"" FromRole: "mantots no lomas \"%s\"" FromRoleOnGroup: "mantots no lomas \"%s\" grupā \"%s\"" - PermissionRole: - PLURALNAME: "Lomas" - SINGULARNAME: "Loma" - PermissionRoleCode: - PLURALNAME: "Lomu atļauju kodi" - SINGULARNAME: "Lomas atļaujas kods" Permissions: - PERMISSIONS_CATEGORY: "Lomas un piekļuves tiesības" + PERMISSIONS_CATEGORY: "Lomu un piekļuves atļaujas" PhoneNumberField: VALIDATION: "Lūdzu ievadiet derīgu tālruņa numuru" RelationComplexTableField.ss: ADD: "Pievienot" - CSVEXPORT: "Eksportēt uz CSV" - NOTFOUND: "Nav atrast neviens ieraksts" - ReportAdmin: - MENUTITLE: "Atskaites" Security: ALREADYLOGGEDIN: "Jums nav piekļuves tiesību šai lapai. Ja jums ir izveidots cits konts ar kuru ir iespējams piekļūt šai lapai, tad jūs varat atkārtoti pieslēgties. " BUTTONSEND: "Nosūtīt man paroles atiestatīšanas saiti" @@ -408,41 +263,19 @@ lv: CHANGEPASSWORDHEADER: "Mainīt paroli" ENTERNEWPASSWORD: "Lūdzu ievadiet jaunu paroli." ERRORPASSWORDPERMISSION: "Lai mainītu paroli, Jums ir jāpieslēdzas!" - IPADDRESSES: "IP Adreses" LOGGEDOUT: "Jūs esat atslēdzies. Ja jūs vēlaties vēlreiz pieslēgties, ievadiet zemāk savus datus. " LOGIN: "Pieslēgties" - LOSTPASSWORDHEADER: "Pazudusi Parole" NOTEPAGESECURED: "Šī lapa ir pasargāta. Ievadiet savus autorizācijas datus zemāk un mēs jūs uzreiz nosūtīsim pie lapas apskates" NOTERESETLINKINVALID: "

    Paroles atiestatīšanas saite ir nederīga vai tās termiņš ir iztecējis.

    Jūs varat pieprasīt jaunu šeit vai arī nomainīt paroli pēc tam, kad esiet pieslēgušies.

    " NOTERESETPASSWORD: "Lūdzu ievadiet savu e-pasta adresi un mēs nosūtīsim jums saiti, kas atiestatīs jūsu paroli." PASSWORDSENTHEADER: "Parole atiestatīšanas saite nosūtīta uz '%s'" PASSWORDSENTTEXT: "Paldies! Atiestatīšanas saite ir nosūtīta uz '%s', konts ar norādīto e-pasta adresi eksistē." SecurityAdmin: - ADDMEMBER: "Pievienot lietotāju" - APPLY_ROLES: "Piemērot grupām lomas" - APPLY_ROLES_HELP: "Iespēja labot grupai piekārtotās lomas. Nepieciešamas piekļuves tiesības 'Drošība' sadaļai. " - EDITPERMISSIONS: "Pārvaldīt grupu tiesības" - EDITPERMISSIONS_HELP: "Iespēja labot grupas piekļuves tiesības un IP adreses. Nepieciešamas piekļuves tiesības 'Drošība' sadaļai. " GROUPNAME: "Grupas nosaukums" - IPADDRESSESHELP: | -

    Jūs varat ierobežot grupas noteiktam IP adrešu apgabalam (katrā rindā norādiet vienu apgabalu).
    Apgabalus var norādīt jebkurā no sekojošām formām:
    - 203.96.152.12
    - 203.96.152/24
    - 203.96/16
    - 203/8

    Ja Jūs šajā laukā ievadāt vienu vai vairākus IP adrešu apgabalus, tad lietotāji piederēs šīm grupām tikai tad, ja tie pieslēgsies ar vienu no derīgajām IP adresēm. Tas gan netraucēs lietotājiem pieslēgties sistēmai. Tas ir paredzēts, jo vienam un tam pašam lietotājam var būt vajadzība pieslēgties, lai piekļūtu atsevišķām sistēmas daļām, kurām nav IP adrešu ierobežojumi. MEMBERS: "Lietotāji" - MENUTITLE: "Drošība" - MemberListCaution: "Brīdinājums: Izņemot lietotājus no šī saraksta, tie tiks dzēsti no visām grupām un datubāzes" - NEWGROUP: "Jauna grupa" + MEMBERS: "Lietotāji" PERMISSIONS: "Atļaujas" ROLES: "Lomas" ROLESDESCRIPTION: "Šī sadaļa jums ļauj pievienot šai grupai lomas. Lomas ir loģiskas atļauju grupas, kuras var labot Lomas cilnē" - SGROUPS: "Drošības grupas" - TABIMPORT: "Imports" - TABROLES: "Lomas" - VIEWUSER: "Skatīt lietotāju" - SecurityAdmin_MemberImportForm: - BtnImport: "Importēt" - FileFieldLabel: "CSV fails (Atļautie paplašinājumi: *.csv)" SimpleImageField: NOUPLOAD: "Netika augšupielādēts neviens attēls" SiteTree: @@ -451,19 +284,14 @@ lv: ISREQUIRED: "%s ir nepieciešams '%s'" TableField.ss: ADD: "PIevienot jaunu rindu" - ADDITEM: "Pievienot %s" TableListField: CSVEXPORT: "Eksportēt uz CSV" PRINT: "Drukāt" SELECT: "Izvēlēties:" TableListField.ss: - NOITEMSFOUND: "Nav atrasts neviens ieraksts" SORTASC: "Kārtot augošā secībā" SORTDESC: "Kārtot dilstošā secībā" TableListField_PageControls.ss: - DISPLAYING: "Parādīt" - OF: "no" - TO: "uz" VIEWFIRST: "Skatīt pirmo" VIEWLAST: "Skatīt pēdējo" VIEWNEXT: "Skatīt nākamo" diff --git a/lang/mi_NZ.yml b/lang/mi_NZ.yml index 998aefbb0..7006a287b 100644 --- a/lang/mi_NZ.yml +++ b/lang/mi_NZ.yml @@ -1,8 +1,12 @@ mi_NZ: AssetAdmin: MENUTITLE: "Ngā kōnae me ngā atahanga. " - AssetAdmin_left.ss: - GO: "Haere" + AssetTableField: + DIM: "Nuinga" + OWNER: "Kaiūmanga" + SIZE: "Nuinga" + TITLE: "Ingoa " + TYPE: "Tūmomo " CMSMain: MENUTITLE: "Wāhi kai" SAVE: "tiakina" diff --git a/lang/ml.yml b/lang/ml.yml deleted file mode 100644 index 8972da332..000000000 --- a/lang/ml.yml +++ /dev/null @@ -1,13 +0,0 @@ -ml: - AssetAdmin: - MENUTITLE: "ഫയലുകളും ചിത്രങളും" - Date: - DAYS: "ദിവസങള്‍" - HOUR: "മണിക്കൂര്‍" - HOURS: "മണിക്കൂറുകള്‍" - YEAR: "വര്‍ഷം" - YEARS: "വര്‍ഷങള്‍" - HtmlEditorField: - BUTTONINSERTIMAGE: "ചിത്രം ചേര്‍ക്കുക" - LeftAndMain: - HELP: "സഹായം" diff --git a/lang/mn.yml b/lang/mn.yml deleted file mode 100644 index 83da317d0..000000000 --- a/lang/mn.yml +++ /dev/null @@ -1,18 +0,0 @@ -mn: - AssetAdmin: - MENUTITLE: "Файлууд & Зургууд" - CMSMain: - MENUTITLE: "Сайтын агуулга" - ComplexTableField.ss: - ADDITEM: "Нэмэх" - DropdownField: - CHOOSE: "(Сонго)" - HtmlEditorField: - LeftAndMain: - HELP: "Тусламж" - Member: - EMAIL: "Имэйл" - SUBJECTPASSWORDCHANGED: "Таны нууц үг өөрчлөгдлөө." - SecurityAdmin: - MENUTITLE: "Хамгаалалт" - SiteTree: diff --git a/lang/ms.yml b/lang/ms.yml index 553dfa9c1..6f412f9b0 100644 --- a/lang/ms.yml +++ b/lang/ms.yml @@ -1,10 +1,4 @@ ms: - AssetAdmin: - CHOOSEFILE: "Pilih fail" - MENUTITLE: "Fail-fail & Imej-imej" - NEWFOLDER: "FolderBaru" - AssetAdmin_left.ss: - GO: "Teruskan" BBCodeParser: ALIGNEMENT: "Penjajaran" COLORED: "Teks berwarna" @@ -19,9 +13,6 @@ ms: ENTERINFO: "Maukkan ID pengguna dan katalaluan" ERRORNOTADMIN: "Pengguna ini bukan pentadbir." ERRORNOTREC: "ID pengguna dan katalaluan tidak dikenali" - CMSMain: - MENUTITLE: "Kandungan Laman" - SAVE: "Simpan" ChangePasswordEmail.ss: CHANGEPASSWORDTEXT1: "Anda telah mengubah kata lalaun untuk" CHANGEPASSWORDTEXT2: "Sila gunakan maklumat di bawah untuk mendaftar masuk:" @@ -30,14 +21,12 @@ ms: PASSWORD: "Kata Laluan" ComplexTableField.ss: ADDITEM: "Tambah" - NOITEMSFOUND: "Tiada hasil carian" SORTASC: "Susun secara menaik" SORTDESC: "Susun secara menurun" ComplexTableField_popup.ss: NEXT: "Berikut" PREVIOUS: "Dahulu" ConfirmedPasswordField: - HAVETOMATCH: "Kata laluan mesti sepadan." SHOWONCLICKTITLE: "Tukar Kata Aluan" DataObject: PLURALNAME: "Objek-objek Data" @@ -67,20 +56,6 @@ ms: PLURALNAME: "Fail-fail" SINGULARNAME: "Fail" TOOLARGE: "Saiz fail terlalu besar, %s maksimum dibenarkan" - Folder: - CREATED: "Muatnaik yang pertama" - DELSELECTED: "Hapuskan fail terpilih" - DETAILSTAB: "Keterangan" - FILENAME: "Nama fail" - FILESTAB: "Fail-fail" - LASTEDITED: "Kemaskini terakhir" - PLURALNAME: "Fail-fail" - SINGULARNAME: "Fail" - TITLE: "Tajuk" - TYPE: "Jenis" - UPLOADTAB: "Muatnaik" - URL: "Url" - VIEWEDITASSET: "LIhat/Sunting Aset" ForgotPasswordEmail.ss: HELLO: "Hi" Form: @@ -96,14 +71,10 @@ ms: Group: Code: "Kod Kumpulan" Locked: "Dikuncikan?" - PLURALNAME: "Kumpulan-kumpulan" Parent: "Kumpulan Induk" - SINGULARNAME: "Kumpulan" has_many_Permissions: "Keizinan" many_many_Members: "Ahli-ahli" HtmlEditorField: - BUTTONINSERTFLASH: "Masukkan Flash" - BUTTONINSERTIMAGE: "Masukkan imej" BUTTONINSERTLINK: "Masukkan pautan" BUTTONREMOVELINK: "Hapuskan pautan" CSSCLASS: "Penjajaran / gaya" @@ -112,7 +83,6 @@ ms: CSSCLASSRIGHT: "Di sebelah kanan, dengan kata-kata menyelubungi." EMAIL: "Alamat emel" FILE: "Fail" - FLASH: "Flash" FOLDER: "Fail lipatan" IMAGE: "Imej" IMAGEDIMENSIONS: "Dimensi-dimensi" @@ -128,23 +98,10 @@ ms: LINKTO: "Paut ke" PAGE: "Halaman" URL: "URL" - Image: - PLURALNAME: "Fail-fail" - SINGULARNAME: "Fail" Image_iframe.ss: TITLE: "Iframe untuk memuatnaik imej" - LeftAndMain: - HELP: "Bantuan" - PAGETYPE: "Jenis halaman:" - PERMAGAIN: "Anda telah logout dari CMS. Masukkan id pengguna dan katalaluan di bawah untuk mendaftar masuk semula." - PERMALREADY: "Maaf, " - PERMDEFAULT: "Masukkan alamat Email dan katalaluan untuk menggunakan CMS" - PLEASESAVE: "Sila simpan mukasurat ini. Kemaskini mukasurat hanya boleh berlaku selepas ia disimpan (saved)." - SAVED: "Telah disimpan" LoginAttempt: Email: "Alamat Emel" - PLURALNAME: "Percubaan-percubaan Daftar Masuk" - SINGULARNAME: "Percubaan Daftar Masuk" Member: ADDRESS: "Alamat" BUTTONCHANGEPASSWORD: "Ubah Kata Lalaun" @@ -187,32 +144,14 @@ ms: db_PasswordExpiry: "Tempoh Tamat Kata Lalaun" MemberAuthenticator: TITLE: "Email & katalaluan" - MemberPassword: - PLURALNAME: "Kata-kata kunci Ahli" - SINGULARNAME: "Kata Kunci Ahli" - MemberTableField: - ADD: "Tambah" - ADDEDTOGROUP: "Ahli dimasukkan ke dalam kumpulan" - ADDINGFIELD: "Penambahan gagal" - FILTER: "Saring" - SEARCH: "Cari" - ModelAdmin: - CREATEBUTTON: "Bentukkan '%s'" NumericField: VALIDATION: "'%s' bukan nombor, hanya nombor-nombor boleh diterima untuk medan ini" - Page: - PLURALNAME: "Halaman-halaman" - SINGULARNAME: "Halaman" Permission: FULLADMINRIGHTS: "Hak mutlah pentadbiran" - PLURALNAME: "Kebenaran-kebenaran" - SINGULARNAME: "Kebenaran" PhoneNumberField: VALIDATION: "Sila isikan nombor telefon yang sah" RelationComplexTableField.ss: ADD: "Tambah" - ReportAdmin: - MENUTITLE: "Laporan-laporan" Security: ALREADYLOGGEDIN: "Anda tidak mempunyai kebenaran untuk mencapai mukasurat ini. Jika anda mempunyai akaun lain dengan kebenaran yang deperlukan, sila daftar masuk di bawah." BUTTONSEND: "Hantar pautan penukaran katalaluan kepada saya" @@ -221,17 +160,10 @@ ms: ENTERNEWPASSWORD: "Masukkan kata laluan yang baru" ERRORPASSWORDPERMISSION: "Anda perlu didaftarkan masuk untuk menukar katalaluan." LOGGEDOUT: "Anda telah mendaftar keluar. Untuk mendaftar masuk semula, masukkan maklumat yang diperlukan di bawah." - LOSTPASSWORDHEADER: "Hilang Kata Lalaun" NOTEPAGESECURED: "Halaman ini adalah halaman berkeselamatan tinggi. Masukkan maklumat yang deperlukan sebelum meneruskan capaian. " NOTERESETPASSWORD: "Masukkan alamat emel dan kami akan hantar pautan untuk menukar kata laluan anda." PASSWORDSENTHEADER: "Pautan penukaran kata laluan telah dihantar ke '%s'" PASSWORDSENTTEXT: "Terima kasih! Pautan penukaran kata laluan telah dihantar ke '%s'" - SecurityAdmin: - ADDMEMBER: "Tambah Ahli" - EDITPERMISSIONS: "Alamat IP dan keizinan menyunting setiap kumpulan" - MENUTITLE: "Sekuriti" - NEWGROUP: "Kumpulan Baru" - SGROUPS: "Kumpulan sekuriti" SimpleImageField: NOUPLOAD: "Tiada imej dimuat naikkan" SiteTree: @@ -240,8 +172,6 @@ ms: ISREQUIRED: "'%s' diperlukan dalam %s." TableField.ss: TableListField_PageControls.ss: - DISPLAYING: "Memaparkan" - TO: "ke" VIEWFIRST: "Lihat pertama" VIEWLAST: "Lihat terakhir" VIEWNEXT: "Lihat berikut" diff --git a/lang/nb.yml b/lang/nb.yml index 1db94fcbb..e869b9d8a 100644 --- a/lang/nb.yml +++ b/lang/nb.yml @@ -1,10 +1,4 @@ nb: - AssetAdmin: - CHOOSEFILE: "Velg fil" - MENUTITLE: "Filer & Bilder" - NEWFOLDER: "Ny Mappe" - AssetAdmin_left.ss: - GO: "Utfør" BBCodeParser: ALIGNEMENT: "Stilling" ALIGNEMENTEXAMPLE: "Stilt til høyre" @@ -35,7 +29,6 @@ nb: ERRORNOTADMIN: "Denne brukeren er ikke administrator." ERRORNOTREC: "Det brukernavnet / Passord er ikke gjenkjent" CMSMain: - MENUTITLE: "Innhold" SAVE: "Lagre" ChangePasswordEmail.ss: CHANGEPASSWORDTEXT1: "Du har byttet passordet for" @@ -44,12 +37,11 @@ nb: HELLO: "Hei" PASSWORD: "Passord" ComplexTableField: - CLOSEPOPUP: "Lukk pop-up" - SUCCESSADD: "La til %s %s %s" + CLOSEPOPUP: "Lukk Popup" + SUCCESSADD: "Lagt til %s %s %s" SUCCESSEDIT: "Lagret %s %s %s" ComplexTableField.ss: ADDITEM: "Legg til %s" - NOITEMSFOUND: "Ingen elementer funnet" SORTASC: "Sorter stigende" SORTDESC: "Sorter fallende" ComplexTableField_popup.ss: @@ -58,21 +50,15 @@ nb: ConfirmedPasswordField: ATLEAST: "Passord må ha minst %s bokstaver." BETWEEN: "Passord må være mellom %s og %s bokstaver." - HAVETOMATCH: "Passordet må stemme overens." - LEASTONE: "Passord må ha minst en bokstav og et tall." MAXIMUM: "Passord kan ikke være lenger enn %s bokstaver." - NOEMPTY: "Passordet kan ikke være blankt." SHOWONCLICKTITLE: "Endre Passord" CreditCardField: FIRST: "første" FOURTH: "fjerde" SECOND: "andre" THIRD: "tredje" - VALIDATIONJS1: "Vennligst se etter at du har skrevet" - VALIDATIONJS2: "kredittkortnummeret riktig." CurrencyField: CURRENCYSYMBOL: "$" - VALIDATIONJS: "Vennligst oppgi en gyldig valuta." DataObject: PLURALNAME: "Data Objekter" SINGULARNAME: "Data Objekt" @@ -93,12 +79,10 @@ nb: DateField: NOTSET: "mangler" TODAY: "i dag" - VALIDATIONJS: "Vennligst skriv inn et gyldig datoformat (DD/MM/YYYY)." DropdownField: CHOOSE: "(Velg)" EmailField: VALIDATION: "Vennligst legg inn en gyldig epost adresse." - VALIDATIONJS: "Vennligst oppgi e-postadresse" File: Content: "Innhold" Filename: "Filnavn" @@ -107,23 +91,8 @@ nb: Name: "Navn" PLURALNAME: "Filer" SINGULARNAME: "Fil" - Sort: "Sorteringsrekkefølge" TOOLARGE: "Filen er for stor, maks% er tillatt" Title: "Tittel" - Folder: - CREATED: "Første gang lastet opp" - DELSELECTED: "Slett valgte filer" - DETAILSTAB: "Detaljer" - FILENAME: "Filnavn" - FILESTAB: "Filer" - LASTEDITED: "Sist oppdatert" - PLURALNAME: "Filer" - SINGULARNAME: "Fil" - TITLE: "Tittel" - TYPE: "Type" - UPLOADTAB: "Last opp" - URL: "URL" - VIEWEDITASSET: "Vis/endre ressurs" ForgotPasswordEmail.ss: HELLO: "Hei" TEXT1: "Her er din" @@ -144,18 +113,13 @@ nb: Group: Code: "Gruppe Kode" Description: "Beskrivelse" - IPRestrictions: "IP Adresse begrensning" Locked: "Låst?" - PLURALNAME: "Grupper" Parent: "Foreldre Gruppe" - SINGULARNAME: "Gruppe" Sort: "Sorteringsrekkefølge" has_many_Permissions: "Tillatelser" many_many_Members: "Medlemmer" HtmlEditorField: ANCHORVALUE: "Lenke" - BUTTONINSERTFLASH: "Sett inn Flash" - BUTTONINSERTIMAGE: "sett inn bilde" BUTTONINSERTLINK: "Sett inn lenke" BUTTONREMOVELINK: "Fjern lenke" CSSCLASS: "Stille opp / stil" @@ -165,7 +129,6 @@ nb: CSSCLASSRIGHT: "På høyde side, med tekst rundt." EMAIL: "Epost adresse" FILE: "Fil" - FLASH: "Sett inn flash" FOLDER: "Mappe" IMAGE: "Sett inn bilde" IMAGEDIMENSIONS: "Dimensjoner" @@ -179,32 +142,14 @@ nb: LINKFILE: "Last ned en fil" LINKINTERNAL: "Sider på nettstedet" LINKOPENNEWWIN: "Åpne lenken i nytt vindu?" - LINKTEXT: "Lenketekst" LINKTO: "Lenk til" PAGE: "Side" - SEARCHFILENAME: "Søk ved filnavn" URL: "URL" - Image: - PLURALNAME: "Filer" - SINGULARNAME: "Fil" - Image_Cached: - PLURALNAME: "Filer" - SINGULARNAME: "Fil" Image_iframe.ss: TITLE: "Bildeopplasnings ramme" - LeftAndMain: - HELP: "Hjelp" - PAGETYPE: "Side-type" - PERMAGAIN: "Du har blirr logget ut av kontrollpanelet. Hvis du vil logge inn igjen, skriv inn brukernavn og passord nedenunder." - PERMALREADY: "Beklager, men du har ikke adgang til denne delen av kontrollpanelet. Hvis du vil logge inn med en annen konto, venligst gjør det nedenunder" - PERMDEFAULT: "Skriv inn e-postadresse og passord for å få tilgang til CMSet" - PLEASESAVE: "Venligst Lagre Siden: Denne siden kunne ikke oppdateres grunnet at den ikke har blitt lagret enda." - SAVED: "lagret" LoginAttempt: Email: "Epostadresse" IP: "IP adresse" - PLURALNAME: "Innloggingsforsøkene" - SINGULARNAME: "Innloggingsforsøk" Status: "Status" Member: ADDRESS: "Adresse" @@ -252,58 +197,14 @@ nb: db_PasswordExpiry: "Passord utløpsdato" MemberAuthenticator: TITLE: "Epost & Passord" - MemberPassword: - PLURALNAME: "Medlems Passord" - SINGULARNAME: "Medlems Passord" - MemberTableField: - ADD: "Legg til" - ADDEDTOGROUP: "Legg til medlem i gruppen" - ADDINGFIELD: "Legg til feilet" - FILTER: "Filtrer" - SEARCH: "Søk" - ModelAdmin: - ADDBUTTON: "Legg til" - ADDFORM: "Fyll ut skjemaet for å legge en %s til databasen" - CHOOSE_COLUMNS: "Velg resultat kolonner..." - CLEAR_SEARCH: "Tøm søk" - CREATEBUTTON: "Opprett" - DELETE: "Slett" - DELETEDRECORDS: "Slettet %s elementer." - FOUNDRESULTS: "Ditt søk fikk %s treff" - IMPORT: "Importer fra CSV" - IMPORTEDRECORDS: "Importerte %s oppføringer." - ITEMNOTFOUND: "Finner ikke oppføringen" - LOADEDFOREDITING: "Hentet '%s' for redigering." - NOCSVFILE: "Vennligst " - NOIMPORT: "Ingenting å importere" - NORESULTS: "Ditt søk hadde ingen treff" - SAVE: "Lagre" - SEARCHRESULTS: "Søkeresultat" - SELECTALL: "velg alt" - SELECTNONE: "velg ingen" - UPDATEDRECORDS: "Oppdaterte %s elementer." - MyEntity: - MyNamespace: "Mitt naturlige hovedspråk" - MyNamespace: - MYENTITY: "Telle %s ting" NumericField: VALIDATION: "'%s' er ikke et tall, bare tall blir akseptert i dette feltet" - VALIDATIONJS: "er ikke et nummer, bare nummer blir akseptert i dette feltet." - Page: - PLURALNAME: "Sider" - SINGULARNAME: "Side" Permission: FULLADMINRIGHTS: "Fulle administrative rettigheter" - PLURALNAME: "Tillatelser" - SINGULARNAME: "Tillatelse" PhoneNumberField: VALIDATION: "Vennligst skriv inn et gyldig tlf nummer" RelationComplexTableField.ss: ADD: "Legg til" - CSVEXPORT: "Eksporter til CSV" - NOTFOUND: "Ingen elementer funnet" - ReportAdmin: - MENUTITLE: "Rapporter" Security: ALREADYLOGGEDIN: "Du har ikke adgang til denne siden. Hvis du har en annen konto som har adgang til denne siden, kan du logge inn med den under." BUTTONSEND: "Send meg lenke for å gi nytt passord" @@ -311,27 +212,17 @@ nb: CHANGEPASSWORDHEADER: "Bytt ditt passord" ENTERNEWPASSWORD: "Venligst tast inn nytt passord." ERRORPASSWORDPERMISSION: "Du må logge inn for å bytte passord." - IPADDRESSES: "IP adresser" LOGGEDOUT: "Du har blitt logget ut. Hvis du vil logge inn igjen, så vennligst gjør det under." LOGIN: "Logg inn" - LOSTPASSWORDHEADER: "Mistet Passord" NOTEPAGESECURED: "Den siden er sikret. Skriv inn gyldig innloggingsinfo så kommer du inn." NOTERESETLINKINVALID: "

    Denne passord-resetter-lenken er ødelagt eller utgått.

    Du kan få en ny på her eller endre ditt passord etter at du har logget inn.

    " NOTERESETPASSWORD: "Skriv inn din epost adresse og vi vil sende deg en lenke som resetter passordet ditt." PASSWORDSENTHEADER: "Lenke for å gi nytt passord sendt til '%s'" PASSWORDSENTTEXT: "Takk skal du ha! Passordet har blirr sendt til '%s'." SecurityAdmin: - ADDMEMBER: "Legg til medlem" - EDITPERMISSIONS: "Rediger tilgang og IP adresser i hver gruppe" GROUPNAME: "Gruppenavn" - IPADDRESSESHELP: | -

    Du kan sette restriksjoner på denne gruppen mot en rekke IP adresser (en per linje).
    Adressene kan registreres på følgene måter:
    203.96.152.12
    203.96.152/24
    203.96/16
    - 203/8

    Hvis du skriver inn en eller flere ip adresser i dette feltet, vil medlemene kun få rettighetene til denne gruppen ved at de logger på deres respektive IP adresser. Dette er på grunn av at samme bruker kan ha bruk for å logge inn på deler av systemet uten IP adresse restriksjoner. MEMBERS: "Medlemmer" - MENUTITLE: "Sikkerhet" - NEWGROUP: "Ny gruppe" + MEMBERS: "Medlemmer" PERMISSIONS: "Tilganger" - SGROUPS: "Sikkerhetsgrupper" - VIEWUSER: "Vis bruker" SimpleImageField: NOUPLOAD: "Ingen Bilder Lastet Opp" SiteTree: @@ -344,13 +235,10 @@ nb: CSVEXPORT: "Eksporter til CSV" PRINT: "Skriv ut" TableListField_PageControls.ss: - DISPLAYING: "Viser" - OF: "av" - TO: "til" - VIEWFIRST: "Vis først" - VIEWLAST: "Vis sist" - VIEWNEXT: "Vis neste" - VIEWPREVIOUS: "Vis forrige" + VIEWFIRST: "Se første" + VIEWLAST: "Se siste" + VIEWNEXT: "Se neste" + VIEWPREVIOUS: "Se forrige" ToggleCompositeField.ss: HIDE: "Skjul" SHOW: "Vis" diff --git a/lang/ne.yml b/lang/ne.yml index 061af4e84..73f752f4c 100644 --- a/lang/ne.yml +++ b/lang/ne.yml @@ -1,24 +1,14 @@ ne: - AssetAdmin: - CHOOSEFILE: "फाइल छान्नुहोस्" - MENUTITLE: "फाइल र तस्बिरहरु" - NEWFOLDER: "नयाँ फोल्डर" - AssetAdmin_left.ss: - GO: "जाउ" BasicAuth: ENTERINFO: "कृपया एउता प्रयोगकता नाम र पासओड हल्नुहोस्" ERRORNOTADMIN: "यो प्रयोगकता मुख्य प्रयोगकता होइन" ERRORNOTREC: "त्यो प्रयोगकता / पासओड बुझन् सकिएन" - CMSMain: - MENUTITLE: "साईट सामाग्री" - SAVE: "सेभ गर्नुस्" ChangePasswordEmail.ss: CHANGEPASSWORDTEXT1: "तपाईंले आफनो पासओड यसका लागि परिवतन गर्नु भयो " CHANGEPASSWORDTEXT2: "दिएको विवरण अनुसार भित्र जान सक्नुहुन्छ :" HELLO: "हाई" ComplexTableField.ss: ADDITEM: "थप्" - NOITEMSFOUND: "कुनै पनि सामाग्री भेटिएन्" SORTASC: "बढ्दो क्रमाङ्कन " SORTDESC: "घट्दो क्रमाङ्कन " ComplexTableField_popup.ss: @@ -54,8 +44,6 @@ ne: VALIDATIONSTRONGPASSWORD: "पासओडमा कम्तिमा पनि एउटा अक्छेर र एउटा अंक हुनुपर्दछ" VALIDCURRENCY: "कृपया मिलने पैसा लेखनुहोस्" HtmlEditorField: - BUTTONINSERTFLASH: "फ्लश हाल" - BUTTONINSERTIMAGE: "तस्बिर हाल" BUTTONINSERTLINK: "लिन्क राखनुहोस्" BUTTONREMOVELINK: "लिन्क हटाउनुहोस्" CSSCLASS: "समरेखिन / स्टाईल" @@ -64,7 +52,6 @@ ne: CSSCLASSRIGHT: "दाँयामा, टेक्स राप गरियोस्" EMAIL: "ईमेल ठेगाना " FILE: "फाइल" - FLASH: "फाल्स् हाल्नुहोस्" FOLDER: "फोल्डर" IMAGE: "तस्बिर हाल्नुहोस्" IMAGEDIMENSIONS: "आयाम" @@ -82,14 +69,6 @@ ne: URL: "यू.र्.ल् " Image_iframe.ss: TITLE: "तस्बिर उप्लोओद गर्ने Iफ्रमे" - LeftAndMain: - HELP: "सहयोग" - PAGETYPE: "पेज किसिम:" - PERMAGAIN: "तपाईं CMS बहिर आउनुभएको छ । यदी तपाईं फेरि भित्र जान चाहानुहुन्छ भने,आफ्नो प्रयोगकता नाम र पासओड तल लेखनुहोस् ।" - PERMALREADY: "मफ गर्दिनुस्,तपाईंले CMS को त्यो भाग चलाउन पाउनुहुन्न । यदी तपाईं अरु कोही भएर भित्र जान चाहानुहुन्छ भने,त्यो तल गरनुस्" - PERMDEFAULT: "कृपया एउटा authentication method छन्नुस् र CMS भित्र जान आफ्नो विवरण लेखनुहोस् । " - PLEASESAVE: "कृपया पेज सेभ गरनुस् : यो पेज उप्डेट गर्न सकिएन किनकि यो पेज अहिले सम्म सेभ गरिएकौ छैन ।" - SAVED: "सेभ गरियो" Member: ADDRESS: "ठेगाना" BUTTONCHANGEPASSWORD: "पासओड परिवर्तन गर्नुहोस् " @@ -124,9 +103,6 @@ ne: YOUROLDPASSWORD: "तपाईंको पुरानो पासओड" MemberAuthenticator: TITLE: "ईमेल & पासओड" - MemberTableField: - ADD: "थप" - ADDEDTOGROUP: "समुहमा कार्यकर्ता हालियो " NumericField: VALIDATION: "'%s' नम्बर होइन, नम्बर मात्र यो ठाउँमा हाल्न मिल्छ " PhoneNumberField: @@ -139,16 +115,10 @@ ne: ENTERNEWPASSWORD: "कृपया नयाँ पासओड लेखनुहोस्" ERRORPASSWORDPERMISSION: "तपाईंले आफ्नो पासओड परिवर्तन गर्न चाहानुहुन्छ भन्ने तपाईं भित्र जानु भएको हुनुपर्छ ।" LOGGEDOUT: "तपाईं बहिर निकलिनुभएको छ । यदि तपाईं फेरि भित्र जाने हो भन्ने, आफ्नो विवरण तल लेखनुहोस् । " - LOSTPASSWORDHEADER: "पासओड हरायो" NOTEPAGESECURED: "त्यो पजे सुरक्षा छ । तपाईंको विवरण लेखनुहोस् अनी हामि तपाईंलाई भित्र पठाउनेछौ । " NOTERESETPASSWORD: "तपाईंको ईमेल ठेगाना लेखनुहोस् र हामि तपाईंलाई पासओड पुनर्स्थापना लिक पठाउनेछौ " PASSWORDSENTHEADER: "पासओड पुनर्स्थापना लिक '%s' मा पठाइएको छ " PASSWORDSENTTEXT: "धन्यवाद ! पासओड पुनर्स्थापना लिक '%s' मा पठाइएको छ ।" - SecurityAdmin: - ADDMEMBER: "कार्यकर्ता थप" - MENUTITLE: "सुरक्षा" - NEWGROUP: "नयाँ समुह" - SGROUPS: "सुरक्षा समुह" SimpleImageField: NOUPLOAD: "कुनै पनि तस्बिर उप्लोओद गरिएको छैन " SiteTree: diff --git a/lang/nl.yml b/lang/nl.yml index c20afb85c..f3b726769 100644 --- a/lang/nl.yml +++ b/lang/nl.yml @@ -1,10 +1,17 @@ nl: AssetAdmin: - CHOOSEFILE: "Kies een bestand " MENUTITLE: "Bestanden en foto's" NEWFOLDER: "Nieuwe Map" - AssetAdmin_left.ss: - GO: "Doen" + AssetTableField: + CREATED: "Eerste upload" + DIM: "Dimensies" + FILENAME: "Bestandsnaam" + LASTEDIT: "Laatste wijziging" + OWNER: "Eigenaar" + SIZE: "Grootte" + TITLE: "Titel" + TYPE: "Type" + URL: "URL" BBCodeParser: ALIGNEMENT: "Uitlijning" ALIGNEMENTEXAMPLE: "rechts uitgelijnd" @@ -38,9 +45,10 @@ nl: ANY: "Elke" NO: "Nee" YES: "Ja" - CMSBatchActions: - PUBLISHED_PAGES: "%d pagina's gepubliceerd" CMSMain: + ACCESS: "Toegang tot '%s'" + ACCESSALLINTERFACES: "Toegang tot alle CMS onderdelen" + ACCESSALLINTERFACESHELP: "Overstemt meer specifieke toegangsinstellingen" MENUTITLE: "Pagina Inhoud" SAVE: "Bewaar" ChangePasswordEmail.ss: @@ -58,7 +66,6 @@ nl: SUCCESSEDIT: "%s %s %s Opgeslagen" ComplexTableField.ss: ADDITEM: "Voeg %s toe" - NOITEMSFOUND: "Geen items gevonden" SORTASC: "Sorteer oplopend" SORTDESC: "Sorteer aflopend" ComplexTableField_popup.ss: @@ -67,21 +74,15 @@ nl: ConfirmedPasswordField: ATLEAST: "Paswoorden moeten tenminste %s karakters lang zijn." BETWEEN: "Paswoorden moeten tussen de %s en %s karakters lang zijn." - HAVETOMATCH: "Paswoorden moeten overeenkomen." - LEASTONE: "Paswoorden moeten bestaan uit minstens één cijfer en één alfanumeriek karakter." MAXIMUM: "Paswoorden mogen niet meer dan %s karakters lang zijn." - NOEMPTY: "Paswoordvelden mogen niet leeg zijn." SHOWONCLICKTITLE: "Verander wachtwoord" CreditCardField: FIRST: "eerste" FOURTH: "vierde" SECOND: "tweede" THIRD: "derde" - VALIDATIONJS1: "Zorg er voor dat je de " - VALIDATIONJS2: "kaartnummer correct" CurrencyField: CURRENCYSYMBOL: "$" - VALIDATIONJS: "Gelieve geldige valuta in te geven" DataObject: PLURALNAME: "Gegeven Objecten" SINGULARNAME: "Gegeven Object" @@ -102,7 +103,6 @@ nl: DateField: NOTSET: "niet ingesteld" TODAY: "vandaag" - VALIDATIONJS: "Gelieve een geldig datum formaat (DD-MM-JJJJ) in te geven." VALIDDATEFORMAT2: "Vul een gelding datum format (%s) in" VALIDDATEMAXDATE: "De datum moet vroeger of gelijk zijn aan de laatst toegestane datum (%s)" VALIDDATEMINDATE: "De datum moet later of gelijk zijn aan de vroegst toegestane datum (%s)" @@ -110,7 +110,6 @@ nl: CHOOSE: "(Kies)" EmailField: VALIDATION: "Voer a.u.b. een emailadres in." - VALIDATIONJS: "Gelieve een email adres in te voeren." Email_BounceRecord: PLURALNAME: "Onbezorgbare emails" SINGULARNAME: "Onbezorgbare email" @@ -125,7 +124,6 @@ nl: Name: "Naam" PLURALNAME: "Bestanden" SINGULARNAME: "Bestand" - Sort: "Sorteer-richting" TOOLARGE: "Bestand is te groot, het maximum dat is toegestaan is %s" Title: "Titel " FileIFrameField: @@ -137,22 +135,6 @@ nl: FROMFILESTORE: "Vanaf de website's bestandsopslag" NOSOURCE: "Selecteer een bron bestand om toe te voegen" REPLACE: "Vervang %s" - FileIFrameField.ss: - TITLE: "Afbeelding Upload Iframe" - Folder: - CREATED: "Eerste geuploade" - DELSELECTED: "Verwijder geselecteerde bestanden" - DETAILSTAB: "Details" - FILENAME: "Bestandsnaam" - FILESTAB: "Bestanden" - LASTEDITED: "Laatst gewijzigd" - PLURALNAME: "Bestanden" - SINGULARNAME: "Bestand" - TITLE: "Titel" - TYPE: "Type" - UPLOADTAB: "Uploaden" - URL: "URL" - VIEWEDITASSET: "Bekijk/Bewerk Bestand" ForgotPasswordEmail.ss: HELLO: "Hallo" TEXT1: "Hier is uw" @@ -175,13 +157,9 @@ nl: DefaultGroupTitleAdministrators: "Beheerders" DefaultGroupTitleContentAuthors: "Inhoud Auteurs" Description: "Omschrijving " - IMPORTTABTITLE: "Importeer" - IPRestrictions: "IP-adres beperkingen" Locked: "Gesloten?" - PLURALNAME: "Groepen" Parent: "Bovenliggende groep" RolesAddEditLink: "Toevoegen/wijzigingen rollen" - SINGULARNAME: "Groep" Sort: "Sorteer-richting" has_many_Permissions: "Rechten" many_many_Members: "Lid" @@ -196,13 +174,12 @@ nl:

  • Groep hiërarchieën kunnen aangemaakt worden met behulp van een ParentCode kolom.
  • Toegangsrechten kunnen worden toegekend met de PermissionCode kolom. Bestaande toegangsrechten worden niet gewist.
  • - ResultCreated: "%d groepen aangemaakt" + + ResultCreated: "%d groepen aangemaakt" ResultDeleted: "%d groepen verwijderd" ResultUpdated: "%d groepen aangepast" HtmlEditorField: ANCHORVALUE: "Anker" - BUTTONINSERTFLASH: "Invoegen Flash" - BUTTONINSERTIMAGE: "Afbeelding toevoegen" BUTTONINSERTLINK: "Link invoegen" BUTTONREMOVELINK: "Link verwijderen" CAPTIONTEXT: "Onderschrift" @@ -211,10 +188,10 @@ nl: CSSCLASSLEFT: "Aan de linkerkant, met tekst eromheen." CSSCLASSLEFTALONE: | Links, losstaand. - CSSCLASSRIGHT: "Aan de rechterkant, met tekst eromheen." + + CSSCLASSRIGHT: "Aan de rechterkant, met tekst eromheen." EMAIL: "Emailadres" FILE: "Bestand" - FLASH: "Flash" FOLDER: "Map" IMAGE: "Afbeelding" IMAGEALTTEXT: "Alternatieve tekst (alt tekst) - wordt getoond als de afbeelding niet kan worden geladen" @@ -230,20 +207,11 @@ nl: LINKFILE: "Een bestand downloaden" LINKINTERNAL: "Pagina op deze site" LINKOPENNEWWIN: "Link in een nieuw venster openen?" - LINKTEXT: "Tekst van de link" LINKTO: "Verwijs naar" PAGE: "Pagina" - SEARCHFILENAME: "Zoeken op bestandsnaam" - SHOWUPLOADFORM: "Bestand Uploaden" URL: "URL" - Image: - PLURALNAME: "Bestanden" - SINGULARNAME: "Bestand" ImageField: IMAGE: "Afbeelding" - Image_Cached: - PLURALNAME: "Bestanden" - SINGULARNAME: "Bestand" Image_iframe.ss: TITLE: "Afbeelding uploaden" LeftAndMain: @@ -255,13 +223,9 @@ nl: PERMDEFAULT: "Geef uw e-mailadres en wachtwoord voor toegang tot het CMS." PLEASESAVE: "Deze pagina kon niet bijgewerkt worden, omdat deze nog niet is bewaard." SAVED: "bewaard" - LeftAndMain_right.ss: - WELCOMETO: "Welkom bij" LoginAttempt: Email: "Email adres " IP: "IP Adres" - PLURALNAME: "Inlog pogingen" - SINGULARNAME: "Inlog poging" Status: "Status" Member: ADDRESS: "Adres" @@ -325,83 +289,42 @@ nl: - ResultCreated: "%d leden toegevoegd" + + ResultCreated: "%d leden toegevoegd" ResultDeleted: "%d leden verwijderd" ResultNone: "Geen wijzingen" ResultUpdated: "%d leden aangepast" - MemberPassword: - PLURALNAME: "Gebruikerswachtwoorden" - SINGULARNAME: "Gebruikerswachtwoord" - MemberTableField: - ADD: "Toevoegen" - ADDEDTOGROUP: "Lid toegevoegd aan groep" - ADDINGFIELD: "Toevoegen mislukt" - DeleteTitleText: "Verwijder uit deze groep" - DeleteTitleTextDatabase: "Verwijder uit database en alle groepen" - ERRORADDINGUSER: "Fout bij het toewijzen van de gebruiker aan de group : %s" - FILTER: "Filter" - SEARCH: "Zoeken" ModelAdmin: - ADDBUTTON: "Toevoegen" - ADDFORM: "Vul dit formulier in voor het toevoegen van %s aan de database." - CHOOSE_COLUMNS: "Selecteer kolommen met resultaat ..." - CLEAR_SEARCH: "Zoek opschonen" - CREATEBUTTON: "Creëer '%s'" DELETE: "Verwijderen" DELETEDRECORDS: "%s Verwijderde resultaten." - FOUNDRESULTS: "Uw zoekopdracht heeft %s overeenkomende objecten gevonden" IMPORT: "Importeren vanuit CSV" IMPORTEDRECORDS: "%s Geïmporteerde resultaten." - ITEMNOTFOUND: "Ik kan dat object niet vinden" - LOADEDFOREDITING: "'%s' Geladen voor bewerking." NOCSVFILE: "Selecteer een CSV bestand op uw computer om te importeren" NOIMPORT: "Niks om te importeren" - NORESULTS: "Uw zoekopdracht heeft geen resultaten opgeleverd" - SAVE: "Opslaan" - SEARCHRESULTS: "Zoekresultaten" - SELECTALL: "selecteer alles" - SELECTNONE: "selecteer niets" UPDATEDRECORDS: "%s Geüpdate resultaten." MoneyField: FIELDLABELAMOUNT: "Aantal" FIELDLABELCURRENCY: "Valuta" - MyEntity: - MyNamespace: "Mijn taal instelling" - MyNamespace: - MYENTITY: "Telt %s onderdelen" NullableField: IsNullLabel: "is nul" NumericField: VALIDATION: "'%s' is geen cijfer, alleen cijfers worden geaccepteerd voor dit veld" - VALIDATIONJS: "is geen nummer, alleen nummers zijn toegelaten in dit veld" - Page: - PLURALNAME: "Pagina's" - SINGULARNAME: "Pagina" Permission: AdminGroup: "Beheerder" + CMS_ACCESS_CATEGORY: "CMS Toegang" FULLADMINRIGHTS: "Volledige admin rechten" FULLADMINRIGHTS_HELP: "Impliceert en overstemt alle andere toegewezen rechten." - PLURALNAME: "Machtigingen" - SINGULARNAME: "Machtiging" PermissionCheckboxSetField: AssignedTo: "toegewezen aan \"%s\"" FromGroup: "geërfd van groep \"%s\"" FromRole: "geërfd van rol \"%s\"" FromRoleOnGroup: "geërfd van rol \"%s\" in groep \"%s\"" - PermissionRole: - PLURALNAME: "Rollen" - SINGULARNAME: "Rol" - PermissionRoleCode: - PLURALNAME: "Rechten Rol Codes" - SINGULARNAME: "Rechten Rol Code" Permissions: PERMISSIONS_CATEGORY: "Rollen en toegangsrechten" PhoneNumberField: VALIDATION: "Voer een geldig telefoonnummer in" RelationComplexTableField.ss: ADD: "Toevoegen" - CSVEXPORT: "Exporteren naar CSV" - NOTFOUND: "Geen items gevonden" ReportAdmin: MENUTITLE: "Verslagen" Security: @@ -411,38 +334,28 @@ nl: CHANGEPASSWORDHEADER: "Verander Uw wachtwoord" ENTERNEWPASSWORD: "Voer een nieuw wachtwoord in." ERRORPASSWORDPERMISSION: "U moet ingelogd zijn om Uw wachtwoord te kunnen veranderen!" - IPADDRESSES: "IP Adressen" LOGGEDOUT: "U bent uitgelogd. Als U weer wilt inloggen kunt U Uw gegevens hier beneden invoeren." LOGIN: "Meld aan" - LOSTPASSWORDHEADER: "Wachtwoord verloren" NOTEPAGESECURED: "Deze pagina is beveiligd. Voer Uw gegevens in en U wordt automatisch doorgestuurd." NOTERESETLINKINVALID: "

    De link naar de wachtwoord-resetpagina is onjuist of vervallen.

    U kunt hier een nieuwe link aanvragen of uw wachtwoord wijzigen nadat u bent ingelogd.

    " NOTERESETPASSWORD: "Voer Uw emailadres in en we zenden U een link waarmee U Uw wachtwoord opnieuw kunt aanmaken" PASSWORDSENTHEADER: "Link om Uw wachtwoord opnieuw aan te maken is verstuurd naar '%s'" PASSWORDSENTTEXT: "Bedankt! De link om je wachtwoord opnieuw in te stellen is verstuurd naar '%s'." SecurityAdmin: - ADDMEMBER: "Lid toevoegen" + ACCESS_HELP: "Bevoegdheid voor bekijken, toevoegen en bewerken van leden, en toewijzen van rechten en rollen aan hen." APPLY_ROLES: "Pas rollen toe aan groepen" APPLY_ROLES_HELP: "Bewerkingsmogelijkheid van rollen voor groepen. Heeft rechten voor \"Beveiligingsectie\" nodig." EDITPERMISSIONS: "Bewerk rechten en IP-adressen bij elke groep" EDITPERMISSIONS_HELP: "Bewerkingsmogelijkheid van Rechten en IP adressen voor groepen. Heeft rechten voor \"Beveiligingsectie\" nodig." GROUPNAME: "Groep naam" - IPADDRESSESHELP: | -

    U kunt deze groep beperken tot een bepaalt bereik IP-adressen (één bereik per regel).
    Een IP-adres man in elk van de volgende vormen genoteerd worden:
    - 203.96.152.12
    - 203.96.152/24
    - 203.96/16
    - 203 / 8

    Als u één of meer IP-adres reeksen in dit vak invult, dan zullen alleen de leden rechten krijgen in deze groep als ze zich aanmelden bij een van de geldige IP-adressen. Het zal niet voorkomen dat mensen inloggen. Dit is omdat dezelfde gebruiker misschien in moet loggen om toegang te krijgen tot onderdelen van het systeem zonder IP adres restricties. MEMBERS: "Leden" + MEMBERS: "Leden" MENUTITLE: "Beveiliging" MemberListCaution: "Let op: Verwijderen van leden van deze lijst heeft als gevolg dat deze uit alle groepen en de database worden verwijderd" NEWGROUP: "Nieuwe Groep" PERMISSIONS: "Rechten" ROLES: "Rollen" ROLESDESCRIPTION: "In deze sectie kan je rollen toevoegen aan deze groep. Rollen zijn logische groeperingen van rechten die in het Rollen tapblad gewijzigd kunnen worden." - SGROUPS: "Beveiligingsgroepen" - TABIMPORT: "Importeer" TABROLES: "Rollen" - VIEWUSER: "Bekijk Lid" SecurityAdmin_MemberImportForm: BtnImport: "Importeer" FileFieldLabel: "CSV Bestand (Toegestane extensies: *.csv)" @@ -454,19 +367,14 @@ nl: ISREQUIRED: "Bij %s is '%s' verplicht." TableField.ss: ADD: "Nieuwe rij toevoegen" - ADDITEM: "Voeg %s toe" TableListField: CSVEXPORT: "Exporteer naar CSV" PRINT: "Afdrukken" SELECT: "Selecteer:" TableListField.ss: - NOITEMSFOUND: "Geen items gevonden" SORTASC: "Sorteer in oplopende volgorde" SORTDESC: "Sorteer in aflopende volgorde" TableListField_PageControls.ss: - DISPLAYING: "Toont" - OF: "of" - TO: "naar" VIEWFIRST: "Bekijk eerste" VIEWLAST: "Bekijk laatste" VIEWNEXT: "Bekijk volgende" diff --git a/lang/pa.yml b/lang/pa.yml index d4a833073..cb74d3bea 100644 --- a/lang/pa.yml +++ b/lang/pa.yml @@ -1,24 +1,14 @@ pa: - AssetAdmin: - CHOOSEFILE: "ਫਾਈਲ ਚੁਣੋੋੋੋ" - MENUTITLE: "ਫਾਈਲਾਂ ਅਤੇ ਤਸਵੀਰਾਂ" - NEWFOLDER: "ਨਵਾਂ ਫੋਲਡਰ" - AssetAdmin_left.ss: - GO: "ਜਾਓ" BasicAuth: ENTERINFO: "ਿਕ੍ਰਪਾ ਕਰਕੇ ਇੱਕ username ਅਤੇ password ਪਾਉ" ERRORNOTADMIN: "ਇਹ user ਪ੍ਰਬੰਧਕ ਨਹੀ ਹੈ।" ERRORNOTREC: "That username / password isn't recognised" - CMSMain: - MENUTITLE: "ਸਾਈਟ ਸਮਾਨ" - SAVE: "ਬਚਾ" ChangePasswordEmail.ss: CHANGEPASSWORDTEXT1: "ਤੁਸੀ ਆਪਣਾ ਪਾਸਵਰਡ ਬਦਲਿਆ ਖਾਤਰ" CHANGEPASSWORDTEXT2: "You can now use the following credentials to log in:" HELLO: "ਹਾਏ" ComplexTableField.ss: ADDITEM: "ਜੋੜ ੋ " - NOITEMSFOUND: "ਕੋਈ ਚੀਜ਼ ਨਹੀ ਿਮਲੀ" SORTASC: "Sort ascending" SORTDESC: "Sort descending" ComplexTableField_popup.ss: @@ -54,8 +44,6 @@ pa: VALIDATIONSTRONGPASSWORD: "Passwords must have at least one digit and one alphanumeric character." VALIDCURRENCY: "ਿਕ੍ਰਪਾ ਕਰਕੇ ਇੱਕ ਸਹੀ ੰਕਰੰਸੀ ਪਾਉ।" HtmlEditorField: - BUTTONINSERTFLASH: "ਫਲੈਸ਼ ਪਾਉ" - BUTTONINSERTIMAGE: "ਫੋਟੋ ਪਾਉ" BUTTONINSERTLINK: "ਿਲੰਕ ਪਾਉ" BUTTONREMOVELINK: "ਿਲੰਕ ਕੱਟੋਂ" CSSCLASS: "Alignment / style" @@ -64,7 +52,6 @@ pa: CSSCLASSRIGHT: "On the right, with text wrapping around." EMAIL: "ਈਮੇਲ ਪਤਾ" FILE: "ਫਾਈਲ" - FLASH: "ਫਲੈਸ਼ ਪਾਉ" FOLDER: "ਫੋਲਡਰ" IMAGE: "ਫੋਟੋ ਪਾਉ" IMAGEDIMENSIONS: "Dimensions" @@ -82,14 +69,6 @@ pa: URL: "URL" Image_iframe.ss: TITLE: "Image Uploading Iframe" - LeftAndMain: - HELP: "ਮੱਦਦ " - PAGETYPE: "ਪੰਨੇ ਦੀ ਿਕਸਮ" - PERMAGAIN: "You have been logged out of the CMS. If you would like to log in again, enter a username and password below." - PERMALREADY: "I'm sorry, but you can't access that part of the CMS. If you want to log in as someone else, do so below" - PERMDEFAULT: "Please choose an authentication method and enter your credentials to access the CMS." - PLEASESAVE: "Please Save Page: This page could not be upated because it hasn't been saved" - SAVED: "ਬਚਾਿੲਆ" Member: ADDRESS: "ਪਤਾ " BUTTONCHANGEPASSWORD: "ਤਬਦੀਲ Password" @@ -124,9 +103,6 @@ pa: YOUROLDPASSWORD: "ਤੁਹਾਡਾ ਪੁਰਾਣਾ password" MemberAuthenticator: TITLE: "ਈਮੇਲ & " - MemberTableField: - ADD: "ਜੋੜ ੋ " - ADDEDTOGROUP: "ਮੈਂਬਰ ਗਰੁੱਪ ਿਵੱਚ ਜੋਿੜਆ" NumericField: VALIDATION: "'%s' is not a number, only numbers can be accepted for this field" PhoneNumberField: @@ -139,16 +115,10 @@ pa: ENTERNEWPASSWORD: "ਿਕ੍ਰਪਾ ਕਰਕੇ ਇੱਕ ਨਵਾਂ password ਪਾਉ।" ERRORPASSWORDPERMISSION: "You must be logged in in order to change your password!" LOGGEDOUT: "You have been logged out. If you would like to log in again, enter your credentials below." - LOSTPASSWORDHEADER: "Password ਗੁਆਿਚਆ" NOTEPAGESECURED: "That page is secured. Enter your credentials below and we will send you right along." NOTERESETPASSWORD: "Enter your e-mail address and we will send you a link with which you can reset your password" PASSWORDSENTHEADER: "Password reset link sent to '%s'" PASSWORDSENTTEXT: "Thank you! The password reset link has been sent to '%s'." - SecurityAdmin: - ADDMEMBER: "ਮੈਂਬਰ ਜੋੜੋ" - MENUTITLE: "ਸੁਰੱਿਖਆ" - NEWGROUP: "ਨਵਾਂ ਗਰੁੱਪ " - SGROUPS: "ਸੁਰੱਿਖਆ ਗਰੁੱਪ " SimpleImageField: NOUPLOAD: "ਕੋਈ ਫੋਟੋ ਅੱਪਲੋਡ ਨਹੀ ਹੋਈ" SiteTree: diff --git a/lang/pl.yml b/lang/pl.yml index 0e9c44929..d426513e1 100644 --- a/lang/pl.yml +++ b/lang/pl.yml @@ -1,10 +1,5 @@ pl: AssetAdmin: - CHOOSEFILE: "Wybierz plik" - MENUTITLE: "Pliki i Obrazy" - NEWFOLDER: "Nowy Folder" - AssetAdmin_left.ss: - GO: "Ok" BBCodeParser: ALIGNEMENT: "Wyrównanie" ALIGNEMENTEXAMPLE: "wyrównany w prawo" @@ -38,10 +33,7 @@ pl: ANY: "Jakikolwiek" NO: "Nie" YES: "Tak" - CMSBatchActions: - PUBLISHED_PAGES: "Opublikowano %d stron, %d nieudanych publikacji" CMSMain: - MENUTITLE: "Zawartość Strony" SAVE: "Zapisz" ChangePasswordEmail.ss: CHANGEPASSWORDTEXT1: "Zmieniłeś hasło na" @@ -58,7 +50,6 @@ pl: SUCCESSEDIT: "Zapisano %s %s %s" ComplexTableField.ss: ADDITEM: "Dodaj %s" - NOITEMSFOUND: "Brak znalezionych pozycji" SORTASC: "Sortuj rosnąco" SORTDESC: "Sortuj malejąco" ComplexTableField_popup.ss: @@ -67,21 +58,15 @@ pl: ConfirmedPasswordField: ATLEAST: "Hasła muszą mieć co najmniej %s znaków." BETWEEN: "Hasła muszą mieć długość od %s do %s znaków. " - HAVETOMATCH: "Hasła muszą się zgadzać." - LEASTONE: "Hasła muszą zawierać co najmniej jedną cyfrę i jeden znak alfanumeryczny." MAXIMUM: "Hasła muszą mieć co najwyżej %s znaków." - NOEMPTY: "Hasła nie mogą być puste." SHOWONCLICKTITLE: "Zmiana Hasła" CreditCardField: FIRST: "pierwszy" FOURTH: "czwarty" SECOND: "drugi" THIRD: "trzeci" - VALIDATIONJS1: "Upewnij się, że wpisałeś" - VALIDATIONJS2: "numer karty kredytowej poprawnie." CurrencyField: CURRENCYSYMBOL: "$" - VALIDATIONJS: "Wpisz poprawną wartość walutową." Date: DAY: "dzień" DAYS: "dni" @@ -99,12 +84,10 @@ pl: DateField: NOTSET: "nie ustawiono" TODAY: "dzisiaj" - VALIDATIONJS: "Wpisz poprawną datę (DD-MM-RRRR)." DropdownField: CHOOSE: "(wybierz)" EmailField: VALIDATION: "Wprowadź adres e-mail" - VALIDATIONJS: "Wpisz adres e-mail." File: Content: "Zawartość" Filename: "Nazwa pliku" @@ -113,27 +96,12 @@ pl: Name: "Nazwa" PLURALNAME: "Pliki" SINGULARNAME: "Plik" - Sort: "Kolejność sortowania" TOOLARGE: "Rozmiar pliku jest zbyt duży, maksymalny dozwolony to %s." Title: "Tytuł" FileIFrameField: DELETE: "Usuń %s" FILE: "Plik" NOSOURCE: "Wybierz źródło pliku do załaczenia" - Folder: - CREATED: "Wysłane jako pierwsze" - DELSELECTED: "Usuń zaznaczone pliki" - DETAILSTAB: "Szczegóły" - FILENAME: "Nazwa pliku" - FILESTAB: "Pliki" - LASTEDITED: "Wysłane jako ostatnie" - PLURALNAME: "Pliki" - SINGULARNAME: "Plik" - TITLE: "Tytuł" - TYPE: "Typ" - UPLOADTAB: "Wyślij" - URL: "URL" - VIEWEDITASSET: "Zobacz/Edytuj Obiekt" ForgotPasswordEmail.ss: HELLO: "Cześć" TEXT1: "Oto twój" @@ -156,24 +124,13 @@ pl: DefaultGroupTitleAdministrators: "Administratorzy" DefaultGroupTitleContentAuthors: "Autor treści" Description: "Opis" - IMPORTTABTITLE: "Importuj" - IPRestrictions: "Niedozwolone Adresy IP" Locked: "Zablokowana?" - PLURALNAME: "Grupy" Parent: "Grupa nadrzędna" - RolesAddEditLink: "Dodaj/edytuj role" - SINGULARNAME: "Grupa" Sort: "Kolejność Sortowania" has_many_Permissions: "Zezwolenia" many_many_Members: "Członkowie" - GroupImportForm: - ResultCreated: "Utworzono %d grup" - ResultDeleted: "Usunięto %d grup" - ResultUpdated: "Zaktualizowano %d grup" HtmlEditorField: ANCHORVALUE: "Odnośnik" - BUTTONINSERTFLASH: "Wstaw animację Flash" - BUTTONINSERTIMAGE: "Wstaw obraz" BUTTONINSERTLINK: "Wstaw link" BUTTONREMOVELINK: "Zmień link" CSSCLASS: "Wyrównanie/styl" @@ -183,7 +140,6 @@ pl: CSSCLASSRIGHT: "Tekst po prawej" EMAIL: "Adres e-mail" FILE: "Plik" - FLASH: "Wstaw flash" FOLDER: "Folder" IMAGE: "Wstaw obraz" IMAGEDIMENSIONS: "Rozmiar" @@ -197,38 +153,16 @@ pl: LINKFILE: "Pobierz plik" LINKINTERNAL: "Strona na tej witrynie" LINKOPENNEWWIN: "Otworzyć link w nowym oknie?" - LINKTEXT: "Treść hiperłącza" LINKTO: "Linkuj do" PAGE: "Strona" - SEARCHFILENAME: "Wyszukiwanie po nazwie pliku" - SHOWUPLOADFORM: "Udostępnij plik" URL: "URL" - Image: - PLURALNAME: "Pliki" - SINGULARNAME: "Plik" ImageField: IMAGE: "Obraz" - Image_Cached: - PLURALNAME: "Pliki" - SINGULARNAME: "Plik" Image_iframe.ss: TITLE: "Ładowanie Zdjęć (Iframe)" - LeftAndMain: - CANT_REORGANISE: "Nie masz uprawnień do zmiany drzewa witryny. Twoje zmiany nie zostaną zapisane." - HELP: "Pomoc" - PAGETYPE: "Rodzaj strony:" - PERMAGAIN: "Zostałeś wylogowany z CMSa. Jeśli chcesz zalogować się ponownie, wpisz username i hasło poniżej" - PERMALREADY: "Niestety nie masz dostępu do tej części CMS. Jeśli chcesz zaloguj się jako inny użytkownik poniżej." - PERMDEFAULT: "Proszę wybrać metodę identyfikacji i wpisać swoje dane, aby uruchomić CMSa." - PLEASESAVE: "Proszę zapisać stronę: Ta strona nie może być nadpisana ponieważ nie została jeszcze zapisana." - SAVED: "zapisane" - LeftAndMain_right.ss: - WELCOMETO: "Witamy na " LoginAttempt: Email: "Adres E-mail" IP: "Adres IP" - PLURALNAME: "Próby Logowania" - SINGULARNAME: "Próba Logowania" Status: "Status" Member: ADDRESS: "Adres" @@ -277,42 +211,6 @@ pl: db_PasswordExpiry: "Data wygaśnięcia hasła" MemberAuthenticator: TITLE: "E-mail i Hasło" - MemberImportForm: - ResultCreated: "Utworzono %d użytkowników" - ResultDeleted: "Usunięto %d użytkowników" - ResultNone: "Bez zmian" - ResultUpdated: "Uaktualniono %d użytkowników" - MemberPassword: - PLURALNAME: "Hasła Użytkowników" - SINGULARNAME: "Hasło Użytkownika" - MemberTableField: - ADD: "Dodaj" - ADDEDTOGROUP: "Dodaj użytkownika do grupy" - ADDINGFIELD: "Dodawanie zakończone niepowodzeniem" - ERRORADDINGUSER: "Wystąpił błąd w trakcie dodawania użytkownika do grupy: %s" - FILTER: "Filtr" - SEARCH: "Szukaj" - ModelAdmin: - ADDBUTTON: "Dodaj" - ADDFORM: "Wypełnij formularz aby dodać %s do bazy danych" - CHOOSE_COLUMNS: "Wybierz kolumny wyniku..." - CLEAR_SEARCH: "Wyczyść Wyszukiwanie" - CREATEBUTTON: "Stwórz '%s'" - DELETE: "Usuń" - DELETEDRECORDS: "Usunięto %s rekordów." - FOUNDRESULTS: "Twoje wyszukiwanie zwróciło %s wyników" - IMPORT: "Importuj z CSV" - IMPORTEDRECORDS: "Zaimportowano %s rekordów." - ITEMNOTFOUND: "Nie mogę znaleźć tego elementu" - LOADEDFOREDITING: "Załadowano '%s' do edycji" - NOCSVFILE: "Wybierz plik CSV do zaimportowania" - NOIMPORT: "Nie ma niczego do zaimportowania" - NORESULTS: "Twoje wyszukiwanie nie zwróciło żadnych wyników" - SAVE: "Zapisz" - SEARCHRESULTS: "Wyniki wyszukiwania" - SELECTALL: "wybierz wszystko" - SELECTNONE: "odznacz wszystko" - UPDATEDRECORDS: "Poprawiono %s rekordów." MoneyField: FIELDLABELAMOUNT: "Ilość" FIELDLABELCURRENCY: "waluta" @@ -320,34 +218,22 @@ pl: IsNullLabel: "Jest Pusty" NumericField: VALIDATION: "'%s' nie jest liczbą, tylko liczby są akceptowane przez to pole" - VALIDATIONJS: "nie jest liczbą, jedynie liczby są akceptowane dla tego pola" - Page: - PLURALNAME: "Strony" - SINGULARNAME: "Strona" Permission: AdminGroup: "Administrator" FULLADMINRIGHTS: "Pełne prawa administracyjne" FULLADMINRIGHTS_HELP: "Zatwierdza i nadpisuje wszystkie istniejące uprawnienia" - PLURALNAME: "Zezwolenia" - SINGULARNAME: "Zezwolenie" PermissionCheckboxSetField: FromGroup: | odziedziczone z grupy "%s" - FromRole: "odziedziczone z roli \"%s\"" + + FromRole: "odziedziczone z roli \"%s\"" FromRoleOnGroup: "odziedziczone z roli \"%s\" w grupie \"%s\"" - PermissionRole: - PLURALNAME: "Role" - SINGULARNAME: "Rola" Permissions: PERMISSIONS_CATEGORY: "Uprawnienia ról i dostępu" PhoneNumberField: VALIDATION: "Wprowadź poprawny numer telefonu" RelationComplexTableField.ss: ADD: "Dodaj" - CSVEXPORT: "Eksportuj do CSV" - NOTFOUND: "Nie znaleziono żadnych obiektów" - ReportAdmin: - MENUTITLE: "Raporty" Security: ALREADYLOGGEDIN: "Nie masz dostępu do tej strony. Jeśli posiadasz inne konto, które umożliwi Ci dostęp do tej strony, możesz się zalogować poniżej" BUTTONSEND: "Wyślij mi link do zresetowania hasła" @@ -355,38 +241,18 @@ pl: CHANGEPASSWORDHEADER: "Zmień swoje hasło" ENTERNEWPASSWORD: "Proszę wprowadż nowe hasło" ERRORPASSWORDPERMISSION: "Musisz być zalogowany aby zmienić hasło" - IPADDRESSES: "Adresy IP" LOGGEDOUT: "Zostałeś wylogowany. Jeśli chcesz się zalogować ponownie wpisz dane poniżej" LOGIN: "Logowanie" - LOSTPASSWORDHEADER: "Zapomniałeś hasła" NOTEPAGESECURED: "Ta strona jest zabezpieczona. Wpisz swoje dane a my wyślemy Ci potwierdzenie niebawem" NOTERESETPASSWORD: "Wpisz adres e-mail, na który mamy wysłać link gdzie możesz zresetować swoje hasło" PASSWORDSENTHEADER: "Link do zresetowania hasła '%s'" PASSWORDSENTTEXT: "Dziękujemy! Nowy link do hasła został wysłany do '%s\"" SecurityAdmin: - ADDMEMBER: "Dodaj użytkownika" - APPLY_ROLES: "Zatwierdź role dla grupy" - APPLY_ROLES_HELP: "Zdolność edycji ról przypisanych do grup. Wymaga uprawnienia \"Dostęp do sekcji 'Bezpieczeństwo' \"" - EDITPERMISSIONS: "Edytuj zezwolenia i adresy IP dla każdej z grup" GROUPNAME: "Nazwa Grupy" - IPADDRESSESHELP: | -

    Możesz zawęzić tą grupę dla pewnych określonych adresów IP. Wpisuj jeden zakres na linię. Zakresy mogą być podane w jednej z czterech poniższych form:
    - 203.96.152.12
    - 203.96.152/24
    - 203.96/16
    - 203/8

    Jeśli wpiszesz jeden lub więcej adresów w to pole, użytkownicy otrzymają prawa związane z członkostwem w tej grupie jedynie w wypadku, w którym zalogują się z jednego z poprawnych adresów IP. Nie uniemożliwia to logowania. Jest to spowodowane faktem, że użytkownik może usiłować uzyskać dostęp do części nie posiadających restrykcji IP. MEMBERS: "Użytkownicy" - MENUTITLE: "Bezpieczeństwo" - MemberListCaution: "Uwaga: Usunięcie użytkowników z tej listy spowoduję również usunięcie ich ze wszystkich grup oraz z bazy danych" - NEWGROUP: "Nowa grupa" + MEMBERS: "Użytkownicy" PERMISSIONS: "Zezwolenia" ROLES: "Role" ROLESDESCRIPTION: "Sekcja umożliwia dodanie ról do grupy. Role są logicznie uporządkowanymi uprawnieniami, które można edytować w zakładce Role" - SGROUPS: "Grupa bezpieczeństwa" - TABIMPORT: "Import" - TABROLES: "Role" - VIEWUSER: "Zobacz Użytkownika" - SecurityAdmin_MemberImportForm: - BtnImport: "Import" SimpleImageField: NOUPLOAD: "Nie wgrano zdjęć" SiteTree: @@ -395,22 +261,17 @@ pl: ISREQUIRED: "W %s '%s' jest wymagane" TableField.ss: ADD: "Dodaj nowy rząd" - ADDITEM: "Dodaj %s" TableListField: CSVEXPORT: "Eksportuj do CSV" PRINT: "Drukuj" TableListField.ss: - NOITEMSFOUND: "Nie znaleziono elementów" - SORTASC: "Posortuj w porządku rosnącym" - SORTDESC: "Posortuj w porządku malejącym" + SORTASC: "Sortuj w porządku rosnącym" + SORTDESC: "Sortuj w porządku malejącym" TableListField_PageControls.ss: - DISPLAYING: "Wyświetlane" - OF: "z" - TO: "do" - VIEWFIRST: "Zobacz pierwszy" - VIEWLAST: "Zobacz ostatni" - VIEWNEXT: "Zobacz następny" - VIEWPREVIOUS: "Zobacz poprzedni" + VIEWFIRST: "Zobacz pierwsze" + VIEWLAST: "Zobacz ostatnie" + VIEWNEXT: "Zobacz następne" + VIEWPREVIOUS: "Zobacz poprzednie" ToggleCompositeField.ss: HIDE: "Ukryj" SHOW: "Pokaż" diff --git a/lang/pt.yml b/lang/pt.yml index cbfa37881..e2526421e 100644 --- a/lang/pt.yml +++ b/lang/pt.yml @@ -1,10 +1,4 @@ pt: - AssetAdmin: - CHOOSEFILE: "Escolha ficheiro " - MENUTITLE: "Ficheiros & imagens" - NEWFOLDER: "Nova Pasta" - AssetAdmin_left.ss: - GO: "Ir" BBCodeParser: ALIGNEMENT: "Alinhamento" ALIGNEMENTEXAMPLE: "Alinhado à direita" @@ -26,11 +20,8 @@ pt: ANY: "Qualquer" NO: "Não" YES: "Sim" - CMSBatchActions: - PUBLISHED_PAGES: "Publicadas %d páginas, %d falhas" CMSMain: - MENUTITLE: "Conteúdos do site" - SAVE: "Gravar" + SAVE: "Guardar" ChangePasswordEmail.ss: CHANGEPASSWORDTEXT1: "Modificou a sua password para" CHANGEPASSWORDTEXT2: "Pode utilizar agora as seguintes credenciais para se autenticar:" @@ -41,12 +32,11 @@ pt: NO: "Não" YES: "Sim" ComplexTableField: - CLOSEPOPUP: "Fechar janela" - SUCCESSADD: "Adicionado %s %s %s" + CLOSEPOPUP: "Fechar Janela" + SUCCESSADD: "Adicionado %s %s %s" SUCCESSEDIT: "Guardado %s %s %s" ComplexTableField.ss: ADDITEM: "Adicionar %s" - NOITEMSFOUND: "Nenhum item encontrado" SORTASC: "Ordenar ascendente" SORTDESC: "Ordenar descendente" ComplexTableField_popup.ss: @@ -55,18 +45,13 @@ pt: ConfirmedPasswordField: ATLEAST: "As passwords devem ter pelo menos %s caracteres." BETWEEN: "As passwords devem ter entre %s e %s caracteres." - HAVETOMATCH: "As passwords têm de ser idênticas." - LEASTONE: "As passwords devem ter pelo menos um dígito e uma letra." MAXIMUM: "As passwords podem ter no máximo %s caracteres." - NOEMPTY: "As passwords não podem ser nulas." SHOWONCLICKTITLE: "Mudar password" CreditCardField: FIRST: "primeiro" FOURTH: "quarto" SECOND: "segundo" THIRD: "terceiro" - VALIDATIONJS1: "Por favor verifique se inseriu" - VALIDATIONJS2: "o numero de cartão de crédito correctamente." DataObject: PLURALNAME: "Objectos de Dados" SINGULARNAME: "Objecto de Dados" @@ -87,13 +72,11 @@ pt: DateField: NOTSET: "Não inserido" TODAY: "Hoje" - VALIDATIONJS: "Insira uma data no formato correcto (DD-MM-AAAA)" VALIDDATEFORMAT2: "Por favor insira a data num formato válido (%s)" DropdownField: CHOOSE: "(Escolha)" EmailField: VALIDATION: "Por favor insira um endereço de email." - VALIDATIONJS: "Por favor insira um endereço de e-mail válido." Enum: ANY: "Qualquer" File: @@ -105,7 +88,6 @@ pt: Name: "Nome" PLURALNAME: "Ficheiros" SINGULARNAME: "Ficheiro" - Sort: "Ordem de ordenação" TOOLARGE: "O tamanho do ficheiro é demasiado grande, o máximo permitido é %s." Title: "Título" FileIFrameField: @@ -116,17 +98,6 @@ pt: FROMCOMPUTER: "Do computador" FROMFILESTORE: "Do Sistema de Ficheiros" REPLACE: "Substituir %s" - Folder: - DELSELECTED: "Apagar os ficheiros seleccionados" - DETAILSTAB: "Detalhes" - FILENAME: "Nome do Ficheiro" - FILESTAB: "Ficheiros" - PLURALNAME: "Ficheiros" - SINGULARNAME: "Ficheiro" - TITLE: "Título" - TYPE: "Tipo" - UPLOADTAB: "Enviar" - URL: "Endereço" ForgotPasswordEmail.ss: HELLO: "Olá" TEXT1: "Este é o seu" @@ -148,21 +119,12 @@ pt: DefaultGroupTitleAdministrators: "Administradores" DefaultGroupTitleContentAuthors: "Autores de Conteúdo" Description: "Descrição" - IMPORTTABTITLE: "Importar" - IPRestrictions: "Restrições de Endereços IP" Locked: "Fechado?" - PLURALNAME: "Grupos" Parent: "Grupo pai" - RolesAddEditLink: "Adicionar / editar permissões" - SINGULARNAME: "Grupo" Sort: "Ordem de ordenação" has_many_Permissions: "Permissões" many_many_Members: "Membros" - GroupImportForm: - ResultUpdated: "Actualizados %d grupos" HtmlEditorField: - BUTTONINSERTFLASH: "Inserir Flash" - BUTTONINSERTIMAGE: "Inserir imagem" BUTTONINSERTLINK: "Inserir link" BUTTONREMOVELINK: "Remover link" CSSCLASS: "Alinhamento / estilo" @@ -171,7 +133,6 @@ pt: CSSCLASSRIGHT: "Na direita, com texto envolvido." EMAIL: "Endereço email" FILE: "Ficheiro" - FLASH: "Inserir flash" FOLDER: "Pasta" IMAGE: "Inserir imagem" IMAGEDIMENSIONS: "Dimensões" @@ -184,36 +145,14 @@ pt: LINKFILE: "Descarregar ficheiro" LINKINTERNAL: "Página no site" LINKOPENNEWWIN: "Abrir link noutra janela?" - LINKTEXT: "Texto da ligação" LINKTO: "Link para" PAGE: "Página" - SEARCHFILENAME: "Procurar por nome do ficheiro" - SHOWUPLOADFORM: "Carregar Ficheiro" URL: "URL" - Image: - PLURALNAME: "Ficheiros" - SINGULARNAME: "Ficheiro" - Image_Cached: - PLURALNAME: "Ficheiros" - SINGULARNAME: "Ficheiro" Image_iframe.ss: TITLE: "Iframe de envio de Imagem" - LeftAndMain: - CANT_REORGANISE: "Não tens permissões para alterar o a estrutura de páginas. A alteração não foi guardada." - HELP: "Ajuda" - PAGETYPE: "Tipo de página: " - PERMAGAIN: "Saiu do CMS. Se se deseja autenticar novamente insira as suas credenciais abaixo." - PERMALREADY: "Desculpe, mas, não tem acesso a esta funcionalidade do CMS. Se se deseja autenticar com outras credenciais faça-o abaixo" - PERMDEFAULT: "Insira o seu endereço de email e password para aceder ao CMS." - PLEASESAVE: "Por favor, grave a página: Esta página não pode ser actualizada porque ainda não foi gravada." - SAVED: "gravado" - LeftAndMain_right.ss: - WELCOMETO: "Bem vindo a" LoginAttempt: Email: "Endereço de Email" IP: "Endereço IP" - PLURALNAME: "Tentativas de login" - SINGULARNAME: "Tentativas de login" Status: "Estado" Member: ADDRESS: "Morada" @@ -263,72 +202,24 @@ pt: db_PasswordExpiry: "Data de expiração da password" MemberAuthenticator: TITLE: "Email e Password" - MemberPassword: - PLURALNAME: "Passwords de membros" - SINGULARNAME: "Password do Membro" - MemberTableField: - ADD: "Adicionar" - ADDEDTOGROUP: "Membro adicionado ao grupo" - ADDINGFIELD: "Falha ao adicionar" - DeleteTitleText: "Apagar deste grupo" - DeleteTitleTextDatabase: "Apagar da base de dados e de todos os grupos" - ERRORADDINGUSER: "Houve um erro ao adicionar o utilizador ao grupo: %s" - FILTER: "Filtro" - SEARCH: "Pesquisar" - ModelAdmin: - ADDBUTTON: "Adicionar" - ADDFORM: "Preencha o formulário para adicionar o %s à base de dados" - CHOOSE_COLUMNS: "Seleccionar colunas" - CLEAR_SEARCH: "Limpar pesquisa" - CREATEBUTTON: "Criar '%s'" - DELETE: "Apagar" - DELETEDRECORDS: "Apagados %s registos" - FOUNDRESULTS: "A pesquisa encontrou %s registos" - IMPORT: "Importar de CSV" - IMPORTEDRECORDS: "Importados %s registos." - ITEMNOTFOUND: "Item não encontrado" - LOADEDFOREDITING: "Carregado '%s' para editar" - NOCSVFILE: "Por favor escolha um ficheiro CSV para importar" - NOIMPORT: "Nada para importar" - NORESULTS: "Sem resultados" - SAVE: "Guardar" - SEARCHRESULTS: "Resultados da pesquisa" - SELECTALL: "seleccionar todos" - SELECTNONE: "nenhum seleccionado" - UPDATEDRECORDS: "Actualizados %s registos." - MyEntity: - MyNamespace: "A minha língua por omissão" NullableField: IsNullLabel: "é Vazio" NumericField: VALIDATION: "'%s' não é um número, apenas números podem ser inseridos neste campo" - VALIDATIONJS: "não corresponde a um número, apenas números são aceites para este campo." - Page: - PLURALNAME: "Páginas" - SINGULARNAME: "Página" Permission: AdminGroup: "Administrador" FULLADMINRIGHTS: "Direitos de Administrador" - PLURALNAME: "Permissões" - SINGULARNAME: "Permissão" PermissionCheckboxSetField: AssignedTo: "atribuído a \"%s\"" FromGroup: "herdada do grupo \"%s\"" FromRole: "herdada da regra \"%s\"" FromRoleOnGroup: "herdada da regra \"%s\" no grupo \"%s\"" - PermissionRole: - PLURALNAME: "Regras" - SINGULARNAME: "Regra" Permissions: PERMISSIONS_CATEGORY: "Regras e permissões de acesso" PhoneNumberField: VALIDATION: "Por favor insira um número de telefone válido" RelationComplexTableField.ss: ADD: "Adicionar" - CSVEXPORT: "Exportar para CSV" - NOTFOUND: "Não encontrado" - ReportAdmin: - MENUTITLE: "Relatórios" Security: ALREADYLOGGEDIN: "Não tem acesso a esta página. Se tem outras credenciais que lhe permitem aceder a esta página, pode-se autenticar abaixo." BUTTONSEND: "Enviar o link para recuperar a password" @@ -336,25 +227,17 @@ pt: CHANGEPASSWORDHEADER: "Mudar a password" ENTERNEWPASSWORD: "Por favor insira uma nova password." ERRORPASSWORDPERMISSION: "Tem de estar autenticado para poder alterar a sua password!" - IPADDRESSES: "Endereço de IP" LOGGEDOUT: "Terminou a autenticação. Se se deseja autenticar novamente insira as suas credenciais abaixo." LOGIN: "Log in" - LOSTPASSWORDHEADER: "Password Perdida" NOTEPAGESECURED: "Esta página é privada. Insira as suas credenciais abaixo para a visualizar." NOTERESETPASSWORD: "Insira o seu endereço de email, e será enviado um link que poderá utilizar para recuperar a sua password" PASSWORDSENTHEADER: "Link de recuperação da password enviado para '%s'" PASSWORDSENTTEXT: "Obrigado!, O link de recuperação da password foi enviado para '%s'." SecurityAdmin: - ADDMEMBER: "Adicionar Membro" - EDITPERMISSIONS: "Editar permissões e endereços IP de cada grupo" GROUPNAME: "Nome do Grupo" MEMBERS: "Membros" - MENUTITLE: "Segurança" - NEWGROUP: "Novo Grupo" PERMISSIONS: "Permissões" ROLES: "Regras" - SGROUPS: "Grupos de segurança" - VIEWUSER: "Ver Utilizador" SimpleImageField: NOUPLOAD: "Nenhuma imagem enviada" SiteTree: @@ -363,19 +246,14 @@ pt: ISREQUIRED: "No %s '%s' é obrigatório." TableField.ss: ADD: "Adicionar nova linha" - ADDITEM: "Adicionar %s" TableListField: CSVEXPORT: "Exportar para CSV" PRINT: "Imprimir" SELECT: "Escolha:" TableListField.ss: - NOITEMSFOUND: "Nenhum item encontrado" SORTASC: "Ordenar por ordem crescente" SORTDESC: "Ordenar por ordem decrescente" TableListField_PageControls.ss: - DISPLAYING: "Apresentando" - OF: "de" - TO: "para" VIEWFIRST: "Ver o primeiro" VIEWLAST: "Ver o último" VIEWNEXT: "Ver o próximo" diff --git a/lang/pt_BR.yml b/lang/pt_BR.yml index 9c4c5fd2d..1faa3ae4b 100644 --- a/lang/pt_BR.yml +++ b/lang/pt_BR.yml @@ -1,10 +1,17 @@ pt_BR: AssetAdmin: - CHOOSEFILE: "Selecione Arquivo" MENUTITLE: "Arquivos & Imagens" NEWFOLDER: "Nova Pasta" - AssetAdmin_left.ss: - GO: "Ir" + AssetTableField: + CREATED: "Primeiro upload" + DIM: "Dimensões" + FILENAME: "Nome do Arquivo" + LASTEDIT: "Última Alteração" + OWNER: "Dono" + SIZE: "Tamanho" + TITLE: "Título" + TYPE: "Tipo" + URL: "URL" BBCodeParser: ALIGNEMENT: "Alinhamento" ALIGNEMENTEXAMPLE: "alinhado a direito" @@ -33,6 +40,8 @@ pt_BR: ERRORNOTADMIN: "Este usuário não é um administrador" ERRORNOTREC: "Este nome de usuário / senha não é reconhecido" CMSMain: + ACCESS: "Acesso a '%s' (%s)" + ACCESSALLINTERFACES: "Acessar todas as interfaces do CMS" MENUTITLE: "Conteúdo do Site" SAVE: "Salvar" ChangePasswordEmail.ss: @@ -47,7 +56,6 @@ pt_BR: SUCCESSEDIT: "%s %s %s salvo(s)" ComplexTableField.ss: ADDITEM: "Incluir %s" - NOITEMSFOUND: "Nenhum ítem encontrado" SORTASC: "Ordenar ascendente" SORTDESC: "Ordenar descendente" ComplexTableField_popup.ss: @@ -56,21 +64,15 @@ pt_BR: ConfirmedPasswordField: ATLEAST: "A senha tem que possuir no minimo %s caracteres." BETWEEN: "As senhas devem ter o numero de caracteres entre %s e %s." - HAVETOMATCH: "As senhas devem ser idênticas." - LEASTONE: "As senhas devem ter no minimo 1 numero e um caractere alfanumérico." MAXIMUM: "A senha tem que possuir no máximo %s caracteres." - NOEMPTY: "As senhas não podem ser vazias" SHOWONCLICKTITLE: "Trocar senha" CreditCardField: FIRST: "primeiro" FOURTH: "quarto" SECOND: "segundo" THIRD: "terceiro" - VALIDATIONJS1: "Por favor, assegure que você informou o" - VALIDATIONJS2: "numero do cartão correto." CurrencyField: CURRENCYSYMBOL: "R$" - VALIDATIONJS: "Por favor, entre com um valor monetário correto." DataObject: PLURALNAME: "Dados dos objetos" SINGULARNAME: "Dado do objeto" @@ -91,12 +93,10 @@ pt_BR: DateField: NOTSET: "não informado" TODAY: "hoje" - VALIDATIONJS: "Por favor, entre com o formato de data correto (DD/MM/YYYY)." DropdownField: CHOOSE: "Selecione" EmailField: VALIDATION: "Por favor escreva um endereço de e-mail" - VALIDATIONJS: "Por favor, ente com um endereço de email." File: Content: "Conteudo" Filename: "Nome do Arquivo" @@ -105,23 +105,8 @@ pt_BR: Name: "Nome" PLURALNAME: "Arquivos" SINGULARNAME: "Arquivo" - Sort: "Ordenação" TOOLARGE: "Tamanho do arquivo muito grande, máximo %s permitido." Title: "Titulo" - Folder: - CREATED: "Primeiros arquivos enviados" - DELSELECTED: "Excluir arquivos selecionados" - DETAILSTAB: "Detalhes" - FILENAME: "nome do arquivo" - FILESTAB: "Arquivos" - LASTEDITED: "Ultima atualização" - PLURALNAME: "Arquivos" - SINGULARNAME: "Arquivo" - TITLE: "Titulo" - TYPE: "Tipo" - UPLOADTAB: "Upload" - URL: "URL" - VIEWEDITASSET: "Ver/Editar Item" ForgotPasswordEmail.ss: HELLO: "Olá" TEXT1: "Este é seu" @@ -142,18 +127,13 @@ pt_BR: Group: Code: "Grupo de código" Description: "Descrição" - IPRestrictions: "Restrição de endereços IP" Locked: "Travado?" - PLURALNAME: "Grupos" Parent: "Grupo pai" - SINGULARNAME: "Grupo" Sort: "Ordenação" has_many_Permissions: "Permissões" many_many_Members: "Membros" HtmlEditorField: ANCHORVALUE: "Âncora" - BUTTONINSERTFLASH: "Inserir Flash" - BUTTONINSERTIMAGE: "Inserir imagem" BUTTONINSERTLINK: "Inserir link" BUTTONREMOVELINK: "Remover link" CSSCLASS: "Alinhamento / estilo" @@ -163,7 +143,6 @@ pt_BR: CSSCLASSRIGHT: "Na direita, com o texto ajustado." EMAIL: "Endereço de e-mail" FILE: "Arquivo" - FLASH: "Flash" FOLDER: "Pasta" IMAGE: "Imagem" IMAGEDIMENSIONS: "Dimensões" @@ -177,17 +156,9 @@ pt_BR: LINKFILE: "Download de arquivo" LINKINTERNAL: "Página no site" LINKOPENNEWWIN: "Abrir link em nova janela?" - LINKTEXT: "Texto de link" LINKTO: "Link para" PAGE: "Página" - SEARCHFILENAME: "Procurar por nome de arquivo" URL: "URL" - Image: - PLURALNAME: "Arquivos" - SINGULARNAME: "Arquivo" - Image_Cached: - PLURALNAME: "Arquivos" - SINGULARNAME: "Arquivo" Image_iframe.ss: TITLE: "Upload de imagem" LeftAndMain: @@ -201,8 +172,6 @@ pt_BR: LoginAttempt: Email: "Endereço de E-mail" IP: "Endereço IP" - PLURALNAME: "Tentativas de login" - SINGULARNAME: "Tentativa de login" Status: "Status" Member: ADDRESS: "Endereço" @@ -250,56 +219,22 @@ pt_BR: db_PasswordExpiry: "Data de expiração da senha" MemberAuthenticator: TITLE: "E-mail & Senha" - MemberPassword: - PLURALNAME: "Senhas do Usuário" - SINGULARNAME: "Senha do Usuário" - MemberTableField: - ADD: "Adicionar" - ADDEDTOGROUP: "Adicionado membro ao grupo" - ADDINGFIELD: "Ocorreu uma falha ao incluir" - FILTER: "Filtro" - SEARCH: "Buscar" ModelAdmin: - ADDBUTTON: "Incluir" - ADDFORM: "Preencha este formulário para incluir %s no banco de dados" - CHOOSE_COLUMNS: "Selecione colunas de resultado..." - CLEAR_SEARCH: "Limpar pesquisa" - CREATEBUTTON: "Criar '%s'" DELETE: "Excluir" DELETEDRECORDS: "Registros %s excluidos" - FOUNDRESULTS: "Sua pesquisa encontrou %s itens" IMPORT: "importar do CSV" IMPORTEDRECORDS: "Registros %s importados" - ITEMNOTFOUND: "Não foi possível encontrar o item" - LOADEDFOREDITING: "'%s' recuperados para edição." NOCSVFILE: "Por favor, localize um arquivo CSV para importar" NOIMPORT: "Não há itens a serem importados" - NORESULTS: "Não houve resultados" - SAVE: "Salvar" - SEARCHRESULTS: "Resultados da pesquisa" - SELECTALL: "selecionar todos" - SELECTNONE: "selecionar nenhum" UPDATEDRECORDS: "Registros %s atualizados" - MyEntity: - MyNamespace: "Valor padrão da lingua" - MyNamespace: - MYENTITY: "Foram contadas %s itens" NumericField: VALIDATION: "'%s' não é um número, somente números são aceitos neste campo" - VALIDATIONJS: "não é um número, somente números neste campo" - Page: - PLURALNAME: "Páginas" - SINGULARNAME: "Página" Permission: FULLADMINRIGHTS: "Todos os direitos administrativos" - PLURALNAME: "Permissões" - SINGULARNAME: "Persmissão" PhoneNumberField: VALIDATION: "Por favor digite um número de telefone válido" RelationComplexTableField.ss: ADD: "Incluir" - CSVEXPORT: "Exportar para CSV" - NOTFOUND: "nenhum item encontrado" ReportAdmin: MENUTITLE: "Relatórios" Security: @@ -309,31 +244,20 @@ pt_BR: CHANGEPASSWORDHEADER: "Alterar sua senha" ENTERNEWPASSWORD: "Por favor entre uma nova senha." ERRORPASSWORDPERMISSION: "Você precisa estar logado para alterar sua senha!" - IPADDRESSES: "Endereço IP" LOGGEDOUT: "Você saiu do sistema. Se você gostaria de entrar novamente, digite suas credenciais abaixo" LOGIN: "Entrar" - LOSTPASSWORDHEADER: "Senha perdida" NOTEPAGESECURED: "Esta página é protegida. Digite suas credenciais abaixo para continuar." NOTERESETLINKINVALID: "

    O link de reinicialização da senha é invalido ou expirado.

    Você pode requisitar um novo aqui ou mudar sua senha após logado

    " NOTERESETPASSWORD: "Digite seu endereço de e-mail e nós mandaremos a você um link com o qual você pode resetar sua senha" PASSWORDSENTHEADER: "Link para resetar senha enviado para '%s'" PASSWORDSENTTEXT: "Obrigado! O link para resetar a senha foi enviado para '%s'." SecurityAdmin: - ADDMEMBER: "Adicionar Membro" EDITPERMISSIONS: "Editar permissões e endereço IP para cada grupo" GROUPNAME: "Nome do grupo" - IPADDRESSESHELP: | -

    Você pode restringir este grupo a uma escalade de endereço IP privado(um por linha)
    Estas escalas podem ser em qualque um dos formatos:
    - 203.96.152.12
    - 203.96.152/24
    - 203.96/16
    - 203/8

    - se você entrar com um ou mais escalas de endereços no campo, os usuários só poderão acessar o grupo de se eles estiverem logados com um endereço IP válido. Isto não impede de as pessoas de se logar. Isto é devia a possibilidade de o usuário possa acessar partes do site que não tenho restrição de endereço IP. MEMBERS: "Membros" + MEMBERS: "Membros" MENUTITLE: "Segurança" NEWGROUP: "Novo Grupo" PERMISSIONS: "Permissões" - SGROUPS: "Grupos de segurança" - VIEWUSER: "Ver Usuario" SimpleImageField: NOUPLOAD: "Não foi feito o upload de nenhuma imagem" SiteTree: @@ -346,9 +270,6 @@ pt_BR: CSVEXPORT: "Exportar para CSV" PRINT: "Imprimir" TableListField_PageControls.ss: - DISPLAYING: "Mostrando" - OF: "de" - TO: "para" VIEWFIRST: "Ver o Primeiro" VIEWLAST: "Ver o Ultimo" VIEWNEXT: "Ver o próximo" diff --git a/lang/ro.yml b/lang/ro.yml index 71cda1dba..7558907a4 100644 --- a/lang/ro.yml +++ b/lang/ro.yml @@ -1,13 +1,6 @@ ro: - AssetAdmin: - CHOOSEFILE: "Alege fişier " - MENUTITLE: "Fisiere & Imagini" - NEWFOLDER: "DosarNou" BasicAuth: ENTERINFO: "Va rugam introduceţi un user si o parolă." - CMSMain: - MENUTITLE: "Continut Site" - SAVE: "Salvează" ChangePasswordEmail.ss: CHANGEPASSWORDTEXT1: "Ti-ai schimbat parola in" HELLO: "Salut" @@ -43,9 +36,6 @@ ro: PLURALNAME: "Fisiere" SINGULARNAME: "Fisier" TOOLARGE: "Marimea fisierului este prea mare, marimea maxima este de %s" - Folder: - PLURALNAME: "Fisiere" - SINGULARNAME: "Fisier" ForgotPasswordEmail.ss: HELLO: "Salut" Form: @@ -53,9 +43,7 @@ ro: Group: Code: "Cod Grup" Locked: "Blocat?" - PLURALNAME: "Grupuri" Parent: "Grup de Baza" - SINGULARNAME: "Grup" has_many_Permissions: "Permisiuni" many_many_Members: "Membri" HtmlEditorField: @@ -64,7 +52,6 @@ ro: CSSCLASS: "Aliniere / stil" EMAIL: "Adresa email" FILE: "Fisier" - FLASH: "Insereaza flash" FOLDER: "Director" IMAGE: "Insereaza imagine" IMAGEDIMENSIONS: "Dimensiuni" @@ -80,19 +67,7 @@ ro: LINKTO: "Link la" PAGE: "Pagina" URL: "URL" - Image: - PLURALNAME: "Fisiere" - SINGULARNAME: "Fisier" - LeftAndMain: - HELP: "Ajutor" - PAGETYPE: "Tip pagină: " - PERMALREADY: "Ne pare rău, dar nu puteţi accesa acea parte a CMS-ului. Daca doriţi să va autentificaţi ca altcineva, faceţi-o mai jos." - PERMDEFAULT: "Vă rugăm alegeţi o metodă de autentificare si introduceţi credenţialele pentru a accesa CMS-ul." - PLEASESAVE: "Va Rugam Salvaţi Pagina: Această pagină nu a putut fi actualizată deoarece încă nu a fost salvată." - SAVED: "salvat" LoginAttempt: - PLURALNAME: "Tentative Login" - SINGULARNAME: "Tentativa Login" Member: ADDRESS: "Adresă" BUTTONLOGIN: "Autentificare" @@ -114,29 +89,9 @@ ro: db_PasswordExpiry: "Data de Expirare a Parolei" MemberAuthenticator: TITLE: "E-mail si Parolă" - MemberPassword: - PLURALNAME: "Parole Membru" - SINGULARNAME: "Parola Membru" - MemberTableField: - ADD: "Adaugă " - ADDEDTOGROUP: "Membrul a fost adăugat in grup" - ModelAdmin: - CREATEBUTTON: "Creaza '%s'" - Page: - PLURALNAME: "Pagini" - SINGULARNAME: "Pagina" Permission: - PLURALNAME: "Permisiuni" - SINGULARNAME: "Permisiune" - ReportAdmin: - MENUTITLE: "Rapoarte" Security: ERRORPASSWORDPERMISSION: "Trebuie sa fii autentificat pentru a schimba parola." - SecurityAdmin: - ADDMEMBER: "Adaugă membru" - MENUTITLE: "Securitate" - NEWGROUP: "Grup Nou" - SGROUPS: "Grupuri de securitate" SiteTree: TABMAIN: "Pincipal" ToggleCompositeField.ss: diff --git a/lang/ru.yml b/lang/ru.yml index ccc7339f2..bb3068dc6 100644 --- a/lang/ru.yml +++ b/lang/ru.yml @@ -1,10 +1,17 @@ ru: AssetAdmin: - CHOOSEFILE: "Выберите файл" MENUTITLE: "Файлы и изображения" NEWFOLDER: "Новая папка" - AssetAdmin_left.ss: - GO: "Перейти" + AssetTableField: + CREATED: "Первая загрузка" + DIM: "Размеры" + FILENAME: "Имя файла" + LASTEDIT: "Последнее изменение" + OWNER: "Владелец" + SIZE: "Размер" + TITLE: "Название" + TYPE: "Тип" + URL: "URL" BBCodeParser: ALIGNEMENT: "Выравнивание" ALIGNEMENTEXAMPLE: "Выравнено по правому краю" @@ -35,6 +42,8 @@ ru: ERRORNOTADMIN: "Такой пользователь не является администратором." ERRORNOTREC: "Такое имя пользователя или пароль не существует" CMSMain: + ACCESS: "Доступ к %s в Системе" + ACCESSALLINTERFACES: "Доступ ко всему интерфейсу CMS" MENUTITLE: "Содержимое сайта" SAVE: "Сохранить" ChangePasswordEmail.ss: @@ -49,7 +58,6 @@ ru: SUCCESSEDIT: "Сохранено %s %s %s" ComplexTableField.ss: ADDITEM: "Добавить %s" - NOITEMSFOUND: "Ничего не найдено" SORTASC: "Сортировать по возрастанию" SORTDESC: "Сортировать по убыванию" ComplexTableField_popup.ss: @@ -58,21 +66,15 @@ ru: ConfirmedPasswordField: ATLEAST: "Длина пароля должна быть не менее %s символов." BETWEEN: "Длина пароля должна быть от %s до %s символов." - HAVETOMATCH: "Пароли должны совпадать." - LEASTONE: "Пароль должен содержать по крайней мере одну цифру и обну букву." MAXIMUM: "Длина пароля должна быть не более %s символов." - NOEMPTY: "Пароли не могут быть пустыми." SHOWONCLICKTITLE: "Изменить Пароль" CreditCardField: FIRST: "первая" FOURTH: "четвертая" SECOND: "вторая" THIRD: "третья" - VALIDATIONJS1: "Пожалуйста, убедитесь, что вы ввели " - VALIDATIONJS2: "номер кредитной карты верно." CurrencyField: CURRENCYSYMBOL: "$" - VALIDATIONJS: "Введите верную денежную единицу." DataObject: PLURALNAME: "Объекты" SINGULARNAME: "Объект" @@ -93,12 +95,10 @@ ru: DateField: NOTSET: "не установлено" TODAY: "сегодня" - VALIDATIONJS: "Пожалуйста, введите верный формат даты (ДД/ММ/ГГГГ)." DropdownField: CHOOSE: "(Выберите)" EmailField: VALIDATION: "Пожалуйста, введите адрес email." - VALIDATIONJS: "Пожалуйста, введите адрес email." File: Content: "Содержание" Filename: "Имя файла" @@ -107,23 +107,8 @@ ru: Name: "Название" PLURALNAME: "Файлы" SINGULARNAME: "Файл" - Sort: "Порядок сортировки" TOOLARGE: "Размер файла слишком велик, максимально допустимый размер %s" Title: "Заголовок" - Folder: - CREATED: "Первая загрузка" - DELSELECTED: "Удалить выбранные файлы" - DETAILSTAB: "Подробности" - FILENAME: "Имя файла" - FILESTAB: "Файлы" - LASTEDITED: "Последнее обновление" - PLURALNAME: "Файлы" - SINGULARNAME: "Файл" - TITLE: "Название" - TYPE: "Тип" - UPLOADTAB: "Загрузить" - URL: "Ссылка" - VIEWEDITASSET: "Смотреть/Редакт. ресурсы" ForgotPasswordEmail.ss: HELLO: "Здравствуйте" TEXT1: "Это ваша" @@ -144,20 +129,14 @@ ru: Group: Code: "Код группы" Description: "Описание" - IMPORTTABTITLE: "Импортировать" - IPRestrictions: "Ограничения по IP-адресам" Locked: "Блокировано?" - PLURALNAME: "Группы" Parent: "Родительская группа" RolesAddEditLink: "Добавить/редактировать роли" - SINGULARNAME: "Группа" Sort: "Порядок сортировки" has_many_Permissions: "Права групп пользователей" many_many_Members: "Члены группы" HtmlEditorField: ANCHORVALUE: "Якорь" - BUTTONINSERTFLASH: "Вставить Flash" - BUTTONINSERTIMAGE: "Вставить изображ." BUTTONINSERTLINK: "Вставить ссылку" BUTTONREMOVELINK: "Удалить ссылку" CSSCLASS: "Выравнивание/Стиль" @@ -167,7 +146,6 @@ ru: CSSCLASSRIGHT: "Справа с обтеканием текста" EMAIL: "Адрес email" FILE: "Файл" - FLASH: "Flash" FOLDER: "Папка" IMAGE: "Изображение" IMAGEDIMENSIONS: "Размеры" @@ -181,14 +159,9 @@ ru: LINKFILE: "Скачивание файла" LINKINTERNAL: "Страницу данного сайта" LINKOPENNEWWIN: "Открыть ссылку в новом окне?" - LINKTEXT: "Текст ссылки" LINKTO: "Ссылка на" PAGE: "Страница" - SEARCHFILENAME: "Искать по имени файла" URL: "URL" - Image: - PLURALNAME: "Файлы" - SINGULARNAME: "Файл" Image_iframe.ss: TITLE: "Iframe загрузки изображений" LeftAndMain: @@ -199,13 +172,9 @@ ru: PERMDEFAULT: "Введите ваши адрес электр. почты и пароль для доступа к системе." PLEASESAVE: "Пожалуйста, сохраните страницу: ее нельзя обновить, т.к. она еще не была сохранена." SAVED: "сохранено" - LeftAndMain_right.ss: - WELCOMETO: "Добро пожаловать на " LoginAttempt: Email: "Email" IP: "IP-адрес" - PLURALNAME: "Попытка входа" - SINGULARNAME: "Требуется авторизация" Status: "Статус" Member: ADDRESS: "Адрес" @@ -253,59 +222,24 @@ ru: db_PasswordExpiry: "Дата устаревания пароля" MemberAuthenticator: TITLE: "Email и Пароль" - MemberPassword: - PLURALNAME: "Пароли" - SINGULARNAME: "Пароль" - MemberTableField: - ADD: "Добавить" - ADDEDTOGROUP: "Участник, добавленный в группу" - ADDINGFIELD: "Не удалось добавить" - DeleteTitleText: "Удалить из этой группы" - FILTER: "Фильтр" - SEARCH: "Поиск" ModelAdmin: - ADDBUTTON: "Добавить" - ADDFORM: "Заполните эту форму, чтобы добавить %s в базу данных." - CHOOSE_COLUMNS: "Выберете столбцы..." - CLEAR_SEARCH: "Очистить результат поиска" - CREATEBUTTON: "Создать '%s'" DELETE: "Удалить" DELETEDRECORDS: "Удалено %s записей." - FOUNDRESULTS: "Найдено %s подходящих позиций" IMPORT: "Импорт из CSV" IMPORTEDRECORDS: "Импортировано %s записей." - ITEMNOTFOUND: "Ничего не найдено" - LOADEDFOREDITING: "'%s' загружается для редактирования." NOCSVFILE: "Выберите CSV-файл для импорта" NOIMPORT: "Нечего импортировать" - NORESULTS: "Нет результатов" - SAVE: "Сохранить" - SEARCHRESULTS: "Результаты поиска..." - SELECTALL: "выбрать всё" - SELECTNONE: "снять выделение" UPDATEDRECORDS: "Обновлено %s записей" - MyEntity: - MyNamespace: "Язык по умолчанию" - MyNamespace: - MYENTITY: "Всего %s штук" NullableField: IsNullLabel: "Недействительно" NumericField: VALIDATION: "'%s' не является цифрой, в этом поле могут быть только цифры" - VALIDATIONJS: "не является числом, в этом поле допустимы только числа" - Page: - PLURALNAME: "Страницы" - SINGULARNAME: "Страница" Permission: FULLADMINRIGHTS: "Все права администратора" - PLURALNAME: "Права доступа" - SINGULARNAME: "Права" PhoneNumberField: VALIDATION: "Пожалуйста, введите верный номер телефона" RelationComplexTableField.ss: ADD: "Добавить" - CSVEXPORT: "Экспорт в CSV" - NOTFOUND: "Ничего не найдено" ReportAdmin: MENUTITLE: "Отчеты" Security: @@ -315,30 +249,20 @@ ru: CHANGEPASSWORDHEADER: "Измените свой пароль" ENTERNEWPASSWORD: "Пожалуйста, введите новый пароль." ERRORPASSWORDPERMISSION: "Вы должны войти в систему, чтобы изменить Ваш пароль!" - IPADDRESSES: "IP адреса" LOGGEDOUT: "Вы вышли. Если Вы хотите войти снова, введите ваши учетные данные ниже." LOGIN: "Вход" - LOSTPASSWORDHEADER: "Восстановление пароля" NOTEPAGESECURED: "Эта страница защищена. Пожалуйста, введите свои учетные данные для входа." NOTERESETLINKINVALID: "

    Ссылка сброса пароля неверна или срок её действия истек.

    Вы можете получить новую ссылку или войти в систему и изменить свой пароль.

    " NOTERESETPASSWORD: "Введите Ваш адрес email, и Вам будет отправлена ссылка, по которой Вы сможете переустановить свой пароль" PASSWORDSENTHEADER: "Ссылка для переустановки пароля отправлена для '%s'" PASSWORDSENTTEXT: "Спасибо! Ссылка для переустановки пароля была отправлена для '%s'." SecurityAdmin: - ADDMEMBER: "Добавить участника" EDITPERMISSIONS: "Задать разрешения и IP адреса для каждой группы" GROUPNAME: "Имя группы" - IPADDRESSESHELP: | -

    Вы можете задать для этой группы диапазон разрешенных IP адресов. Введите каждый диапазон в отдельной строке. Диапазон может быть задан в одном из следующих 4-х форматов:
    - 203.96.152.12
    - 203.96.152/24
    - 203.96/16
    - 203/8

    Если вы введете один или несколько диапазонов IP адресов, то пользователи смогут быть участниками этой группы только в том случае, если они авторизуются с одного из разрешенных IP адресов. Это не препятствует общей авторизации на сайте, т.к. один и тот же пользователь может авторизоваться для доступа к разделам системы, для которых не установлены ограничения по IP адресам. MEMBERS: "Участники" + MEMBERS: "Участники" MENUTITLE: "Безопасность" NEWGROUP: "Новая группа" PERMISSIONS: "Права доступа" - SGROUPS: "Группы доступа" - VIEWUSER: "Просмотр пользователя" SimpleImageField: NOUPLOAD: "Не загружено ни одного изображения" SiteTree: @@ -351,13 +275,9 @@ ru: CSVEXPORT: "Экспорт в CSV" PRINT: "Печать" TableListField.ss: - NOITEMSFOUND: "Элементы не найдены" SORTASC: "По возрастанию" SORTDESC: "По убыванию" TableListField_PageControls.ss: - DISPLAYING: "Отображение" - OF: " " - TO: " " VIEWFIRST: "Первый" VIEWLAST: "Последний" VIEWNEXT: "Следующий" diff --git a/lang/si.yml b/lang/si.yml index ae0964fd8..834495e49 100644 --- a/lang/si.yml +++ b/lang/si.yml @@ -1,10 +1,17 @@ si: AssetAdmin: - CHOOSEFILE: "ලිපිය තෝරන්න" MENUTITLE: "ලිපි හා පිංතූර" NEWFOLDER: "අලත් ගොනුවක්" - AssetAdmin_left.ss: - GO: "යන්න" + AssetTableField: + CREATED: "පලමු ලිපිය අප්ලෝඩ් කරන ලදී" + DIM: "මාන" + FILENAME: "ලිපි නම" + LASTEDIT: "අවසාන ලිපිය වෙනස් කරන ලදී" + OWNER: "හිමි කරැ" + SIZE: "තරම" + TITLE: "මතකව" + TYPE: "වර්ගය" + URL: "URL" BBCodeParser: COLORED: "පාට කළ අකුරු" COLOREDEXAMPLE: "නිල් පැහැ අකුරු" @@ -24,7 +31,6 @@ si: HELLO: "කොහොමද" ComplexTableField.ss: ADDITEM: "එකතු කරන්න" - NOITEMSFOUND: "හිස්" SORTASC: "ආරෝහන පිළිවෙලට" SORTDESC: "ආවරෝහන පිළිවෙලට" ComplexTableField_popup.ss: @@ -62,16 +68,6 @@ si: PLURALNAME: "ලිපි" SINGULARNAME: "ලිපිය" TOOLARGE: "ලිපියේ තරම විශාලයි, උපරිමය %s" - Folder: - DELSELECTED: "තෝරාගත් ගොනු මකන්න" - DETAILSTAB: "තොරතුරු" - FILENAME: "ගොනුවේ නම" - FILESTAB: "ගොනු" - PLURALNAME: "ලිපි" - SINGULARNAME: "ලිපිය" - TITLE: "මාතෘකාව" - UPLOADTAB: "අප්ලෝඩ්" - URL: "URL" ForgotPasswordEmail.ss: HELLO: "කොහොමද" TEXT1: "මෙය ඔබගේ" @@ -88,14 +84,10 @@ si: Group: Code: "කාන්ඩ සංකේතය" Locked: "අගුලුලාද?" - PLURALNAME: "කාන්ඩ" Parent: "මවු කාන්ඩය" - SINGULARNAME: "කාන්ඩය" has_many_Permissions: "අවසර" many_many_Members: "සාමාජිකයින්" HtmlEditorField: - BUTTONINSERTFLASH: "Flash ඇතුල් කරන්න" - BUTTONINSERTIMAGE: "පි0තුරයක් ඇතුල් කරන්න" BUTTONINSERTLINK: "බැදීමක් යොදන්න" BUTTONREMOVELINK: "බැදීම ගලවන්න" CSSCLASS: "අලයින්මන්ට් / ස්ටයිල්" @@ -103,7 +95,6 @@ si: CSSCLASSRIGHT: "දකුනු පැත්තට, අකුරැ වටේට යොදන්න" EMAIL: "ඊමේල් ලිපිනය" FILE: "ලිපිය" - FLASH: "Flash ඇතුල් කරන්න" FOLDER: "ගොනුව" IMAGE: "පි0තුරයක් ඇතුල් කරන්න" IMAGEDIMENSIONS: "මාන" @@ -119,9 +110,6 @@ si: LINKTO: "බැදේ" PAGE: "පිටුව" URL: "URL" - Image: - PLURALNAME: "ලිපි" - SINGULARNAME: "ලිපිය" Image_iframe.ss: TITLE: "පිංතූර අප්ලෝඩ් කරන Iframe ඵක" LeftAndMain: @@ -133,8 +121,6 @@ si: PLEASESAVE: "පිටුව සේව් කරන්න, නැතිනම් මෙම පිටුව යාවත්කාලීන කල නොහැක" SAVED: "සේවි කරන ලදී" LoginAttempt: - PLURALNAME: "ඇතුල්වීම් උත්සහයන්" - SINGULARNAME: "ඇතුල්වීම් උත්සහය" Member: ADDRESS: "ලිපිනය" BUTTONCHANGEPASSWORD: "මුර පදය අලුත් කරන්න" @@ -174,25 +160,9 @@ si: db_PasswordExpiry: "මුර පදය කල් ඉකුත් වීමේ දිනය" MemberAuthenticator: TITLE: "ඊමේල් හා මුර පදය" - MemberPassword: - PLURALNAME: "සාමාජිකය මුර පද" - SINGULARNAME: "සාමාජිකය මුර පදය" - MemberTableField: - ADD: "එකතු කරන්න" - ADDEDTOGROUP: "කන්ඩායම් සාමාඡිකයෙකු ඵකතු කරන්න" - ADDINGFIELD: "එකතු කිරීම අසාර්ථකයි" - FILTER: "Filter" - SEARCH: "සොයන්න" - ModelAdmin: - CREATEBUTTON: "'%s' හදන්න" NumericField: VALIDATION: "'%s' අංකයක් නොවේ, අංක පමනක් බාරගනියි" - Page: - PLURALNAME: "පිටු" - SINGULARNAME: "පිටුව" Permission: - PLURALNAME: "අවසර" - SINGULARNAME: "අවසරය" PhoneNumberField: VALIDATION: "නිවැරදි දුරකතන අ0කයක් යොදන්න" RelationComplexTableField.ss: @@ -207,15 +177,12 @@ si: ENTERNEWPASSWORD: "අලුත් මුර පදය ඇතුල් කරන්න" ERRORPASSWORDPERMISSION: "ඹබගේ මුරපදය වෙනස් කිරීමට ප්රවිශ්ට වන්න" LOGGEDOUT: "ඹබ පිටවී ඇත, නැවත ඇතුල් වීමට ඹබගේ දත්ත යොදන්න" - LOSTPASSWORDHEADER: "මුර පදය නැති වී ඇත" NOTERESETPASSWORD: "ඹබට ප්රතිස්තාපනය කල හැකි ලිංක් ඵක ඵවීමට ඹබගේ ඊමේල් ලිපිනය යොදන්න" PASSWORDSENTHEADER: "මුර පදය අලුත් කරන ලිපිනය %s ට යවන ලදී" PASSWORDSENTTEXT: "ස්තුති! මුර පදය අලුත් කරන ලිපිනය %s ට යවන ලදී" SecurityAdmin: - ADDMEMBER: "සාමාජිකයෙක් ඵකතු කරන්න" MENUTITLE: "ආරක්ශාව" NEWGROUP: "අලුත් කන්ඩාමක්" - SGROUPS: "ආරක්ශක කන්ඩායම්" SimpleImageField: NOUPLOAD: "පි0තුර අප්ලෝඩ් කර නැත" SiteTree: @@ -227,9 +194,6 @@ si: TableListField: PRINT: "මුද්රණය කරන්න" TableListField_PageControls.ss: - DISPLAYING: "පෙන්වන්නේ" - OF: "ගේ" - TO: "ට" VIEWFIRST: "පළමු එක පෙන්වන්න" VIEWLAST: "අවසානය පෙන්වන්න" VIEWNEXT: "ඊළඟ එක පෙන්වන්න" diff --git a/lang/sk.yml b/lang/sk.yml index 74ba20dc4..9a4882217 100644 --- a/lang/sk.yml +++ b/lang/sk.yml @@ -1,10 +1,17 @@ sk: AssetAdmin: - CHOOSEFILE: "Vybrať súbor" MENUTITLE: "Súbory a obrázky" NEWFOLDER: "Nový Adresár" - AssetAdmin_left.ss: - GO: "Vykonať" + AssetTableField: + CREATED: "Prvýkrát nahrané" + DIM: "Rozmery" + FILENAME: "Názov" + LASTEDIT: "Posledne zmenené" + OWNER: "Vlastník" + SIZE: "Veľkosť" + TITLE: "Titulok" + TYPE: "Typ" + URL: "URL" BBCodeParser: ALIGNEMENT: "Zarovnanie" ALIGNEMENTEXAMPLE: "zarovnané vpravo" @@ -38,9 +45,10 @@ sk: ANY: "Ktorýkoľvek" NO: "Nie" YES: "Áno" - CMSBatchActions: - PUBLISHED_PAGES: "Publikovaných %d stránok, %d zlyhaní" CMSMain: + ACCESS: "Prístup do '%s' sekcie" + ACCESSALLINTERFACES: "Pristup do všetkých častí CMS." + ACCESSALLINTERFACESHELP: "Prepisuje viac špecifických nastavení prístupu." MENUTITLE: "Obsah webu" SAVE: "Uložiť" ChangePasswordEmail.ss: @@ -58,7 +66,6 @@ sk: SUCCESSEDIT: "Uložené %s %s %s" ComplexTableField.ss: ADDITEM: "Pridať %s" - NOITEMSFOUND: "Žiadne položky nenájdené" SORTASC: "Zoradiť vzostupne" SORTDESC: "Zoradiť zostupne" ComplexTableField_popup.ss: @@ -67,21 +74,15 @@ sk: ConfirmedPasswordField: ATLEAST: "Heslá musia mať aspoň %s znakov." BETWEEN: "Heslá musia mať od %s po %s znakov." - HAVETOMATCH: "Heslá sa musia zhodovať" - LEASTONE: "Heslá musia mať aspoň jedno číslo a jednen abecedný znak." MAXIMUM: "Heslá musia mať najviac %s znakov." - NOEMPTY: "Heslá nemôžu byť prázdne." SHOWONCLICKTITLE: "Zmeniť heslo" CreditCardField: FIRST: "prvý" FOURTH: "štvrtý" SECOND: "druhý" THIRD: "tretí" - VALIDATIONJS1: "Prosím uistite sa že ste zadali" - VALIDATIONJS2: "správne číslo karty." CurrencyField: CURRENCYSYMBOL: "$" - VALIDATIONJS: "Prosím zadajte platnú menu." DataObject: PLURALNAME: "Datové objekty" SINGULARNAME: "Dátový objekt" @@ -102,7 +103,6 @@ sk: DateField: NOTSET: "nezadané" TODAY: "dnes" - VALIDATIONJS: "Prosím napíste platný formát dátumu (DD/MM/RRRR)." VALIDDATEFORMAT2: "Zadajte platný dátum vo formáte (%s)" VALIDDATEMAXDATE: "Váš dátum musi byť strarši alebo zhodný s maximalnim povolením dátumom (%s)" VALIDDATEMINDATE: "Váš dátum musí byť novši alebo zodpovedajúci minimalnemu povolenému dátumu (%s)" @@ -110,7 +110,6 @@ sk: CHOOSE: "(Vyberte si)" EmailField: VALIDATION: "Prosím zadajte e-mailovú adresu." - VALIDATIONJS: "Prosím napíste emailovú adresu." Email_BounceRecord: PLURALNAME: "Záznamy o odskočených e-mailoch" SINGULARNAME: "Záznam o odskočených e-mailoch" @@ -125,7 +124,6 @@ sk: Name: "Meno" PLURALNAME: "Súbory" SINGULARNAME: "Súbor" - Sort: "Zoradiť podľa" TOOLARGE: "Súbor je príliš veľký, maximálna veľkosť je %s." Title: "Názov" FileIFrameField: @@ -137,22 +135,6 @@ sk: FROMFILESTORE: "Z úložiska súborov" NOSOURCE: "Prosím zvolte zdrojový súbor pre priloženie" REPLACE: "Vymeniť %s" - FileIFrameField.ss: - TITLE: "Iframe pre nahrávnie obrázkov" - Folder: - CREATED: "Prvé nahraté" - DELSELECTED: "Vymazať označené súbory" - DETAILSTAB: "Detaily" - FILENAME: "Meno súboru" - FILESTAB: "Súbory" - LASTEDITED: "Posledné nahraté" - PLURALNAME: "Súbory" - SINGULARNAME: "Súbor" - TITLE: "Názov" - TYPE: "Typ" - UPLOADTAB: "Nahrať" - URL: "URL" - VIEWEDITASSET: "Prezerať/Upraviť položky" ForgotPasswordEmail.ss: HELLO: "Dobrý deň" TEXT1: "Tu je váš" @@ -175,13 +157,9 @@ sk: DefaultGroupTitleAdministrators: "Administratori" DefaultGroupTitleContentAuthors: "Autori obsahu" Description: "Popis" - IMPORTTABTITLE: "Importovať" - IPRestrictions: "Obmedzenia IP adries" Locked: "Zamknuté?" - PLURALNAME: "Skupiny" Parent: "Nadradená skupina" RolesAddEditLink: "Pridať/upraviť úlohy" - SINGULARNAME: "Skupina" Sort: "Zoradiť podľa" has_many_Permissions: "Právomoci" many_many_Members: "Uživatelia" @@ -193,13 +171,12 @@ sk: Povolené stĺpce: %s Existujúce skupiny sú najdené podla ich unikátnej hodnoty Code, a aktualizované novými hodnotami z importovaného súboru. Hierarchia skupín môže byť vytvorená použitím stĺpca ParentCode. - Právomoci môžu byt pridelené pomocou stĺpca PermissionCode. Existujúce právomoci nie su vymazané. ResultCreated: "Vytvorené %d skupiny" + Právomoci môžu byt pridelené pomocou stĺpca PermissionCode. Existujúce právomoci nie su vymazané. + ResultCreated: "Vytvorené %d skupiny" ResultDeleted: "Vymazané %d skupiny" ResultUpdated: "Aktualizované %d skupiny" HtmlEditorField: ANCHORVALUE: "Odkaz" - BUTTONINSERTFLASH: "Vložiť Flash" - BUTTONINSERTIMAGE: "Vložiť obrázok" BUTTONINSERTLINK: "Vložiť odkaz" BUTTONREMOVELINK: "Odstrániť odkaz" CAPTIONTEXT: "Text nadpisu" @@ -210,7 +187,6 @@ sk: CSSCLASSRIGHT: "Vpravo, s obtekajúcim textom." EMAIL: "E-mailovú adresu" FILE: "Súbor" - FLASH: "Vložiť flash" FOLDER: "Adresár" IMAGE: "Vložiť obrázok" IMAGEALTTEXT: "Atlernatívni text (alt) - vypísaní pokiaľ nemože byť zobrazení obrázok" @@ -226,20 +202,11 @@ sk: LINKFILE: "Stiahnutie súboru" LINKINTERNAL: "Stránku na vlastnom webe" LINKOPENNEWWIN: "Otvoriť odkaz v novom okne?" - LINKTEXT: "Text odkazu" LINKTO: "Odkázať na" PAGE: "Stránku" - SEARCHFILENAME: "Vyhľadať podľa názvu súboru" - SHOWUPLOADFORM: "Pridať súbor" URL: "URL" - Image: - PLURALNAME: "Súbory" - SINGULARNAME: "Súbor" ImageField: IMAGE: "Obrázok" - Image_Cached: - PLURALNAME: "Súbory" - SINGULARNAME: "Súbor" Image_iframe.ss: TITLE: "Rámec pre nahranie obrázku" LeftAndMain: @@ -251,13 +218,9 @@ sk: PERMDEFAULT: "Vyberte si prosím metódu autentifikácie a zadajte svoje prístupové údaje k CMS." PLEASESAVE: "Prosím uložte stránku: Táto stránka nemôže byť aktualizovaná, lebo ešte nebola uložená." SAVED: "uložené" - LeftAndMain_right.ss: - WELCOMETO: "Vitajte v" LoginAttempt: Email: "Emailová adresa" IP: "IP adreasa" - PLURALNAME: "Pokusy o prihlásenie" - SINGULARNAME: "Pokus o prihlásenie" Status: "Status" Member: ADDRESS: "Adresa" @@ -315,83 +278,42 @@ sk: Pokročile použitie Povolené stĺpce Existujúci uživatelia sú najdený podľa ich unikátnej Code hodnoty, a aktualizovaný novými hodnotami z importovaného súboru. - Skupiny môžu byť pridelené cez stĺpec Groups. Skupiny sú identifikované cez ich Code hodnotu, viacero skupín môže byť oddelených pomocou čiarky. Existujúce členstvá v skupinách nie su vymazané. ResultCreated: "Vytvorených %d členov" + Skupiny môžu byť pridelené cez stĺpec Groups. Skupiny sú identifikované cez ich Code hodnotu, viacero skupín môže byť oddelených pomocou čiarky. Existujúce členstvá v skupinách nie su vymazané. + ResultCreated: "Vytvorených %d členov" ResultDeleted: "Zmazaných %d členov" ResultNone: "Žiadne zmeny" ResultUpdated: "Aktualizovaných %d členov" - MemberPassword: - PLURALNAME: "Heslá uživatela" - SINGULARNAME: "Heslo uživatela" - MemberTableField: - ADD: "Pridať" - ADDEDTOGROUP: "Člen pridaný do skupiny" - ADDINGFIELD: "Pridávanie zlyhalo" - DeleteTitleText: "Vymazať z tejto skupiny" - DeleteTitleTextDatabase: "Vymazať z databázy a všetkých skupín" - ERRORADDINGUSER: "Nastala chyba pri pridávani uživatela do skupiny: %s" - FILTER: "Filter" - SEARCH: "Vyhľadať" ModelAdmin: - ADDBUTTON: "Pridať" - ADDFORM: "Vyplnte tento formulár aby ste pridali %s do databázy." - CHOOSE_COLUMNS: "Zvoliťe stĺpce výsledkov" - CLEAR_SEARCH: "Zmazať vysledky vyhľadávania" - CREATEBUTTON: "Vytvoriť '%s'" DELETE: "Vymazať" DELETEDRECORDS: "Vymazaných %s záznamov." - FOUNDRESULTS: "Vaše vyhľadávanie našlo %s zhodných položiek" IMPORT: "Importovať z CSV" IMPORTEDRECORDS: "Importovaných %s záznamov." - ITEMNOTFOUND: "Neviem najsť tú položku" - LOADEDFOREDITING: "Načítané '%s' pre úpravu." NOCSVFILE: "Prosím vyhľadajte CSV súbor pre importovanie" NOIMPORT: "Nie je čo importovať" - NORESULTS: "Žiadne výsledky" - SAVE: "Uložiť" - SEARCHRESULTS: "Výsledky vyhľadávania" - SELECTALL: "označ všetky" - SELECTNONE: "odznač všetky" UPDATEDRECORDS: "Aktualizovaných %s záznamov." MoneyField: FIELDLABELAMOUNT: "Množstvo" FIELDLABELCURRENCY: "Mena" - MyEntity: - MyNamespace: "Moja predvolená hodnota jazyka" - MyNamespace: - MYENTITY: "Počítam %s vecí" NullableField: IsNullLabel: "Is Null" NumericField: VALIDATION: "'%s' nie je číslo. V tomto poli môžu byť zadané iba čísla" - VALIDATIONJS: "nie je číslo, iba čísla možu byť zadané do tohoto poľa" - Page: - PLURALNAME: "Stranky" - SINGULARNAME: "Stránka" Permission: AdminGroup: "Administrátor" + CMS_ACCESS_CATEGORY: "Prístup do CMS" FULLADMINRIGHTS: "Plné administrátorské práva" FULLADMINRIGHTS_HELP: "Ma prednosť pred všetkými ostatnými prideleniami a právomocami." - PLURALNAME: "Právomoci" - SINGULARNAME: "Právomoc" PermissionCheckboxSetField: AssignedTo: "pridelené \"%s\"" FromGroup: "zdediť zo skupiny \"%s\"" FromRole: "zdediť z úlohy \"%s\"" FromRoleOnGroup: "zdediť z úlohy \"%s\" v skupine \"%s\"" - PermissionRole: - PLURALNAME: "Úlohy" - SINGULARNAME: "Úloha" - PermissionRoleCode: - PLURALNAME: "Kódy právomocí úloh" - SINGULARNAME: "Kód právomocí úloh" Permissions: PERMISSIONS_CATEGORY: "Úlohy a prístupové práva" PhoneNumberField: VALIDATION: "Prosím zadajte platné telefónne číslo" RelationComplexTableField.ss: ADD: "Pridať" - CSVEXPORT: "Exportovať do CSV" - NOTFOUND: "Nenajdené žiadne položky" ReportAdmin: MENUTITLE: "Reporty" Security: @@ -401,38 +323,28 @@ sk: CHANGEPASSWORDHEADER: "Zmeniť heslo" ENTERNEWPASSWORD: "Prosím zadajte nové heslo." ERRORPASSWORDPERMISSION: "Pre zmenu hesla musíte byť prihlásený!" - IPADDRESSES: "IP adresa" LOGGEDOUT: "Boli ste odhlásený. Ak sa chcete znovu prihlásiť, zadajte svoje prihlasovacie údaje." LOGIN: "Prihlásiť" - LOSTPASSWORDHEADER: "Stratené heslo" NOTEPAGESECURED: "Táto stránka je zabezpečená. Zadajte svoje prihlasovacie údaje a my Vám zároveň pošleme práva." NOTERESETLINKINVALID: "

    Odkaz na reset hesla je nesprávny alebo mu vypršala platnosť.

    O nový môžete požiadať tu alebo si zmente heslo po prihlásení.

    " NOTERESETPASSWORD: "Zadajte svoju e-mailovú adresu a my Vám pošleme odkaz na resetovanie hesla" PASSWORDSENTHEADER: "Odkaz na resetovanie hesla odoslaný pre '%s'" PASSWORDSENTTEXT: "Ďakujeme! Odkaz na resetovanie hesla bol poslaný pre '%s'." SecurityAdmin: - ADDMEMBER: "Pridať člena" + ACCESS_HELP: "Povoliť prezeranie, pridávanie a úpravu uživaťeľov, ako aj pridelovanie právomoci pre nich." APPLY_ROLES: "Aplikovať úlohy skupinám" APPLY_ROLES_HELP: "Schopnosť upravovať úlohy pridelené skupine. Vyžaduje prístup do sekcie \"Bezpečnosť\"." EDITPERMISSIONS: "Spravovať právomoci pre skupiny" EDITPERMISSIONS_HELP: "Schopnosť upravovať právomoci a IP adresi pre skupinu. Vyžaduje prístup do sekcie \"Bezpečnosť\"." GROUPNAME: "Názov skupiny" - IPADDRESSESHELP: | -

    Túto skupinu môžete obmedziť na rozsah určitých IP adries (jeden rozsah na riadok).
    Rozsahy môžu byť v ktorej koľvek z nasledujúcich foriem:
    - 203.96.152.12
    - 203.96.152/24
    - 203.96/16
    - 203/8

    Pokiaľ zadáte jednu alebo viac rozsahov IP adries do tohto poľa, uživatelia dostanú právomoci danej skupiny iba pokiaľ sa prihlásia z platných IP adresies. Tieto nastavenia im nezabránia prihlasenie. Je to kvôli tomu aby sa rovnaký uživateľ prihlásiť k rôznym častiam systému aj bez obmedzení na základe IP adries. MEMBERS: "Členovia" + MEMBERS: "Členovia" MENUTITLE: "Bezpečnosť" MemberListCaution: "Upozornenie: Odstánenie členov z tohto zoznamu ich odstáni zo všetkých skupín a databázy." NEWGROUP: "Nová skupina" PERMISSIONS: "Právomoci" ROLES: "Úlohy" ROLESDESCRIPTION: "Táto sekcia umožnuje pridať úlohy skupine. Úlohy sú logické zoskupenia právomocí, ktoré môžu byť zmenené v záložke Úloh" - SGROUPS: "Bezpečnostné skupiny" - TABIMPORT: "Importovať" TABROLES: "Úlohy" - VIEWUSER: "Zobraz uživaťela" SecurityAdmin_MemberImportForm: BtnImport: "Importovať" FileFieldLabel: "CSV súbor (Povoléné koncovki súborov: *.csv)" @@ -444,19 +356,14 @@ sk: ISREQUIRED: "V %s '%s' je požadované." TableField.ss: ADD: "Pridať nový riadok" - ADDITEM: "Pridať %s" TableListField: CSVEXPORT: "Exportovať do CSV" PRINT: "Vytlačiť" SELECT: "Vyberte:" TableListField.ss: - NOITEMSFOUND: "Nenajdené žiadne položky" SORTASC: "Zoradiť vzostupne" SORTDESC: "Zoradiť zostupne" TableListField_PageControls.ss: - DISPLAYING: "Zobrazujem" - OF: "z" - TO: "do" VIEWFIRST: "Zobraziť prvé" VIEWLAST: "Zobraziť posledné" VIEWNEXT: "Zobraziť nasledujúce" diff --git a/lang/sl.yml b/lang/sl.yml index 3d5421e65..03c054635 100644 --- a/lang/sl.yml +++ b/lang/sl.yml @@ -1,6 +1,17 @@ sl: AssetAdmin: - CHOOSEFILE: "Izberite datoteko:" + MENUTITLE: "Datoteke in slike" + NEWFOLDER: "Nova mapa" + AssetTableField: + CREATED: "Naloženo na začetku" + DIM: "Dimenzije" + FILENAME: "Ime datoteke" + LASTEDIT: "Zadnje naloženo" + OWNER: "Lastnik" + SIZE: "Velikost" + TITLE: "Naslov" + TYPE: "Tip" + URL: "URL" BBCodeParser: ALIGNEMENT: "Poravnava" ALIGNEMENTEXAMPLE: "desno poravnano" @@ -35,6 +46,10 @@ sl: NO: "Ne" YES: "Da" CMSMain: + ACCESS: "Dostop do sklopa: %s" + ACCESSALLINTERFACES: "Dostop do vseh sklopov CMS" + ACCESSALLINTERFACESHELP: "Omogoča bolj specifične nastavitve za možnosti dostop." + MENUTITLE: "Strani" SAVE: "Shrani" ChangePasswordEmail.ss: CHANGEPASSWORDTEXT1: "Geslo ste spremenili v" @@ -51,7 +66,6 @@ sl: SUCCESSEDIT: "Shranjeno: %s %s %s" ComplexTableField.ss: ADDITEM: "Dodaj %s" - NOITEMSFOUND: "Ni zadetkov" SORTASC: "Razvrsti naraščajoče" SORTDESC: "Razvrsti padajoče" ComplexTableField_popup.ss: @@ -60,21 +74,15 @@ sl: ConfirmedPasswordField: ATLEAST: "Geslo naj ima najmanj %s znakov." BETWEEN: "Geslo naj ima med %s in %s alfa-numeričnih znakov." - HAVETOMATCH: "Vpisani gesli se morata ujemati." - LEASTONE: "Geslo naj bo sestavljeno iz najmenj ene črke in najmanj ene številke." MAXIMUM: "Geslo lahko ima največ %s znakov." - NOEMPTY: "Vpišite geslo (dvakrat) v za to predvideni polji." SHOWONCLICKTITLE: "Spremeni geslo" CreditCardField: FIRST: "prvič" FOURTH: "četrtič" SECOND: "drugič" THIRD: "tretjič" - VALIDATIONJS1: "Preverite, da ste vpisali" - VALIDATIONJS2: "pravo številko kreditne kartice." CurrencyField: CURRENCYSYMBOL: "$" - VALIDATIONJS: "Izberite valuto." DataObject: PLURALNAME: "Podatkovni objekti" SINGULARNAME: "Podatkovni objekt" @@ -95,7 +103,6 @@ sl: DateField: NOTSET: "ni nastavljeno" TODAY: "danes" - VALIDATIONJS: "Vpišite datum v ustreznem formatu (DD-MM-LLLL)." VALIDDATEFORMAT2: "Vpišite datum v ustreznem formatu (%s)" VALIDDATEMAXDATE: "Preverite, da datum ni novejši, kot je predvideno (%s)." VALIDDATEMINDATE: "Preverite, da datum ni starejši, kot je predvideno (%s)." @@ -103,7 +110,6 @@ sl: CHOOSE: "(Izberi)" EmailField: VALIDATION: "Vpišite veljaven e-naslov (npr. ime@elektronskaposta.si)." - VALIDATIONJS: "Vpišite e-naslov." Email_BounceRecord: PLURALNAME: "Seznam zavrnjenih e-sporočil" SINGULARNAME: "Zavrnjeno e-sporočilo" @@ -118,7 +124,6 @@ sl: Name: "Ime" PLURALNAME: "Datoteke" SINGULARNAME: "Datoteka" - Sort: "Vrstni red" TOOLARGE: "Datoteka je prevelika, največja dovoljena je %s." Title: "Naslov" FileIFrameField: @@ -130,22 +135,6 @@ sl: FROMFILESTORE: "Iz knjižnice datotek" NOSOURCE: "Izberite datoteko, ki jo boste pripeli." REPLACE: "Zamenjaj %s" - FileIFrameField.ss: - TITLE: "Slika \"Uploading Iframe\"" - Folder: - CREATED: "Najprej naloženo" - DELSELECTED: "Izbriši označene datoteke" - DETAILSTAB: "Podrobno" - FILENAME: "Ime datoteke" - FILESTAB: "Datoteke" - LASTEDITED: "Nazadnje urejano" - PLURALNAME: "Datoteke" - SINGULARNAME: "Datoteka" - TITLE: "Naslov" - TYPE: "Vrsta" - UPLOADTAB: "Naloži" - URL: "URL" - VIEWEDITASSET: "Preglej/uredi Knjižnico datotek" ForgotPasswordEmail.ss: HELLO: "Pozdravljeni," TEXT1: "Tukaj je vaša" @@ -168,18 +157,27 @@ sl: DefaultGroupTitleAdministrators: "Administratorji" DefaultGroupTitleContentAuthors: "Avtorji vsebine" Description: "Opis" - IPRestrictions: "Omejitve po IP-naslovih" Locked: "Zaklenjeno za urejanje?" - PLURALNAME: "Skupine" Parent: "Nadrejena skupina" - SINGULARNAME: "Skupina" + RolesAddEditLink: "Dodaj in uredi vloge" Sort: "Način razvrščanja" has_many_Permissions: "Dovoljenja" many_many_Members: "Uporabniki" + GroupImportForm: + Help1: "

    Uvozi eno ali več skupin v formatu CSV (comma-separated values). Prikaži možnosti za napredno urejanje " + Help2: | +

    + ResultCreated: "Število ustvarjenih skupin %d" + ResultDeleted: "Število izbrisanih skupin %d" + ResultUpdated: "Število ponastavljenih skupin %d" HtmlEditorField: ANCHORVALUE: "Sidro" - BUTTONINSERTFLASH: "Vstavi flash-datoteko" - BUTTONINSERTIMAGE: "Vključi podobo" BUTTONINSERTLINK: "Vstavi povezavo" BUTTONREMOVELINK: "Odstrani povezavo" CAPTIONTEXT: "Pripis" @@ -190,7 +188,6 @@ sl: CSSCLASSRIGHT: "Desno, z oblivajočim besedilom" EMAIL: "E-naslov" FILE: "Datoteka" - FLASH: "Flash" FOLDER: "Mapa" IMAGE: "Slika" IMAGEALTTEXT: "Nadomestno besedilo (alt) bo izpisano, kadar slike ne bo možno prikazati" @@ -206,27 +203,25 @@ sl: LINKFILE: "Naloženo datoteko" LINKINTERNAL: "Stran znotraj tega spletnega mesta" LINKOPENNEWWIN: "Naj se povezava odpira v novem oknu?" - LINKTEXT: "Besedilo s povezavo" LINKTO: "Poveži na" PAGE: "Stran" - SEARCHFILENAME: "Išči po imenu datoteke" - SHOWUPLOADFORM: "Naloži datoteko" URL: "URL" - Image: - PLURALNAME: "Datoteke" - SINGULARNAME: "Datoteka" ImageField: IMAGE: "Slika" - Image_Cached: - PLURALNAME: "Datoteke" - SINGULARNAME: "Datoteka" Image_iframe.ss: TITLE: "Slika \"uploading iframe\"" + LeftAndMain: + CANT_REORGANISE: "Nimate pravic za spreminjanje strukture, zato vaša sprememba ni bila shranjena." + HELP: "Pomoč" + PAGETYPE: "Tip strani:" + PERMAGAIN: "Odjavili ste se iz CMS-vmesnika. Če se želite ponovno prijaviti, vpišite uporabniško ime in geslo." + PERMALREADY: "Do tega dela CMS-vmesnika nimate dostopa. Če se želite vpisati z drugim uporabniškim imenom, lahko to storite spodaj" + PERMDEFAULT: "Izberite način avtentikacije in vpišite svoje podatke za dostop do CMS-vmesnika." + PLEASESAVE: "Shranite stran: te strani ne morete posodobiti, ker še ni bila shranjena." + SAVED: "shranjeno" LoginAttempt: Email: "E-naslov" IP: "IP-naslov" - PLURALNAME: "Poskusi prijave" - SINGULARNAME: "Poskus prijave" Status: "Stanje" Member: ADDRESS: "Naslov" @@ -278,49 +273,53 @@ sl: db_PasswordExpiry: "Datum poteka veljavnosti gesla" MemberAuthenticator: TITLE: "Uporabniški račun" - MemberPassword: - PLURALNAME: "Gesla uporabnika" - SINGULARNAME: "Geslo uporabnika" + MemberImportForm: + Help1: "

    Uvoz uporabnikov v formatu CSV (comma-separated values). Prikaži možnosti za napredno urejanje.

    " + Help2: | +

    Napredno urejanje +
      +
    • Dovoljeni stolpci: %s. +
    • Člani imajo unikatne vrednosti < em>Code; posodobljeni so z vrednostmi iz uvožene datoteke. +
    • Skupine so članom pripisane v stolpcu Groups. Skupine so definirane z vrednostjo< em>Code; kadar je navedenih več skupin, so te ločene z vejico. Že dodeljena članstva v skupinah se ne izbrišejo. +
    +

    + ResultCreated: "Število ustvarjenih uporabnikov: %d" + ResultDeleted: "Število izbrisanih uporabnikov: %d" + ResultNone: "Ni sprememb" + ResultUpdated: "Število posodobljenih uporabnikov: %d" + ModelAdmin: + DELETE: "Izbriši" + DELETEDRECORDS: "Število izbrisanih zapisov: %s" + IMPORT: "Uvozi CSV-datoteko" + IMPORTEDRECORDS: "Število uvoženih zapisov: %s" + NOCSVFILE: "Poiščite CSV-datoteko za uvoz" + NOIMPORT: "Ne najdem ničesar za uvoz" + UPDATEDRECORDS: "Število posodobljenih zapisov: %s" MoneyField: FIELDLABELAMOUNT: "Znesek" FIELDLABELCURRENCY: "Valuta" - MyEntity: - MyNamespace: "Privzeta vrednost za moj naravni jezik" - MyNamespace: - MYENTITY: "Štetje enot: %s" NullableField: IsNullLabel: "Prazno polje" NumericField: VALIDATION: "\"%s\" ni število. V to polje pa lahko zapišete samo števila" - VALIDATIONJS: "ni število; v to polje je možno vpisati samo števila" - Page: - PLURALNAME: "Strani" - SINGULARNAME: "Stran" Permission: AdminGroup: "Administrator" + CMS_ACCESS_CATEGORY: "Dostop do CMS-vmesnika" FULLADMINRIGHTS: "Popolne administratorske pravice" FULLADMINRIGHTS_HELP: "Lahko izniči oziroma upravlja z vsemi drugimi dovoljenji." - PLURALNAME: "Dovoljenja" - SINGULARNAME: "Dovoljenje" PermissionCheckboxSetField: AssignedTo: "dodeljeno: %s" FromGroup: "podedovano iz skupine \"%s\"" FromRole: "podedovano iz vloge \"%s\"" FromRoleOnGroup: "podedovano iz vloge \"%s\" na skupino \"%s\"" - PermissionRole: - PLURALNAME: "Vloge" - SINGULARNAME: "Vloga" - PermissionRoleCode: - PLURALNAME: "Dovoljenja posameznih vlog" - SINGULARNAME: "Dovoljenja posamezne vloge" Permissions: PERMISSIONS_CATEGORY: "Vloge in dovoljenja za dostop" PhoneNumberField: VALIDATION: "Vpišite veljavno telefonsko številko" RelationComplexTableField.ss: ADD: "Dodaj" - CSVEXPORT: "Izvozi v CSV-datoteko" - NOTFOUND: "Ni zadetkov" + ReportAdmin: + MENUTITLE: "Poročila" Security: ALREADYLOGGEDIN: "Nimate dovoljenja za dostop do te strani. Če imate uporabniško ime z večimi pravicami, se lahko ponovno prijavite." BUTTONSEND: "Pošlji povezavo za ponastavitev gesla" @@ -328,32 +327,33 @@ sl: CHANGEPASSWORDHEADER: "Spremenite geslo" ENTERNEWPASSWORD: "Vpišite novo geslo." ERRORPASSWORDPERMISSION: "Da bi lahko zamenjali geslo, se morate prijaviti." - IPADDRESSES: "IP-naslov" LOGGEDOUT: "Vaša prijava je bila prekinjena. Če se želite ponovno prijaviti, vpišite svoje podatke." LOGIN: "Prijava" - LOSTPASSWORDHEADER: "Pozabljeno geslo" NOTEPAGESECURED: "Stran je zaščitena. Da bi lahko nadaljevali, vpišite svoje podatke." NOTERESETLINKINVALID: |

    Povezava za ponastavitev gesla je neveljavna oziroma je verjetno pretekla.

    -

    Novo povezavo za ponastavitev gesla lahko zahtevate tukaj ali pa ga zamenjate, tako da se prijavite.

    NOTERESETPASSWORD: "Vpišite e-naslov, na katerega vam bomo poslali povezavo za ponastavitev gesla" +

    Novo povezavo za ponastavitev gesla lahko zahtevate tukaj ali pa ga zamenjate, tako da se prijavite.

    + NOTERESETPASSWORD: "Vpišite e-naslov, na katerega vam bomo poslali povezavo za ponastavitev gesla" PASSWORDSENTHEADER: "Povezava za ponastavitev gesla je bila poslana na: %s" PASSWORDSENTTEXT: "Hvala! Povezava za ponastavitev gesla za uporabniški račun, ustvarjen z e-nalovom: %s, je bila poslana." SecurityAdmin: + ACCESS_HELP: "Dovoli ogled, dodajanje in urejanje uporabnikov ter dodeljevanje dovoljenj in vlog zanje." + APPLY_ROLES: "Skupinam pripiši vloge" + APPLY_ROLES_HELP: "Možnost upravljanja z vlogami skupin. Potrebujete dovoljenje za dostop do sklopa \"Varnost\"." + EDITPERMISSIONS: "Upravljanje dovoljenj za skupine" + EDITPERMISSIONS_HELP: "Možnost upravljanja z dovoljenji in IP-naslovi skupin. Potrebujete dovoljenje za dostop do sklopa \"Varnost\"." GROUPNAME: "Ime skupine" - IPADDRESSESHELP: | -

    Skupino lahko omejite na dostop z določenih IP-številk, tako da v vsako vrstico vpišete po eno IP-številko.
    - IP-številke oziroma njihove obsege lahko vpišete na naslednje možne načine:
    - 203.96.152.12
    - 203.96.152/24
    - 203.96/16
    - 203/8

    - - Če bo na tem seznamu navedena najmanj ena IP-številka, bodo pravice, podedovane po tej skupini, dodeljene samo tistim članom, ki se bodo prijavili z enega izmed IP-naslovov na seznamu. S tem pa nikomur ne boste preprečili prijave, saj bodo uporabniki še vedno lahko urejali tiste sklope CMS-vmesnika, ki niso omejeni z dostopom prek določenih IP-naslovov. - MEMBERS: "Člani" + MEMBERS: "Člani" + MENUTITLE: "Varnost" + MemberListCaution: "Pozor! Če boste odstranili uporabnike s tega seznama, jih boste hkrati odstranili iz vseh drugih skupin in izbrisali iz podatkovne zbirke." + NEWGROUP: "Nova Skupina" PERMISSIONS: "Dovoljenja" ROLES: "Vloge" ROLESDESCRIPTION: "Tukaj lahko skupini dodajate vloge. Vloge so logični sklopi dovoljenj, ki jih urejate v zavihku \"Vloge\"." - VIEWUSER: "Prikaži uporabnika" + TABROLES: "Vloge" + SecurityAdmin_MemberImportForm: + BtnImport: "Uvozi" + FileFieldLabel: "CSV-datoteka (Samo končnica: *.csv)" SimpleImageField: NOUPLOAD: "Slika ni naložena" SiteTree: @@ -362,19 +362,14 @@ sl: ISREQUIRED: "V %s je treba vnesti \"%s\"." TableField.ss: ADD: "Dodaj vrstico" - ADDITEM: "Dodaj %s" TableListField: CSVEXPORT: "Izvozi kot CSV-datoteko" PRINT: "Natisni" SELECT: "Izberi:" TableListField.ss: - NOITEMSFOUND: "Ni zadetkov" SORTASC: "Razvrsti naraščajoče" SORTDESC: "Razvrsti padajoče" TableListField_PageControls.ss: - DISPLAYING: "Prikaz" - OF: "od" - TO: "za" VIEWFIRST: "Na začetek" VIEWLAST: "Na konec" VIEWNEXT: "Naslednja" diff --git a/lang/sr.yml b/lang/sr.yml index 3312e727b..c7e83c3eb 100644 --- a/lang/sr.yml +++ b/lang/sr.yml @@ -1,10 +1,17 @@ sr: AssetAdmin: - CHOOSEFILE: "Изаберите датотеку" MENUTITLE: "Fajlovi & Slike" NEWFOLDER: "Нова фасцикла" - AssetAdmin_left.ss: - GO: "Иди" + AssetTableField: + CREATED: "Прво достављено" + DIM: "Димензије" + FILENAME: "Име датотеке" + LASTEDIT: "Последње промењено" + OWNER: "Власник" + SIZE: "Величина" + TITLE: "Наслов" + TYPE: "Тип" + URL: "URL" BBCodeParser: ALIGNEMENT: "Поравнање" ALIGNEMENTEXAMPLE: "поравнат уз десну страну" @@ -39,7 +46,6 @@ sr: HELLO: "Здраво" ComplexTableField.ss: ADDITEM: "Додај " - NOITEMSFOUND: "Нема пронађених ставки" SORTASC: "Сортирај у растућем поретку" SORTDESC: "Сортирају у опадајућем поретку" ComplexTableField_popup.ss: @@ -47,21 +53,15 @@ sr: PREVIOUS: "Претходно" ConfirmedPasswordField: ATLEAST: "Лозинка мора да има најмање %s знакова." - HAVETOMATCH: "Лозинке морају да се поклапају." - LEASTONE: "Лозинке морају да имају најмање једну цифру и један алфанумерички знак." MAXIMUM: "Лозинка може да има највише %s знакова." - NOEMPTY: "Лозинке не могу да буду празне." SHOWONCLICKTITLE: "Promeni Lozinku" CreditCardField: FIRST: "први" FOURTH: "четврти" SECOND: "други" THIRD: "трећи" - VALIDATIONJS1: "Проверите да ли сте унели" - VALIDATIONJS2: "исправан број кредитне картице." CurrencyField: CURRENCYSYMBOL: "дин." - VALIDATIONJS: "Унесите исправну валуту." Date: DAY: "дан" DAYS: "дана" @@ -77,28 +77,14 @@ sr: YEARS: "година" DateField: TODAY: "данас" - VALIDATIONJS: "Унесите исправан формат датума (ДД/ММ/ГГГГ)." DropdownField: CHOOSE: "(изаберите)" EmailField: VALIDATION: "Унесите адресу е-поште." - VALIDATIONJS: "Унесите имејл адресу." File: PLURALNAME: "Fajlovi" SINGULARNAME: "Fajl" TOOLARGE: "Velicina fajl-a je prevelika, maksimum dozvoljena velicina je %s" - Folder: - DELSELECTED: "Обриши изабране датотеке" - DETAILSTAB: "Детаљи" - FILENAME: "Име датотеке" - FILESTAB: "Датотеке" - LASTEDITED: "З" - PLURALNAME: "Fajlovi" - SINGULARNAME: "Fajl" - TITLE: "Наслов" - TYPE: "Тип" - UPLOADTAB: "Достави" - URL: "URL" ForgotPasswordEmail.ss: HELLO: "Здраво" Form: @@ -115,13 +101,9 @@ sr: Group: Code: "Grupni Kod" Locked: "Zakljucano?" - PLURALNAME: "Grupe" - SINGULARNAME: "Grupa" has_many_Permissions: "Ovlašcenja" many_many_Members: "članovi" HtmlEditorField: - BUTTONINSERTFLASH: "Уметни флеш датотеку" - BUTTONINSERTIMAGE: "Уметни слику" BUTTONINSERTLINK: "Уметни линк" BUTTONREMOVELINK: "Уклони линк" CSSCLASS: "Поравнање / стил" @@ -130,7 +112,6 @@ sr: CSSCLASSRIGHT: "Са десне стране, са текстом преломљеним около." EMAIL: "Адреса е-поште" FILE: "Датотека" - FLASH: "Флеш" FOLDER: "Фасцикла" IMAGE: "Слика" IMAGEDIMENSIONS: "Димензије" @@ -146,9 +127,6 @@ sr: LINKTO: "Повежи на" PAGE: "Страна" URL: "URL" - Image: - PLURALNAME: "Fajlovi" - SINGULARNAME: "Fajl" Image_iframe.ss: TITLE: "Iframe за достављање слика" LeftAndMain: @@ -160,8 +138,6 @@ sr: PLEASESAVE: "Сачувајте страну: ова страна не може да буде ажурирана јер још увек није сачувана." SAVED: "сачувано" LoginAttempt: - PLURALNAME: "Login Pokušaja" - SINGULARNAME: "Login Pokušaj" Member: ADDRESS: "Адреса" BUTTONCHANGEPASSWORD: "Промени лозинку" @@ -201,22 +177,12 @@ sr: db_PasswordExpiry: "Datum Isteka Lozinke" MemberAuthenticator: TITLE: "Пошаљи лозинку" - MemberPassword: - PLURALNAME: "Lozinke člana" - SINGULARNAME: "Lozinka člana" - MemberTableField: - ADD: "Додај" - ADDEDTOGROUP: "Члан додат групи" - ADDINGFIELD: "Додавање није успело" - FILTER: "Филтер" - SEARCH: "Претрага" NumericField: VALIDATION: "'%s' није број. У ово поље могу да буду унесени само бројеви." PhoneNumberField: VALIDATION: "Унесите исправан број телефона" RelationComplexTableField.ss: ADD: "Додај" - NOTFOUND: "Нема пронађених ставки" ReportAdmin: MENUTITLE: "Izvestaji" Security: @@ -226,19 +192,15 @@ sr: CHANGEPASSWORDHEADER: "Промени моју лозинку" ENTERNEWPASSWORD: "Унесите нову лозинку." ERRORPASSWORDPERMISSION: "Морате да будете пријављени да бисте променили своју лозинку!" - IPADDRESSES: "IP адресе" LOGGEDOUT: "Одјављени сте. Уколико желите да се поново пријавите, унесите своје податке." LOGIN: "Пријављивање" - LOSTPASSWORDHEADER: "Изгубљена лозинка" NOTEPAGESECURED: "Ова страна је обезбеђена. Унесите своје податке и ми ћемо вам послати садржај." NOTERESETPASSWORD: "Унесите своју адресу е-поште и ми ћемо вам послати линк помоћу којег можете да промените своју лозинку" PASSWORDSENTHEADER: "Линк за ресетовање лозинке послат на '%s'" PASSWORDSENTTEXT: "Хвала вам! Линк за промену лозинке је послат на '%s'." SecurityAdmin: - ADDMEMBER: "Додај члана" MENUTITLE: "Zastita" NEWGROUP: "Нова група" - SGROUPS: "Безбедносне групе" SimpleImageField: NOUPLOAD: "Ниједна слика није достављена" SiteTree: @@ -251,9 +213,6 @@ sr: CSVEXPORT: "Извези у CSV" PRINT: "Штампај" TableListField_PageControls.ss: - DISPLAYING: "Приказујем" - OF: "од" - TO: "до" VIEWNEXT: "Погледај следеће" VIEWPREVIOUS: "Погледај претходно" ToggleCompositeField.ss: diff --git a/lang/sv.yml b/lang/sv.yml index cc478943e..719c25934 100644 --- a/lang/sv.yml +++ b/lang/sv.yml @@ -1,10 +1,17 @@ sv: AssetAdmin: - CHOOSEFILE: "Välj fil" MENUTITLE: "Filer & bilder" NEWFOLDER: "Ny mapp" - AssetAdmin_left.ss: - GO: "Kör" + AssetTableField: + CREATED: "Först uppladdad" + DIM: "Dimensioner" + FILENAME: "Filnamn" + LASTEDIT: "Senast ändrad" + OWNER: "Ägare" + SIZE: "Storlek" + TITLE: "Titel" + TYPE: "Typ" + URL: "URL" BBCodeParser: ALIGNEMENT: "Justering" ALIGNEMENTEXAMPLE: "högerjusterad" @@ -38,9 +45,9 @@ sv: ANY: "Valfri" NO: "Nej" YES: "Ja" - CMSBatchActions: - PUBLISHED_PAGES: "Publicerat %d sidor, %d misslyckades" CMSMain: + ACCESS: "Tillgång till '%s' (%s)" + ACCESSALLINTERFACES: "Tillgång till alla CMS-delar" MENUTITLE: "Sidor" SAVE: "Spara" ChangePasswordEmail.ss: @@ -58,7 +65,6 @@ sv: SUCCESSEDIT: "Sparade %s %s %s" ComplexTableField.ss: ADDITEM: "Lägg till %s" - NOITEMSFOUND: "Hittade inga artiklar" SORTASC: "Sortera stigande" SORTDESC: "Sortera fallande" ComplexTableField_popup.ss: @@ -67,21 +73,15 @@ sv: ConfirmedPasswordField: ATLEAST: "Lösenord måste bestå av minst %s tecken." BETWEEN: "Lösenord måste vara mellan %s och %s tecken långt." - HAVETOMATCH: "Lösenorden måste matcha." - LEASTONE: "Lösenord måste innehålla minst en siffra och en bokstav." MAXIMUM: "Lösenord får inte bestå av fler än %s tecken." - NOEMPTY: "Lösenordsfältet får inte vara tomt." SHOWONCLICKTITLE: "Ändra lösenord" CreditCardField: FIRST: "första" FOURTH: "fjärde" SECOND: "andra" THIRD: "tredje" - VALIDATIONJS1: "Försäkra dig om att du har angett" - VALIDATIONJS2: "kreditkortsnumret rätt." CurrencyField: CURRENCYSYMBOL: "dollar" - VALIDATIONJS: "Var god ange en giltig valuta." DataObject: PLURALNAME: "Dataobjekt" SINGULARNAME: "Dataobjekt" @@ -102,14 +102,12 @@ sv: DateField: NOTSET: "inte angivet" TODAY: "idag" - VALIDATIONJS: "Var god och ange ett giltigt datumformat (DD/MM/ÅÅÅÅ)." VALIDDATEMAXDATE: "Ditt datum måste vara äldre eller matcha maximalt tillåtna datumet (%s)" VALIDDATEMINDATE: "Ditt datum måste vara nyare eller matcha minimalt tillåtna datumet (%s)" DropdownField: CHOOSE: "(Välj)" EmailField: VALIDATION: "Var god ange en e-postadress." - VALIDATIONJS: "Ange en e-postadress." Email_BounceRecord: PLURALNAME: "E-post ej giltig mottagare register" SINGULARNAME: "E-post ej giltig mottagare register" @@ -124,7 +122,6 @@ sv: Name: "Namn" PLURALNAME: "Filer" SINGULARNAME: "Fil" - Sort: "Sorteringsordning" TOOLARGE: "Filstorleken är för stor, största möjliga är %s." Title: "Titel" FileIFrameField: @@ -136,22 +133,6 @@ sv: FROMFILESTORE: "Från filarkivet" NOSOURCE: "Vänligen välj en käll-fil att tillägga" REPLACE: "Ersätt %s" - FileIFrameField.ss: - TITLE: "Bild uppladdning Iframe" - Folder: - CREATED: "Först uppladdade" - DELSELECTED: "Radera markerade filer" - DETAILSTAB: "Detaljer" - FILENAME: "Filnamn" - FILESTAB: "Filer" - LASTEDITED: "Senast uppdaterade" - PLURALNAME: "Filer" - SINGULARNAME: "Fil" - TITLE: "Titel" - TYPE: "Skriv" - UPLOADTAB: "Ladda upp" - URL: "URL" - VIEWEDITASSET: "Visa/redigera tillgång" ForgotPasswordEmail.ss: HELLO: "Hej" TEXT1: "Här är din" @@ -174,13 +155,9 @@ sv: DefaultGroupTitleAdministrators: "Administratörer" DefaultGroupTitleContentAuthors: "Författare" Description: "Beskrivning" - IMPORTTABTITLE: "Import" - IPRestrictions: "IP-adressrestriktioner" Locked: "Låst?" - PLURALNAME: "Grupper" Parent: "Föräldragrupp" RolesAddEditLink: "Lägg till/redigera roller" - SINGULARNAME: "Grupp" Sort: "Sorteringsordning" has_many_Permissions: "Tillstånd" many_many_Members: "Medlemmar" @@ -195,13 +172,12 @@ sv:

  • Gruppernas hierarki kan skapas genom att lägga till en ParentCode kolumn.
  • Tillträdes koder kan tilldelas genom att lägga till en PermissionCode kolumn. Existerande tillträdes koder raderas ej.
  • - ResultCreated: "Skapade %d grupper" + + ResultCreated: "Skapade %d grupper" ResultDeleted: "Raderade %d grupper" ResultUpdated: "Uppdaterade %d grupper" HtmlEditorField: ANCHORVALUE: "Ankare" - BUTTONINSERTFLASH: "Infoga Flash" - BUTTONINSERTIMAGE: "Infoga bild" BUTTONINSERTLINK: "Infoga länk" BUTTONREMOVELINK: "Ta bort länk" CAPTIONTEXT: "Bildtext" @@ -212,7 +188,6 @@ sv: CSSCLASSRIGHT: "Till höger, med text runt omkring." EMAIL: "E-postadress" FILE: "Fil" - FLASH: "Flash" FOLDER: "Mapp" IMAGE: "Bild" IMAGEALTTEXT: "Alternativ text (alt) - visas om bilden inte kan visas" @@ -228,20 +203,11 @@ sv: LINKFILE: "Ladda ner en fil" LINKINTERNAL: "Sida på sajten" LINKOPENNEWWIN: "Öppna länk i nytt fönster" - LINKTEXT: "Länktext" LINKTO: "Länka till" PAGE: "Sida" - SEARCHFILENAME: "Sök efter filnamn" - SHOWUPLOADFORM: "Ladda upp fil" URL: "URL" - Image: - PLURALNAME: "Filer" - SINGULARNAME: "Fil" ImageField: IMAGE: "Bild" - Image_Cached: - PLURALNAME: "Filer" - SINGULARNAME: "Fil" Image_iframe.ss: TITLE: "Iframe för uppladdning" LeftAndMain: @@ -253,13 +219,9 @@ sv: PERMDEFAULT: "Var god välj en inloggningsmetod och fyll i dina uppgifter för att logga in i CMSet." PLEASESAVE: "Var god spara sidan. Den här sidan kan inte uppdateras för den har inte sparats än." SAVED: "sparad" - LeftAndMain_right.ss: - WELCOMETO: "Välkommen till" LoginAttempt: Email: "E-postadress" IP: "IP-adress" - PLURALNAME: "Inloggningsförsök" - SINGULARNAME: "Inloggningsförsök" Status: "Status" Member: ADDRESS: "Adress" @@ -320,82 +282,41 @@ sv:
  • Existerande medlemmar matchas med deras unika Code väre, och uppdateras med nya värden från den importerade filen
  • Grupper kan tilldelas genom Grupp kolumnen. Grupper identifieras genom deras Code värde, multipla grupper kan separeras med komma. Existerande gruppmedlemskap raderas ej
  • - ResultCreated: "Skapade %d medlemmar" + + ResultCreated: "Skapade %d medlemmar" ResultDeleted: "Raderade %d medlemmar" ResultNone: "Inga ändringar" ResultUpdated: "Uppdaterade %d medlemmar" - MemberPassword: - PLURALNAME: "Medlemslösenord" - SINGULARNAME: "Medlemslösenord" - MemberTableField: - ADD: "Lägg till" - ADDEDTOGROUP: "La till medlem till grupp" - ADDINGFIELD: "Uppdateringen misslyckades" - DeleteTitleText: "Radera från denna grupp" - DeleteTitleTextDatabase: "Radera från databas och alla grupper" - ERRORADDINGUSER: "Det var ett uppstod ett fel när du la till användare till gruppen:% s" - FILTER: "Filtrera" - SEARCH: "Sök" ModelAdmin: - ADDBUTTON: "Lägg till" - ADDFORM: "Fyll i det här formuläret för att lägga till ett %s i databasen." - CHOOSE_COLUMNS: "Välj resultatkolumner" - CLEAR_SEARCH: "Rensa sökning" - CREATEBUTTON: "Skapa '%s'" DELETE: "Ta bort" DELETEDRECORDS: "Raderade %s poster." - FOUNDRESULTS: "Din sökning gav %s matchande träffar" IMPORT: "Importera från CSV" IMPORTEDRECORDS: "Importerade %s poster." - ITEMNOTFOUND: "Jag kan inte hitta den saken" - LOADEDFOREDITING: "Tog fram '%s' för redigering." NOCSVFILE: "Var god och bläddra efter en CSV-fil för import" NOIMPORT: "Inget att importera" - NORESULTS: "Inget resultat" - SAVE: "Spara" - SEARCHRESULTS: "Sökresultat" - SELECTALL: "välj alla" - SELECTNONE: "välj ingen" UPDATEDRECORDS: "Uppdaterade %s poster." MoneyField: FIELDLABELAMOUNT: "Summa" FIELDLABELCURRENCY: "Valuta" - MyEntity: - MyNamespace: "Mitt standardmodersmål" - MyNamespace: - MYENTITY: "Räknar %s saker" NullableField: - IsNullLabel: "Äf Null" + IsNullLabel: "Är Null" NumericField: VALIDATION: "'%s' är inget nummer. Bara nummer är accepterat för detta fält" - VALIDATIONJS: "är inte ett nummer, och bara nummer är accepterade i det här fältet." - Page: - PLURALNAME: "Sidor" - SINGULARNAME: "Sida" Permission: AdminGroup: "Administratör" + CMS_ACCESS_CATEGORY: "CMS Tillgång" FULLADMINRIGHTS: "Fulla administrativa rättigheter" - PLURALNAME: "Tillstånd" - SINGULARNAME: "Tillstånd" PermissionCheckboxSetField: AssignedTo: "tilldelad \"%s\"" FromGroup: "ärvt från grupp \"%s\"" FromRole: "ärvt från roll \"%s\"" FromRoleOnGroup: "ärvt från roll \"%s\" i grupp \"%s\"" - PermissionRole: - PLURALNAME: "Roller" - SINGULARNAME: "Roll" - PermissionRoleCode: - PLURALNAME: "Tillgångs Rolls Koder" - SINGULARNAME: "Tillgångs Roll Kod" Permissions: PERMISSIONS_CATEGORY: "Roller och tillgångs inställningar" PhoneNumberField: VALIDATION: "Var god ange ett giltigt telefonnummer" RelationComplexTableField.ss: ADD: "Lägg till" - CSVEXPORT: "Exportera till CSV" - NOTFOUND: "Hitta inga artiklar" ReportAdmin: MENUTITLE: "Rapporter" Security: @@ -405,37 +326,28 @@ sv: CHANGEPASSWORDHEADER: "Ändra ditt lösenord" ENTERNEWPASSWORD: "Var god ange ett nytt lösenord" ERRORPASSWORDPERMISSION: "Du måste logga in för att kunna ändra ditt lösenord" - IPADDRESSES: "IP-adresser" LOGGEDOUT: "Du har blivit utloggad. Om du vill logga in igen anger du dina uppgifter nedan." LOGIN: "Logga in" - LOSTPASSWORDHEADER: "Förlorat lösenord" NOTEPAGESECURED: "Den här sidan är låst. Fyll i dina uppgifter nedan så skickar vi dig vidare." NOTERESETLINKINVALID: "

    Lösenordsåterställningslänke är felaktig eller för gammal.

    Du kan beställa en ny här eller ändra ditt lösenord efter att du har loggat in.

    " NOTERESETPASSWORD: "Ange din e-postadress så skickar vi en länk med vilken du kan återställa ditt lösenord" PASSWORDSENTHEADER: "Länk för återställning av lösenord är skickad till '%s'" PASSWORDSENTTEXT: "Tack! Länken för att återställa lösenordet har skickats till '%s'." SecurityAdmin: - ADDMEMBER: "Lägg till medlem" + ACCESS_HELP: "Tillåt visning, tillägg samt redigering av användare, samt att tilldela tillträdes koder och roller till dem." APPLY_ROLES: "Applicera roller till grupper" APPLY_ROLES_HELP: "Förmåga att redigera rollerna tilldelade en grupp. Kräver \"Tillträde till 'Säkerhets' sektionen\" tillgång." EDITPERMISSIONS: "Redigera tillstånd för grupper" EDITPERMISSIONS_HELP: "Förmåga att redigera Tillgång samt IP Adresser för en grupp. Kräver \"Tillträde till 'Säkerhets' sektionen\" tillgång." GROUPNAME: "Gruppnamn" - IPADDRESSESHELP: | -

    Du kan avgränsa den här gruppen till ett specifikt IP-nummerurval (ett urval per rad).
    203.96.152.12
    - 203.96.152/24
    - 203.96/16
    - 203/8

    Om du anger en eller flera IP-nummerurval i den här textboxen kan medlemmar i gruppen bara komma åt sina fulla rättigheter om de loggar in från en godkänd IP-adress. Medlemmar kommer inte att hindras från att logga in, eftersom de kan ha andra behörigheter i systemet som inte kräver en godkänd IP-adress. MEMBERS: "Medlemmar" + MEMBERS: "Medlemmar" MENUTITLE: "Säkerhet" MemberListCaution: "Varning: Att radera medlemmar från den här listan kommer också att radera dem från alla grupper i databasen" NEWGROUP: "Ny grupp" PERMISSIONS: "Behörigheter" ROLES: "Roller" ROLESDESCRIPTION: "Den här sektionen låter dig lägga till roller till den här gruppen. Roller är logiska tillgångs grupper, som kan redigeras i Roller-fliken" - SGROUPS: "Säkerhetsgrupp" - TABIMPORT: "Importera" TABROLES: "Roller" - VIEWUSER: "Visa användare" SecurityAdmin_MemberImportForm: BtnImport: "Importera" FileFieldLabel: "CSV Fil (Tillåtna filtyper: *.csv)" @@ -447,19 +359,14 @@ sv: ISREQUIRED: "I %s är '%s' obligatorisk." TableField.ss: ADD: "Lägg till ny rad" - ADDITEM: "Lägg till % s" TableListField: CSVEXPORT: "Exportera till CSV" PRINT: "Skriv ut" SELECT: "Välj:" TableListField.ss: - NOITEMSFOUND: "Inga föremål hittade" SORTASC: "Sortera i stigande ordning" SORTDESC: "Sortera i fallande ordning" TableListField_PageControls.ss: - DISPLAYING: "Visar" - OF: "av" - TO: "till" VIEWFIRST: "Visa första" VIEWLAST: "Visa sista" VIEWNEXT: "Visa nästa" diff --git a/lang/th.yml b/lang/th.yml index 474c39e78..0b754d36d 100644 --- a/lang/th.yml +++ b/lang/th.yml @@ -1,76 +1,248 @@ th: AssetAdmin: - CHOOSEFILE: "เลือกไฟล์" - MENUTITLE: "ไฟล์และภาพ" + MENUTITLE: "ไฟล์และรูปภาพ" + NEWFOLDER: "สร้างโฟลเดอร์ใหม่" + AssetTableField: + CREATED: "อัพโหลดครั้งแรก" + DIM: "สัดส่วนกว้างยาว" + FILENAME: "ชื่อไฟล์" + LASTEDIT: "เปลี่ยนแปลงล่าสุด" + OWNER: "เจ้าของ" + SIZE: "ขนาด" + TITLE: "ชื่อ" + TYPE: "ชนิด" + URL: "URL" + BBCodeParser: + EMAILLINKDESCRIPTION: "สร้างลิงค์ให้กับที่อยู่อีเมล์" + IMAGE: "รูปภาพ" + IMAGEDESCRIPTION: "แสดงรูปภาพในหน้าบทความของคุณ" + BasicAuth: + ENTERINFO: "กรุณากรอกชื่อผู้ใช้และรหัสผ่าน" + ERRORNOTADMIN: "ผู้ใช้งานรายดังกล่าวไม่ใช่ผู้ดูแลระบบ" + Boolean: + NO: "ไม่ตกลง" + YES: "ตกลง" CMSMain: - MENUTITLE: "เนื้อหาเว็บไซต์" + ACCESS: "เข้าถึงส่วน '%s'" + ACCESSALLINTERFACES: "เข้าถึงพื้นที่ในส่วนของ CMS ทั้งหมด" + MENUTITLE: "หน้าเว็บ" SAVE: "บันทึก" ChangePasswordEmail.ss: - CHANGEPASSWORDTEXT1: "คุณเปลี่ยนรหัสผ่านสำหรับ" + CHANGEPASSWORDTEXT1: "คุณได้เปลี่ยนรหัสผ่านสำหรับ" + EMAIL: "อีเมล" + HELLO: "สวัสดี" + PASSWORD: "รหัสผ่าน" + CheckboxField: + NO: "ไม่ตกลง" + YES: "ตกลง" + ComplexTableField: + CLOSEPOPUP: "ปิดหน้าต่างป๊อปอัพ" + SUCCESSADD: "เพิ่มแล้ว %s %s %s" + SUCCESSEDIT: "บันทึกแล้ว %s %s %s" ComplexTableField.ss: ADDITEM: "เพิ่ม %s" + SORTASC: "จัดเรียงจากน้อยมามาก" + SORTDESC: "จัดเรียงจากมากไปน้อย" + ComplexTableField_popup.ss: + NEXT: "ถัดไป" + PREVIOUS: "ก่อนหน้า" ConfirmedPasswordField: SHOWONCLICKTITLE: "เปลี่ยนรหัสผ่าน" + CreditCardField: + SECOND: "วินาที" + CurrencyField: + CURRENCYSYMBOL: "$" Date: + DAY: "วัน" + DAYS: "วัน" + HOUR: "ชั่วโมง" + HOURS: "ชั่วโมง" + MIN: "นาที" + MINS: "นาที" + MONTH: "เดือน" + MONTHS: "เดือน" + SEC: "วินาที" + SECS: "วินาที" TIMEDIFFAGO: "%s ที่ผ่านมา" + YEAR: "ปี" + YEARS: "ปี" + DateField: + TODAY: "วันนี้" DropdownField: CHOOSE: "(เลือก)" + EmailField: + VALIDATION: "กรุณากรอกที่อยู่อีเมล" File: + Content: "เนื้อหา" + Filename: "ชื่อไฟล์" INVALIDEXTENSION: "ส่วนขยายไม่ได้รับอนุญาต (ถูกต้อง: %s)" PLURALNAME: "ไฟล์" SINGULARNAME: "ไฟล์" TOOLARGE: "ไฟล์ขนาดใหญ่เกินไป จำกัดสูงสุดที่ %s" - Folder: - PLURALNAME: "ไฟล์" - SINGULARNAME: "ไฟล์" + FileIFrameField: + ATTACH: "แนบไฟล์ %s" + DELETE: "ลบ %s" + FILE: "ไฟล์" + FROMCOMPUTER: "จากเครื่องคอมพิวเตอร์ของคุณ" + REPLACE: "แทนที่ %s" + ForgotPasswordEmail.ss: + HELLO: "สวัสดี" + TEXT1: "นี่คือ" + TEXT2: "ลิงค์รีเซ็ตรหัสผ่าน" + TEXT3: "สำหรับ" + Form: + VALIDATIONPASSWORDSDONTMATCH: "รหัสผ่านไม่ตรงกัน" + VALIDATIONPASSWORDSNOTEMPTY: "รหัสผ่านไม่สามารถเว้นว่างได้" Group: Code: "รหัสกลุ่ม" + DefaultGroupTitleAdministrators: "ผู้ดูและระบบ" + DefaultGroupTitleContentAuthors: "ผู้แต่งเนื้อหา" + Description: "คำอธิบาย" Locked: "ล็อค?" - PLURALNAME: "กลุ่ม" - Parent: "กลุ่มแม่" - SINGULARNAME: "กลุ่ม" + Parent: "กลุ่มหลักต้นทาง" + RolesAddEditLink: "เพิ่ม/แก้ไขบทบาท" + Sort: "จัดลำดับ" has_many_Permissions: "สิทธิ์" many_many_Members: "สมาชิก" + GroupImportForm: + ResultCreated: "สร้างแล้ว %d กลุ่ม" + ResultDeleted: "ลบกลุ่มแล้ว %d กลุ่ม" + ResultUpdated: "อัพเดทแล้ว %d กลุ่ม" HtmlEditorField: - Image: - PLURALNAME: "ไฟล์" - SINGULARNAME: "ไฟล์" + BUTTONINSERTLINK: "แทรกลิงค์" + BUTTONREMOVELINK: "ลบลิงค์" + CAPTIONTEXT: "ข้อความคำอธิบายใต้ภาพ" + CSSCLASS: "การจัดวาง / รูปแบบ" + EMAIL: "ที่อยู่อีเมล" + FILE: "ไฟล์" + FOLDER: "โฟลเดอร์" + IMAGE: "รูปภาพ" + IMAGEHEIGHTPX: "ส่วนสูง" + IMAGEWIDTHPX: "ความกว้าง" + LINK: "ลิงก์" + LINKDESCR: "คำอธิบายลิงค์" + LINKEMAIL: "ที่อยู่อีเมล" + LINKEXTERNAL: "เว็บไซต์อื่นๆ" + LINKFILE: "ดาวน์โหลดไฟล์" + LINKINTERNAL: "หน้าเว็บบนเว็บไซต์" + LINKOPENNEWWIN: "เปิดลิงค์ในหน้าต่างใหม่" + LINKTO: "ลิงค์ไปที่" + PAGE: "หน้าเว็บ" + URL: "URL" + ImageField: + IMAGE: "รูปภาพ" LeftAndMain: HELP: "ช่วยเหลือ" - PAGETYPE: "ประเภทหน้า:" - SAVED: "บันทึก" + PAGETYPE: "ชนิดหน้าเว็บ:" + PERMAGAIN: "คุณได้ออกจากระบบของ CMS แล้ว หากคุณต้องการเข้าสู่ระบบอีกครั้ง กรุณากรอกชื่อผู้ใช้งานและรหัสผ่านของคุณด้านล่าง" + PERMALREADY: "ขออภัย, คุณไม่สามารถเข้าใช้งานในส่วนนี้ของ CMS ได้ หากคุณต้องการเข้าสู่ระบบในชื่ออื่นได้จากด้านล่าง" + PERMDEFAULT: "กรุณาเลือกวิธีการยืนยันตัวบุคคลและกรอกข้อมูลประจำตัวเพื่อเข้าใช้งาน CMS" + PLEASESAVE: "กรุณาบันทึกหน้าเว็บ หน้าเว็บนี้ยังไม่สามรถอัพเดทข้อมูลได้ เนื่องจากยังไม่ได้ถูกบันทึกข้อมูล" + SAVED: "บันทึกแล้ว" + LoginAttempt: + Email: "ที่อยู่อีเมล" + IP: "ไอพีเครื่อง" + Status: "สถานะ" Member: - EMAIL: "Email" - INTERFACELANG: "ภาษา" + BUTTONCHANGEPASSWORD: "เปลี่ยนรหัสผ่าน" + BUTTONLOGIN: "เข้าสู่ระบบ" + BUTTONLOSTPASSWORD: "ฉันลืมรหัสผ่านของฉัน" + CONFIRMNEWPASSWORD: "ยืนยันรหัสผ่านใหม่" + CONFIRMPASSWORD: "ยืนยันรหัสผ่าน" + CONTACTINFO: "ข้อมูลสำหรับติดต่อ" + DefaultAdminFirstname: "ผู้ดูแลที่กำหนดไว้เริ่มต้น" + EMAIL: "อีเมล" + EMAILSIGNUPSUBJECT: "ขอบคุณที่สมัครลงทะเบียนกับเรา" + ENTEREMAIL: "กรุณากรอกที่อยู่อีเมลเพื่อขอรับลิงก์สำหรับรีเซ็ตรหัสผ่านใหม่" + FIRSTNAME: "ชื่อจริง" + GREETING: "ยินดีต้อนรับ" + INTERFACELANG: "ภาษาสำหรับหน้าจอติดต่อผู้ใช้" + LOGGEDINAS: "คุณได้เข้าสู่ระบบในชื่อ %s" + NAME: "ชื่อ" + NEWPASSWORD: "รหัสผ่านใหม่" + PASSWORD: "รหัสผ่าน" + PLURALNAME: "สมาชิก" + PROFILESAVESUCCESS: "บันทึกเรียบร้อยแล้ว" SINGULARNAME: "สมาชิก" SUBJECTPASSWORDCHANGED: "รหัสผ่านได้รับการเปลี่ยนแปลงแล้ว" - SUBJECTPASSWORDRESET: "ลิ้งค์ สำหรับ ตั้งค่า รหัสผ่านใหม่" + SUBJECTPASSWORDRESET: "ลิงค์สำหรับรีเซ็ตรหัสผ่านใหม่ของคุณ" + SURNAME: "นามสกุล" + WELCOMEBACK: "ยินดีต้อนรับกลับมาอีกครั้ง %s" + YOUROLDPASSWORD: "รหัสผ่านเก่าของคุณ" belongs_many_many_Groups: "กลุ่ม" + db_LastVisited: "วันที่เยี่ยมชมล่าสุด" + db_Locale: "ภาษาสำหรับส่วนอินเทอร์เฟซ" + db_NumVisit: "จำนวนการเข้าชม" + db_Password: "รหัสผ่าน" db_PasswordExpiry: "วันที่รหัสผ่านหมดอายุ" - MemberPassword: - PLURALNAME: "รหัสผ่านสมาชิก" - SINGULARNAME: "รหัสผ่านสมาชิก" - MemberTableField: - ADD: "เพิ่ม" - ADDEDTOGROUP: "เพิ่มสมาชิกเข้ากลุ่ม" - DeleteTitleText: "ลบออกจากกลุ่มนี้" - DeleteTitleTextDatabase: "ลบออกจากฐานข้อมูลและทุกกลุ่ม" + MemberAuthenticator: + TITLE: "อีเมล & รหัสผ่าน" + MemberImportForm: + ResultCreated: "สร้างสมาชิกแล้ว %d สมาชิก" + ResultDeleted: "ลบสมาชิกแล้ว %d สมาชิก" + ResultNone: "ยังไม่มีการเปลี่ยนแปลง" + ResultUpdated: "อัพเดทสมาชิกแล้ว %d คน" ModelAdmin: - CREATEBUTTON: "สร้าง '%s'" - Page: - PLURALNAME: "หน้า" - SINGULARNAME: "หน้า" + DELETE: "ลบ" + DELETEDRECORDS: "ลบเรคคอร์ดแล้ว %s เรคคอร์ด" + IMPORT: "นำเข้าจากไฟล์ CSV" + IMPORTEDRECORDS: "นำเข้าเรคคอร์ดแล้ว %s รายการ" + NOCSVFILE: "กรุณาเปิดดูเพื่อเลือกไฟล์ CSV สำหรับนำเข้าข้อมูล" + NOIMPORT: "ไม่มีข้อมูลให้นำเข้า" + UPDATEDRECORDS: "อัพเดทเรคคอร์ดแล้ว %s รายการ" + MoneyField: + FIELDLABELAMOUNT: "จำนวน" + FIELDLABELCURRENCY: "สกุลเงิน" Permission: - PLURALNAME: "สิทธิ์" - SINGULARNAME: "สิทธิ์" - PermissionRole: - PLURALNAME: "บทบาท" - SINGULARNAME: "บทบาท" + AdminGroup: "ผู้ดูแลระบบ" + CMS_ACCESS_CATEGORY: "การเข้าถึง CMS" + RelationComplexTableField.ss: + ADD: "เพิ่ม" ReportAdmin: MENUTITLE: "รายงาน" + Security: + ALREADYLOGGEDIN: "คุณไม่จำเป็นต้องเข้ามาที่หน้าเว็บนี้. หากคุณมีบัญชีอื่นๆที่สามารถเข้าถึงหน้าเว็บนี้ได้อยู่แล้ว คุณสามารถ เข้าสู่ระบบอีกครั้ง" + BUTTONSEND: "ส่งลิงค์รีเซ็ตรหัสผ่านให้กับฉัน" + CHANGEPASSWORDBELOW: "คุณสามารถเปลี่ยนรหัสผ่านของคุณได้จากด้านล่าง" + ENTERNEWPASSWORD: "กรุณากรอกรหัสผ่านใหม่ของคุณ" + ERRORPASSWORDPERMISSION: "คุณต้องเข้าสู่ระบบก่อน จึงจะสามารถเปลี่ยนรหัสผ่านของคุณได้" + LOGIN: "เข้าสู่ระบบ" + PASSWORDSENTHEADER: "ลิงค์รีเซ็ตรหัสผ่านถูกส่งไปยัง '%s' เรียบร้อยแล้ว" SecurityAdmin: + APPLY_ROLES: "กำหนดบทบาทให้กลุ่ม" + EDITPERMISSIONS: "บริหารการสิทธิ์การเข้าใช้งานสำหรับกลุ่ม" + GROUPNAME: "ชื่อกลุ่มสมาชิก" + MEMBERS: "สมาชิก" MENUTITLE: "รักษาความปลอดภัย" + NEWGROUP: "สร้างกลุ่มใหม่" + ROLES: "บทบาท" + TABROLES: "บทบาท" + SecurityAdmin_MemberImportForm: + BtnImport: "นำเข้า" + SimpleImageField: + NOUPLOAD: "ยังไม่มีรูปภาพที่ถูกอัพโหลด" SiteTree: TABMAIN: "หลัก" + TableField.ss: + ADD: "เพิ่มแถวใหม่" + TableListField: + CSVEXPORT: "ส่งข้อมูลออกเป็น CSV" + PRINT: "สั่งพิมพ์" + SELECT: "เลือก" + TableListField.ss: + SORTASC: "จัดเรียงลำดับจากน้อยมามาก" + SORTDESC: "จัดเรียงลำดับจากมากมาน้อย" + TableListField_PageControls.ss: + VIEWFIRST: "ดูหน้าแรก" + VIEWLAST: "เปิดดูหน้าสุดท้าย" + VIEWNEXT: "เปิดดูหน้าเว็บถัดไป" + VIEWPREVIOUS: "เปิดดูหน้าเว็บก่อนหน้า" + TimeField: + VALIDATEFORMAT: "กรุณากรอกรูปแบบเวลาที่ถูกต้อง (%s)" + ToggleCompositeField.ss: + HIDE: "ซ่อน" + SHOW: "แสดง" + ToggleField: + MORE: "เพิ่มเติม" Versioned: has_many_Versions: "เวอร์ชั่น" diff --git a/lang/tr.yml b/lang/tr.yml index 8d39de81d..5dd193254 100644 --- a/lang/tr.yml +++ b/lang/tr.yml @@ -1,10 +1,17 @@ tr: AssetAdmin: - CHOOSEFILE: "Dosya seç" MENUTITLE: "Dosyalar & İmajlar" NEWFOLDER: "YeniKlasör" - AssetAdmin_left.ss: - GO: "Git" + AssetTableField: + CREATED: "Yüklenme tarihi" + DIM: "Boyutları" + FILENAME: "Dosya Adı" + LASTEDIT: "Güncellenme tarihi" + OWNER: "Sahibi" + SIZE: "Boyutu" + TITLE: "Başlık" + TYPE: "Türü" + URL: "URL" BBCodeParser: ALIGNEMENT: "Hizalama" ALIGNEMENTEXAMPLE: "sağa hizalı" @@ -35,6 +42,8 @@ tr: ERRORNOTADMIN: "O kullanıcı, yönetici değildir" ERRORNOTREC: "Kullanıcı adı / şifre hatalı" CMSMain: + ACCESS: "'%s' (%s) erişimi" + ACCESSALLINTERFACES: "Tüm İYS arayüzlerine erişim" MENUTITLE: "Site İçeriği" SAVE: "Kaydet" ChangePasswordEmail.ss: @@ -49,7 +58,6 @@ tr: SUCCESSEDIT: "Kaydedildi %s %s %s" ComplexTableField.ss: ADDITEM: "%s ekle" - NOITEMSFOUND: "Hiçbir öğe bulunamadı" SORTASC: "Sırala (artan)" SORTDESC: "Sırala (azalan)" ComplexTableField_popup.ss: @@ -58,21 +66,15 @@ tr: ConfirmedPasswordField: ATLEAST: "Şifre uzunluğu en az %s karakter olmalı." BETWEEN: "Şifre uzunluğu %s ile %s karakter arası olmalı." - HAVETOMATCH: "Şifreler aynı olmalı." - LEASTONE: "Şifre en az bir nümerik(0-9) ve bir alfanümerik(a-z) karakter içermeli." MAXIMUM: "Şifre uzunluğu en fazla %s karakter olmalı." - NOEMPTY: "Şifreler boş bırakılamaz." SHOWONCLICKTITLE: "Parola Değiştir" CreditCardField: FIRST: "ilk" FOURTH: "dördüncü" SECOND: "ikinci" THIRD: "üçüncü" - VALIDATIONJS1: "Girdiğinizden lütfen emin olun" - VALIDATIONJS2: "kredi kartını doğru olarak." CurrencyField: CURRENCYSYMBOL: "USD" - VALIDATIONJS: "Lütfen geçerli bir para birimi girin." DataObject: PLURALNAME: "Data Nesneleri" SINGULARNAME: "Data Nesnesi" @@ -93,12 +95,10 @@ tr: DateField: NOTSET: "ayarlanmamış" TODAY: "bugün" - VALIDATIONJS: "Lütfen geçerli bir tarih formatı girin (GG-AA-YYYY)." DropdownField: CHOOSE: "(Seçiniz)" EmailField: VALIDATION: "Lütfen bir eposta adresi giriniz" - VALIDATIONJS: "Lütfen e-posta adresini girin." Email_BounceRecord: PLURALNAME: "Eposta Geri-dönüş Kayıtları" SINGULARNAME: "Eposta Geri-dönüş Kaydı" @@ -110,23 +110,8 @@ tr: Name: "Ad" PLURALNAME: "Dosyalar" SINGULARNAME: "Dosya" - Sort: "Sırala" TOOLARGE: "Dosya boyutu çok büyük, izin verilen maksimum boyut: %s" Title: "Başlık" - Folder: - CREATED: "İlk Yüklenmiş" - DELSELECTED: "Seçili dosyaları sil" - DETAILSTAB: "Detaylar" - FILENAME: "Dosya adı" - FILESTAB: "Dosyalar" - LASTEDITED: "Son Güncellenmiş" - PLURALNAME: "Dosyalar" - SINGULARNAME: "Dosya" - TITLE: "Başlık" - TYPE: "Tip" - UPLOADTAB: "Yükle(upload)" - URL: "URL" - VIEWEDITASSET: "Varlıkları Göster/Düzenle" ForgotPasswordEmail.ss: HELLO: "Merhaba" TEXT1: "Profilinize ait" @@ -147,18 +132,13 @@ tr: Group: Code: "Grup Kodu" Description: "Açıklama" - IPRestrictions: "IP Adres Engellemeleri" Locked: "Kilitli?" - PLURALNAME: "Gruplar" Parent: "Ana Grup" - SINGULARNAME: "Grup" Sort: "Sırala" has_many_Permissions: "İzinler" many_many_Members: "Üyeler" HtmlEditorField: ANCHORVALUE: "Anchor(çapa)" - BUTTONINSERTFLASH: "Flash Ekle" - BUTTONINSERTIMAGE: "Resim ekle" BUTTONINSERTLINK: "Bağlantı ekle" BUTTONREMOVELINK: "Bağlantıyı sil" CSSCLASS: "Hizalama / stil" @@ -168,7 +148,6 @@ tr: CSSCLASSRIGHT: "Sağ tarafta, metin ile çevrili" EMAIL: "Eposta adresi" FILE: "Dosya" - FLASH: "Flash" FOLDER: "Klasör" IMAGE: "Resim" IMAGEDIMENSIONS: "Boyutlar" @@ -182,17 +161,9 @@ tr: LINKFILE: "Dosya indir" LINKINTERNAL: "Bu sitedeki bir sayfa (iç bağlantı)" LINKOPENNEWWIN: "Bağlantı yeni bir pencerede mi açılsın?" - LINKTEXT: "Bağlantı metni" LINKTO: "Bağlantı oluştur" PAGE: "Sayfa" - SEARCHFILENAME: "Dosya adıyla ara" URL: "URL" - Image: - PLURALNAME: "Dosyalar" - SINGULARNAME: "Dosya" - Image_Cached: - PLURALNAME: "Dosyalar" - SINGULARNAME: "Dosya" Image_iframe.ss: TITLE: "Resim göndermek için gerekli IFrame" LeftAndMain: @@ -206,8 +177,6 @@ tr: LoginAttempt: Email: "Eposta Adresi" IP: "IP Adresi" - PLURALNAME: "Giriş Denemeleri" - SINGULARNAME: "Giriş Denemesi" Status: "Durum" Member: ADDRESS: "Adres" @@ -255,58 +224,24 @@ tr: db_PasswordExpiry: "Parola için Son Geçerlilik Tarihi" MemberAuthenticator: TITLE: "E-posta & Şifre" - MemberPassword: - PLURALNAME: "Üye Parolaları" - SINGULARNAME: "Üye Parolası" - MemberTableField: - ADD: "Ekle" - ADDEDTOGROUP: "Üye gruba eklendi" - ADDINGFIELD: "Ekleme başarısız" - FILTER: "Filtre" - SEARCH: "Ara" ModelAdmin: - ADDBUTTON: "Ekle" - ADDFORM: "Yeni bir %s eklemek için bu formu doldurun." - CHOOSE_COLUMNS: "Sonuç kolonlarını seçiniz..." - CLEAR_SEARCH: "Aramayı Temizle" - CREATEBUTTON: "'%s' yarat" DELETE: "Sil" DELETEDRECORDS: "Silinen %s kayıt." - FOUNDRESULTS: "Arama sonucu %s eşleşen kayıt bulundu" IMPORT: "CSV'den içer aktar" IMPORTEDRECORDS: "%s kayıt aktarıldı." - ITEMNOTFOUND: "Bu öğeyi bulanamadım" - LOADEDFOREDITING: "'%s' düzenleme için yüklendi." NOCSVFILE: "CSV dosyası ekleme" NOIMPORT: "İçe aktarılacak birşey yok" - NORESULTS: "Sonuç bulunamadı" - SAVE: "Kaydet" - SEARCHRESULTS: "Arama Sonuçları" - SELECTALL: "hepsini seç" - SELECTNONE: "hiçbirini seçme" UPDATEDRECORDS: "Güncellenen %s kayıt." - MyEntity: - MyNamespace: "Anadilimde varsayılan değer" - MyNamespace: - MYENTITY: "%s sayımı" NullableField: IsNullLabel: "Boş değer" NumericField: VALIDATION: "'%s' bir sayı değil, bu alana bir sayı girmeniz gerekmektedir" - VALIDATIONJS: "numara değil, bu kutuda sadece numara kullanılabilir." - Page: - PLURALNAME: "Sayfalar" - SINGULARNAME: "Sayfa" Permission: FULLADMINRIGHTS: "Tüm yönetici(administrator) hakları" - PLURALNAME: "İzinler" - SINGULARNAME: "İzin" PhoneNumberField: VALIDATION: "Lütfen geçerli bir telefon numarası giriniz" RelationComplexTableField.ss: ADD: "Ekle" - CSVEXPORT: "CSV olarak dışa aktar" - NOTFOUND: "Herhangi bir öğe bulunamadı" ReportAdmin: MENUTITLE: "Raporlar" Security: @@ -316,30 +251,23 @@ tr: CHANGEPASSWORDHEADER: "Şifre değiştir" ENTERNEWPASSWORD: "Lütfen bir şifre giriniz." ERRORPASSWORDPERMISSION: "Şifrenizi değiştirebilmek için sisteme giriş yapmış olmanız gerekmektedir!" - IPADDRESSES: "IP Adresleri" LOGGEDOUT: "Çıkış yaptınız. Eğer tekrar giriş yapmak istiyorsanız lütfen kullanıcı bilgilerinizi giriniz." LOGIN: "Oturum aç" - LOSTPASSWORDHEADER: "Şifremi Kaybettim" NOTEPAGESECURED: "O sayfaya erişim kısıtlanmıştır. Lütfen aşağıdaki formu kullanarak kullanıcı bilgilerinizi giriniz." NOTERESETLINKINVALID: "

    Parola belirleme linki geçersiz veya linkin süresi dolmuş.

    Yeni bir tane talep etmek için tıklayınız veya değiştirmek için giriş yapınız.

    " NOTERESETPASSWORD: "E-posta adresinize şifrenizi sıfırlamanızı sağlayacak linki gönderebilmemiz için lütfen e-posta adresinizi giriniz" PASSWORDSENTHEADER: "'%s' adresine gönderildi" PASSWORDSENTTEXT: "Teşekkür ederiz! '%s' adresine gönderildi" SecurityAdmin: - ADDMEMBER: "Yeni Üye Ekle" EDITPERMISSIONS: "Herbir gruptaki izinleri ve IP adreslerini düzenle" GROUPNAME: "Grup adı" - IPADDRESSESHELP: | -

    Bu grubu belirli bir IP adresi aralığı için kısıtlayabilirsiniz. Her bir satıra bir IP aralığı girmelisiniz. IP aralıkları aşağıdaki formatlardan herhangi biri olabilir:
    - 203.96.152.12
    - 203.96.152/24
    - 203.96/16
    - 203/8

    Eğer bu kutuya bir veya daha fazla IP aralığı girerseniz, sadece bu IP aralığındakı IP ye sahip üye bu grubunun haklarına ulaşabilir, fakat bu durum oturum açmasına engel olmaz, çünkü aynı üye IP kısıtlaması olmadan sisteme girmek isteyebilir. MEMBERS: "Üyeler" + MEMBERS: "Üyeler" MENUTITLE: "Güvenlik" NEWGROUP: "Yeni Grup" PERMISSIONS: "İzinler" - SGROUPS: "Güvenlik grupları" - VIEWUSER: "Kullanıcıyı Göster" + TABROLES: "Roller" + SecurityAdmin_MemberImportForm: + BtnImport: "Aktar" SimpleImageField: NOUPLOAD: "Henüz Resim Yüklenmemiş" SiteTree: @@ -351,10 +279,10 @@ tr: TableListField: CSVEXPORT: "CSV olarak kaydet" PRINT: "Yazdır" + TableListField.ss: + SORTASC: "Artan olarak sırala" + SORTDESC: "Azalan olarak sırala" TableListField_PageControls.ss: - DISPLAYING: "Görüntüleniyor" - OF: "/" - TO: "->" VIEWFIRST: "İlkini görüntüle" VIEWLAST: "Sonuncuyu görüntüle" VIEWNEXT: "Sonrakini görüntüle" diff --git a/lang/uk.yml b/lang/uk.yml index b5c554dc3..db0309025 100644 --- a/lang/uk.yml +++ b/lang/uk.yml @@ -1,15 +1,23 @@ uk: AssetAdmin: - CHOOSEFILE: "Вибрати файл" MENUTITLE: "Файли та Картинки" NEWFOLDER: "Нова Тека" - AssetAdmin_left.ss: - GO: "Уперед" + AssetTableField: + CREATED: "Вперше завантажено" + DIM: "Виміри" + FILENAME: "Ім'я файлу" + LASTEDIT: "Востаннє змінено" + OWNER: "Власник" + SIZE: "Розмір" + TITLE: "Назва" + TYPE: "Тип" + URL: "URL" BasicAuth: ENTERINFO: "Будь ласка, введіть ім'я користувача та пароль." ERRORNOTADMIN: "Цей користувач не є адміністратором." ERRORNOTREC: "Таке ім'я користувача / пароль не існує" CMSMain: + ACCESS: "Доступ до секції '%s'" MENUTITLE: "Сторінки" SAVE: "Зберегти" ChangePasswordEmail.ss: @@ -21,7 +29,6 @@ uk: SUCCESSADD: "Додано %s %s %s" ComplexTableField.ss: ADDITEM: "Додати" - NOITEMSFOUND: "Нічого не знайдено" SORTASC: "За зростанням" SORTDESC: "За спаданням" ComplexTableField_popup.ss: @@ -30,9 +37,7 @@ uk: ConfirmedPasswordField: ATLEAST: "Довжина паролю має бути менше %s символів." BETWEEN: "Пароль має бути від %s до %s символів." - HAVETOMATCH: "Паролі мають співпадати" MAXIMUM: "Пароль має бути довшим %s символів." - NOEMPTY: "Пароль не може бути пустим" SHOWONCLICKTITLE: "Змінити пароль" CreditCardField: FIRST: "перший" @@ -63,7 +68,6 @@ uk: CHOOSE: "(Оберіть)" EmailField: VALIDATION: "Будь ласка, введіть адресу е-пошти." - VALIDATIONJS: "Будь ласка введіть ємейл адресу." Enum: ANY: "Будь-який" File: @@ -80,11 +84,6 @@ uk: FROMCOMPUTER: "З Вашого комп’ютера" FROMFILESTORE: "З сервера" REPLACE: "Замінити" - FileIFrameField.ss: - TITLE: "Фрейм для завантаження зображень" - Folder: - PLURALNAME: "Файли" - SINGULARNAME: "Файл" ForgotPasswordEmail.ss: HELLO: "Привіт" Form: @@ -99,15 +98,11 @@ uk: Group: Code: "Код групи" Locked: "Заблокувати?" - PLURALNAME: "Групи" Parent: "Батьківська група" - SINGULARNAME: "Група" has_many_Permissions: "Права" many_many_Members: "Члени" HtmlEditorField: ANCHORVALUE: "Якір" - BUTTONINSERTFLASH: "Вставити носій Flash" - BUTTONINSERTIMAGE: "Вставити зображення" BUTTONINSERTLINK: "Вставити посилання" BUTTONREMOVELINK: "Вмдалити посилання" CAPTIONTEXT: "Текст заголовку" @@ -117,7 +112,6 @@ uk: CSSCLASSRIGHT: "Справа, з текстом навколо." EMAIL: "Адреса е-пошти" FILE: "Файл" - FLASH: "Flash" FOLDER: "Тека" IMAGE: "Зображення" IMAGEALTTEXT: "Альтернативний текст (alt) - відображається якщо зображення не відображається" @@ -136,14 +130,8 @@ uk: LINKTO: "Посилатися на" PAGE: "Сторінка" URL: "URL" - Image: - PLURALNAME: "Файли" - SINGULARNAME: "Файл" ImageField: IMAGE: "Зображення" - Image_Cached: - PLURALNAME: "Файли" - SINGULARNAME: "Файл" Image_iframe.ss: TITLE: "АйФрейм завантаження зображення" LeftAndMain: @@ -155,8 +143,6 @@ uk: PLEASESAVE: "Будь ласка, збережіть сторінку: Ця сторінка не може бути оновлена, бо вона ще не була збережена." SAVED: "збережено" LoginAttempt: - PLURALNAME: "Підтвердження логіну" - SINGULARNAME: "Логін підтверджено" Member: ADDRESS: "Адреса" BUTTONCHANGEPASSWORD: "Змінити пароль" @@ -200,23 +186,8 @@ uk: db_PasswordExpiry: "Дата закінчення терміну дії пароля" MemberAuthenticator: TITLE: "Е-пошта та Пароль" - MemberPassword: - PLURALNAME: "Паролі користувачів" - SINGULARNAME: "Пароль користувача" - MemberTableField: - ADD: "Додати" - ADDEDTOGROUP: "Додані користувачі до групи" - ADDINGFIELD: "Додавання не вдалося." - DeleteTitleText: "Видалити з цієї групи" - DeleteTitleTextDatabase: "Видалити з бази даних та з всіх груп" - FILTER: "Фільтр" - SEARCH: "Пошук" ModelAdmin: - CHOOSE_COLUMNS: "Вибрати результуючі стовпці..." - CLEAR_SEARCH: "Очистити результати пошуку" - CREATEBUTTON: "Створено '%s'" IMPORT: "Імпортувати з CSV" - SEARCHRESULTS: "Результати пошуку" MoneyField: FIELDLABELAMOUNT: "Кількість" FIELDLABELCURRENCY: "Валюта" @@ -224,23 +195,11 @@ uk: IsNullLabel: "Is Null" NumericField: VALIDATION: "'%s' не є числом, для цього поля тільки числа є дійсними" - VALIDATIONJS: "це не число, тільки числа можуть бути введені в це поле" - Page: - PLURALNAME: "Сторінки" - SINGULARNAME: "Сторінка" Permission: - PLURALNAME: "Права" - SINGULARNAME: "Право" PermissionCheckboxSetField: FromGroup: "Успадкований від цієї групи \"%s\"" FromRole: "Успадкований від цієї ролі \"%s\"" FromRoleOnGroup: "Успадкований з ролі \"%s\" на групу \"%s\"" - PermissionRole: - PLURALNAME: "Ролі" - SINGULARNAME: "Роль" - PermissionRoleCode: - PLURALNAME: "Коди ролей доступу" - SINGULARNAME: "Код ролі доступу" PhoneNumberField: VALIDATION: "Будь ласка, введіть дійсний номер телефону" ReportAdmin: @@ -253,17 +212,14 @@ uk: ENTERNEWPASSWORD: "Ви можете змінити пароль нижче." ERRORPASSWORDPERMISSION: "Ви повинні увійти до системи для зміни паролю!" LOGGEDOUT: "Ви вийшли з системи. Якщо Ви хочете знову увійти, то введіть дані нижче." - LOSTPASSWORDHEADER: "Загублений Пароль" NOTEPAGESECURED: "Ця сторінка захищена. Будь ласка, введіть Ваші дані нижче та ми Вас перенаправимо далі." NOTERESETPASSWORD: "Введіть адресу Вашої е-пошти і ми надішлемо вам посилання для відновлення паролю" PASSWORDSENTHEADER: "Посилання відновлення паролю надіслано на '%s'" PASSWORDSENTTEXT: "Дякуємо! Посилання для відновлення паролю було надіслано на '%s'." SecurityAdmin: - ADDMEMBER: "Додати Користувача" EDITPERMISSIONS: "Керувати дозволами для груп" MENUTITLE: "Безпека" NEWGROUP: "Нова Група" - SGROUPS: "Групи безпеки" SimpleImageField: NOUPLOAD: "Не завантажено жодного зображення" SiteTree: diff --git a/lang/ur.yml b/lang/ur.yml deleted file mode 100644 index b9643d53c..000000000 --- a/lang/ur.yml +++ /dev/null @@ -1,11 +0,0 @@ -ur: - CMSMain: - SAVE: "محفوظ" - Date: - DAYS: "دن" - YEAR: "سال" - YEARS: "سال" - Member: - GREETING: "خوش آئندہ" - SecurityAdmin: - MENUTITLE: "حفاظت" diff --git a/lang/uz.yml b/lang/uz.yml index f4177f2ac..ebe8b2106 100644 --- a/lang/uz.yml +++ b/lang/uz.yml @@ -4,23 +4,10 @@ uz: CMSMain: MENUTITLE: "Saytdagi ma'lumotlar" SAVE: "Saqlash" - ChangePasswordEmail.ss: - CHANGEPASSWORDTEXT1: "Yangi parol" - ComplexTableField.ss: - ADDITEM: "Qo'shish" - DropdownField: - CHOOSE: "(Tanlang)" - HtmlEditorField: LeftAndMain: HELP: "Yordam" PAGETYPE: "Sahifa turi:" PERMAGAIN: "Siz saytdan chiqdingiz." PERMALREADY: "Bu erdan saytga kirishingiz mumkin" - Member: - EMAIL: "Email" - INTERFACELANG: "Ko'rinish tili" - SUBJECTPASSWORDCHANGED: "Parol o'zgardi" - SUBJECTPASSWORDRESET: "Parol o'zgartirish uchun adres" SecurityAdmin: MENUTITLE: "Havfsizlik" - SiteTree: diff --git a/lang/vi_US.yml b/lang/vi_US.yml deleted file mode 100644 index 7cba10d3a..000000000 --- a/lang/vi_US.yml +++ /dev/null @@ -1,40 +0,0 @@ -vi_US: - AssetAdmin: - MENUTITLE: "Tài liệu và hình ảnh" - CMSMain: - MENUTITLE: "Trang" - ConfirmedPasswordField: - SHOWONCLICKTITLE: "Đổi mật khẩu" - DataObject: - PLURALNAME: "Data Objects" - SINGULARNAME: "Data Object" - File: - INVALIDEXTENSION: "Định dạng không hợp lệ (hợp lê: %s)" - PLURALNAME: "Các tập tin" - SINGULARNAME: "Tập tin" - TOOLARGE: "Dung lượng tập tin quá lớn, tối đa %s" - Folder: - PLURALNAME: "Các tập tin" - SINGULARNAME: "Tập tin" - Group: - Code: "Mã nhóm" - Locked: "Khóa ?" - PLURALNAME: "Nhóm" - Parent: "Nhóm cha" - SINGULARNAME: "Nhóm" - has_many_Permissions: "Quyền" - many_many_Members: "Thành viên" - Image: - PLURALNAME: "Các tập tin" - SINGULARNAME: "Tập tin" - LeftAndMain: - HELP: "Giúp đở" - Member: - PLURALNAME: "Thành viên" - SINGULARNAME: "Thành viên" - belongs_many_many_Groups: "Nhóm" - db_LockedOutUntil: "Khóa cho đến khi" - ModelAdmin: - CREATEBUTTON: "Tạo '%s'" - ReportAdmin: - MENUTITLE: "Báo cáo" diff --git a/lang/vi_VN.yml b/lang/vi_VN.yml index 55ac35b77..e507fc19b 100644 --- a/lang/vi_VN.yml +++ b/lang/vi_VN.yml @@ -23,7 +23,6 @@ vi_VN: YEARS: "năm" DateField: TODAY: "hôm nay" - VALIDATIONJS: "Hãy nhập một giá trị ngày hợp lệ (ngày/tháng/năm)" DropdownField: CHOOSE: "(chọn)" HtmlEditorField: diff --git a/lang/zh_CN.yml b/lang/zh_CN.yml index 9ed9e41c0..8b98a8127 100644 --- a/lang/zh_CN.yml +++ b/lang/zh_CN.yml @@ -1,15 +1,23 @@ zh_CN: AssetAdmin: - CHOOSEFILE: "选择文件" MENUTITLE: "文件和图片" NEWFOLDER: "新建文件夹" - AssetAdmin_left.ss: - GO: "执行" + AssetTableField: + CREATED: "第一次被上传" + DIM: "尺寸" + FILENAME: "文件名" + LASTEDIT: "上一次被更改" + OWNER: "拥有者" + SIZE: "大小" + TITLE: "文件名称" + TYPE: "类型" + URL: "URL" BasicAuth: ENTERINFO: "请输入用户名和密码" ERRORNOTADMIN: "此用户没有管理员权限。" ERRORNOTREC: "没有找到此用户名/密码" CMSMain: + ACCESS: "在 CMS 访问 %s" MENUTITLE: "网站内容" SAVE: "保存" ChangePasswordEmail.ss: @@ -18,7 +26,6 @@ zh_CN: HELLO: "嗨" ComplexTableField.ss: ADDITEM: "新加" - NOITEMSFOUND: "没有发现数据" SORTASC: "正序排列" SORTDESC: "倒序排列" ComplexTableField_popup.ss: @@ -52,9 +59,6 @@ zh_CN: PLURALNAME: "文件" SINGULARNAME: "文件" TOOLARGE: "文件过大,最大只允许 %s" - Folder: - PLURALNAME: "文件" - SINGULARNAME: "文件" ForgotPasswordEmail.ss: HELLO: "嗨" Form: @@ -69,14 +73,10 @@ zh_CN: Group: Code: "团队代码" Locked: "锁定?" - PLURALNAME: "团队" Parent: "主团队" - SINGULARNAME: "团队" has_many_Permissions: "权限" many_many_Members: "成员" HtmlEditorField: - BUTTONINSERTFLASH: "插入Flash动画" - BUTTONINSERTIMAGE: "插入图像" BUTTONINSERTLINK: "插入链接" BUTTONREMOVELINK: "删除链接" CSSCLASS: "对齐/样式" @@ -85,7 +85,6 @@ zh_CN: CSSCLASSRIGHT: "右端自动换行" EMAIL: "电子邮件地址" FILE: "文件" - FLASH: "插入Flash动画" FOLDER: "文件夹" IMAGE: "插入图像" IMAGEDIMENSIONS: "尺寸" @@ -101,9 +100,6 @@ zh_CN: LINKTO: "链接到" PAGE: "页" URL: "(路径)URL" - Image: - PLURALNAME: "文件" - SINGULARNAME: "文件" Image_iframe.ss: TITLE: "图象上传内嵌框架(Iframe)" LeftAndMain: @@ -115,8 +111,6 @@ zh_CN: PLEASESAVE: "请先保存:因为该网页还未保存,所以该页无法更新。" SAVED: "已保存" LoginAttempt: - PLURALNAME: "尝试登陆次数" - SINGULARNAME: "尝试登陆次数" Member: ADDRESS: "地址" BUTTONCHANGEPASSWORD: "更改密码" @@ -156,24 +150,11 @@ zh_CN: db_PasswordExpiry: "密码过期日期" MemberAuthenticator: TITLE: "电邮地址和密码" - MemberPassword: - PLURALNAME: "成员密码" - SINGULARNAME: "成员密码" - MemberTableField: - ADD: "新加" - ADDEDTOGROUP: "会员被加入某会员组" ModelAdmin: - ADDBUTTON: "添加" - CREATEBUTTON: "创建'%s'" DELETE: "删除" - ITEMNOTFOUND: "无法找到该内容" - LOADEDFOREDITING: "正在打开'%s'的编辑试图" - SAVE: "保存" NumericField: VALIDATION: "“%s\"不是一个数字,这个栏域只可以用数字填写" Permission: - PLURALNAME: "权限" - SINGULARNAME: "权限" PhoneNumberField: VALIDATION: "请输入有效电话号码" ReportAdmin: @@ -186,16 +167,13 @@ zh_CN: ENTERNEWPASSWORD: "请输入新密码" ERRORPASSWORDPERMISSION: "您必需登录以更改您的密码" LOGGEDOUT: "您已被撤消登录。如果您想再次登录,在下面输入您的登录信息。" - LOSTPASSWORDHEADER: "忘记密码" NOTEPAGESECURED: "此页是受安全保护的。输入您的登录信息,我们会将您送达。" NOTERESETPASSWORD: "输入您的电邮地址,我们会给您发送一个您可重设密码的链接" PASSWORDSENTHEADER: "密码重设链接已发送给“%s”" PASSWORDSENTTEXT: "谢谢!密码重设链接已发送给“%s”" SecurityAdmin: - ADDMEMBER: "新加会员" MENUTITLE: "安全" NEWGROUP: "新建会员组" - SGROUPS: "各个不同权限的会员组" SimpleImageField: NOUPLOAD: "没有上传的图像" SiteTree: diff --git a/lang/zh_TW.yml b/lang/zh_TW.yml index 83909ecf4..b22ddd301 100644 --- a/lang/zh_TW.yml +++ b/lang/zh_TW.yml @@ -1,10 +1,16 @@ zh_TW: AssetAdmin: - CHOOSEFILE: "選擇檔案" MENUTITLE: "檔案和圖片" NEWFOLDER: "新資料夾" - AssetAdmin_left.ss: - GO: "執行" + AssetTableField: + CREATED: "第一次上傳" + DIM: "尺寸" + FILENAME: "檔案名稱" + LASTEDIT: "最後一次更新" + OWNER: "擁有者" + SIZE: "大小" + TITLE: "標題" + TYPE: "類型" BasicAuth: ENTERINFO: "請輸入帳號密碼。" ERRORNOTADMIN: "那個使用者不是管理員。" @@ -18,7 +24,6 @@ zh_TW: HELLO: "您好" ComplexTableField.ss: ADDITEM: "新增" - NOITEMSFOUND: "沒有資料" SORTASC: "向上排序" SORTDESC: "向下排序" ComplexTableField_popup.ss: @@ -54,8 +59,6 @@ zh_TW: VALIDATIONSTRONGPASSWORD: "密碼必須至少有一個數字和字母。" VALIDCURRENCY: "請輸入有效的貨幣。" HtmlEditorField: - BUTTONINSERTFLASH: "插入Flash" - BUTTONINSERTIMAGE: "插入圖片" BUTTONINSERTLINK: "插入連結" BUTTONREMOVELINK: "移除連結" CSSCLASS: "對齊/樣式" @@ -64,7 +67,6 @@ zh_TW: CSSCLASSRIGHT: "靠右被字包圍。" EMAIL: "電子郵件地址" FILE: "檔案" - FLASH: "插入Flash" FOLDER: "資料夾" IMAGE: "插入圖片" IMAGEDIMENSIONS: "大小" @@ -124,9 +126,6 @@ zh_TW: YOUROLDPASSWORD: "舊密碼" MemberAuthenticator: TITLE: "電子郵件 & 密碼" - MemberTableField: - ADD: "新增" - ADDEDTOGROUP: "已加入到群組" NumericField: VALIDATION: "「%s」不是數字,這格只接受數字。" PhoneNumberField: @@ -139,16 +138,13 @@ zh_TW: ENTERNEWPASSWORD: "請輸入新的密碼。" ERRORPASSWORDPERMISSION: "你必須先登入才能改密碼!" LOGGEDOUT: "你已登出。您在下面再登入一次。" - LOSTPASSWORDHEADER: "忘記密碼" NOTEPAGESECURED: "那的網頁是被保護的。請先登入。" NOTERESETPASSWORD: "請輸入您的電子郵件。我們將寄給你重設密媽的網址。" PASSWORDSENTHEADER: "密碼重設網址已寄給「%s」" PASSWORDSENTTEXT: "謝謝!密碼重設網址已寄給「%s」" SecurityAdmin: - ADDMEMBER: "新增會員" MENUTITLE: "權限管理" NEWGROUP: "新增群組" - SGROUPS: "用戶權限群組" SimpleImageField: NOUPLOAD: "沒有上傳圖片" SiteTree: