Merge branch '2.4'

* 2.4:
  bumped Symfony version to 2.4.5
  updated VERSION for 2.4.4
  updated CHANGELOG for 2.4.4
  bumped Symfony version to 2.3.14
  updated VERSION for 2.3.13
  update CONTRIBUTORS for 2.3.13
  updated CHANGELOG for 2.3.13
  Updated Serbian validation translation
  [Console] Fixed the rendering of exceptions on HHVM with a terminal width
  [WebProfilerBundle ] Fixed an edge case on WDT loading
  [Security] removed $csrfTokenManager type hint from SimpleFormAuthenticationListener constructor argument
  fixed typo
  [Process] Disable TTY mode on Windows platform
  [Validator] added missing ANNOTATION config to @Target annotation
  [Finder] Fix ignoring of unreadable dirs in the RecursiveDirectoryIterator.

Conflicts:
	src/Symfony/Component/HttpKernel/Kernel.php
This commit is contained in:
Fabien Potencier 2014-04-28 07:15:04 +02:00
commit 23286bc512
16 changed files with 187 additions and 27 deletions

View File

@ -7,6 +7,29 @@ in 2.3 minor versions.
To get the diff for a specific change, go to https://github.com/symfony/symfony/commit/XXX where XXX is the change hash
To get the diff between two versions, go to https://github.com/symfony/symfony/compare/v2.3.0...v2.3.1
* 2.3.13 (2014-04-27)
* bug #10789 [Console] Fixed the rendering of exceptions on HHVM with a terminal width (stof)
* bug #10773 [WebProfilerBundle ] Fixed an edge case on WDT loading (tucksaun)
* bug #10763 [Process] Disable TTY mode on Windows platform (romainneutron)
* bug #10772 [Finder] Fix ignoring of unreadable dirs in the RecursiveDirectoryIterator (jakzal)
* bug #10757 [Process] Setting STDIN while running should not be possible (romainneutron)
* bug #10749 Fixed incompatibility of x509 auth with nginx (alcaeus)
* bug #10735 [Translation] [PluralizationRules] Little correction for case 'ar' (klyk50)
* bug #10720 [HttpFoundation] Fix DbalSessionHandler (Tobion)
* bug #10721 [HttpFoundation] status 201 is allowed to have a body (Tobion)
* bug #10728 [Process] Fix #10681, process are failing on Windows Server 2003 (romainneutron)
* bug #10733 [DomCrawler] Textarea value should default to empty string instead of null. (Berdir)
* bug #10723 [Security] fix DBAL connection typehint (Tobion)
* bug #10700 Fixes various inconsistencies in the code (fabpot)
* bug #10697 [Translation] Make IcuDatFileLoader/IcuResFileLoader::load invalid resource compatible with HHVM. (idn2104)
* bug #10652 [HttpFoundation] fix PDO session handler under high concurrency (Tobion)
* bug #10669 [Profiler] Prevent throwing fatal errors when searching timestamps or invalid dates (stloyd)
* bug #10670 [Templating] PhpEngine should propagate charset to its helpers (stloyd)
* bug #10665 [DependencyInjection] Fix ticket #10663 - Added setCharset method call to PHP templating engine (koku)
* bug #10654 Changed the typehint of the EsiFragmentRenderer to the interface (stof)
* bug #10649 [BrowserKit] Fix #10641 : BrowserKit is broken when using ip as host (romainneutron)
* 2.3.12 (2014-04-03)
* bug #10586 Fixes URL validator to accept single part urls (merk)

View File

@ -7,6 +7,32 @@ in 2.4 minor versions.
To get the diff for a specific change, go to https://github.com/symfony/symfony/commit/XXX where XXX is the change hash
To get the diff between two versions, go to https://github.com/symfony/symfony/compare/v2.4.0...v2.4.1
* 2.4.4 (2014-04-27)
* bug #10789 [Console] Fixed the rendering of exceptions on HHVM with a terminal width (stof)
* bug #10773 [WebProfilerBundle ] Fixed an edge case on WDT loading (tucksaun)
* bug #10784 [Security] removed $csrfTokenManager type hint from SimpleFormAuthenticationListener constructor argument (choonge)
* bug #10763 [Process] Disable TTY mode on Windows platform (romainneutron)
* bug #10772 [Finder] Fix ignoring of unreadable dirs in the RecursiveDirectoryIterator (jakzal)
* bug #10757 [Process] Setting STDIN while running should not be possible (romainneutron)
* bug #10749 Fixed incompatibility of x509 auth with nginx (alcaeus)
* bug #10735 [Translation] [PluralizationRules] Little correction for case 'ar' (klyk50)
* bug #10720 [HttpFoundation] Fix DbalSessionHandler (Tobion)
* bug #10721 [HttpFoundation] status 201 is allowed to have a body (Tobion)
* bug #10728 [Process] Fix #10681, process are failing on Windows Server 2003 (romainneutron)
* bug #10733 [DomCrawler] Textarea value should default to empty string instead of null. (Berdir)
* bug #10723 [Security] fix DBAL connection typehint (Tobion)
* bug #10715 [Debug] Fixed ClassNotFoundFatalErrorHandler on windows. (lyrixx)
* bug #10700 Fixes various inconsistencies in the code (fabpot)
* bug #10697 [Translation] Make IcuDatFileLoader/IcuResFileLoader::load invalid resource compatible with HHVM. (idn2104)
* bug #10652 [HttpFoundation] fix PDO session handler under high concurrency (Tobion)
* bug #10690 [Validator] Fix hack for nested Collection/All losing context (GromNaN)
* bug #10669 [Profiler] Prevent throwing fatal errors when searching timestamps or invalid dates (stloyd)
* bug #10670 [Templating] PhpEngine should propagate charset to its helpers (stloyd)
* bug #10665 [DependencyInjection] Fix ticket #10663 - Added setCharset method call to PHP templating engine (koku)
* bug #10654 Changed the typehint of the EsiFragmentRenderer to the interface (stof)
* bug #10649 [BrowserKit] Fix #10641 : BrowserKit is broken when using ip as host (romainneutron)
* 2.4.3 (2014-04-04)
* bug #10586 Fixes URL validator to accept single part urls (merk)

View File

@ -23,9 +23,9 @@ Symfony2 is the result of the work of many people who made the code better
- Benjamin Eberlei (beberlei)
- Igor Wiedler (igorw)
- Hugo Hamon (hhamon)
- Romain Neutron (romain)
- Eriksen Costa (eriksencosta)
- Martin Hasoň (hason)
- Romain Neutron (romain)
- Jonathan Wage (jwage)
- Alexandre Salomé (alexandresalome)
- William Durand (couac)
@ -48,49 +48,49 @@ Symfony2 is the result of the work of many people who made the code better
- Dariusz Górecki (canni)
- Andrej Hudec (pulzarraider)
- Arnout Boks (aboks)
- Michel Weimerskirch (mweimerskirch)
- Lee McDermott
- Brandon Turner
- Douglas Greenshields (shieldo)
- Daniel Holmes (dholmes)
- Jordan Alliot (jalliot)
- Christian Raue
- Douglas Greenshields (shieldo)
- John Wards (johnwards)
- Fran Moreno (franmomu)
- Bart van den Burg (burgov)
- Antoine Hérault (herzult)
- Toni Uebernickel (havvg)
- Michel Weimerskirch (mweimerskirch)
- Arnaud Le Blanc (arnaud-lb)
- Brice BERNARD (brikou)
- Luis Cordova (cordoval)
- Tim Nagel (merk)
- Kevin Bond (kbond)
- marc.weistroff
- lenar
- Tim Nagel (merk)
- Włodzimierz Gajda (gajdaw)
- Colin Frei
- excelwebzone
- Fabien Pennequin (fabienpennequin)
- Jacob Dreesen (jdreesen)
- Adrien Brault (adrienbrault)
- Gábor Egyed (1ed)
- Michal Piotrowski (eventhorizon)
- Florian Voutzinos (florianv)
- Robert Schönthal (digitalkaoz)
- Juti Noppornpitak (shiroyuki)
- Sebastian Hörl (blogsh)
- Hidenori Goto (hidenorigoto)
- Gábor Egyed (1ed)
- Daniel Gomes (danielcsgomes)
- Peter Kokot (maastermedia)
- Jérémie Augustin (jaugustin)
- David Buchmann (dbu)
- Ait Boudad Abdellatif (aitboudad)
- Peter Kokot (maastermedia)
- Jérôme Tamarelle (gromnan)
- Tigran Azatyan (tigranazatyan)
- Javier Eguiluz (javier.eguiluz)
- Rafael Dohms (rdohms)
- Richard Shank (iampersistent)
- Gordon Franke (gimler)
- Jérôme Tamarelle (gromnan)
- Helmer Aaviksoo
- Sebastiaan Stok (sstok)
- Matthieu Ouellette-Vachon (maoueh)
@ -99,6 +99,7 @@ Symfony2 is the result of the work of many people who made the code better
- Jonathan Ingram (jonathaningram)
- Artur Kotyrba
- Guilherme Blanco (guilhermeblanco)
- Nicolas Grekas (nicolas-grekas)
- Pablo Godel (pgodel)
- Eric GELOEN (gelo)
- Dmitrii Chekaliuk (lazyhammer)
@ -122,7 +123,6 @@ Symfony2 is the result of the work of many people who made the code better
- fivestar
- Dominique Bongiraud
- Leszek Prabucki (l3l0)
- Nicolas Grekas (nicolas-grekas)
- François Zaninotto (fzaninotto)
- Dustin Whittle (dustinwhittle)
- jeff
@ -228,6 +228,7 @@ Symfony2 is the result of the work of many people who made the code better
- Xavier HAUSHERR
- Albert Jessurum (ajessu)
- Laszlo Korte
- Miha Vrhovnik
- Alessandro Desantis
- hubert lecorche (hlecorche)
- Eugene Leonovich (rybakit)
@ -259,11 +260,13 @@ Symfony2 is the result of the work of many people who made the code better
- Vitaliy Tverdokhlib (vitaliytv)
- Dirk Pahl (dirkaholic)
- cedric lombardot (cedriclombardot)
- Charles Sarrazin (csarrazi)
- Jonas Flodén (flojon)
- Marcin Sikoń (marphi)
- franek (franek)
- Adam Harvey
- Robbert Klarenbeek (robbertkl)
- François-Xavier de Guillebon (de-gui_f)
- boombatower
- Fabrice Bernhard (fabriceb)
- Fabian Lange (codingfabian)
@ -285,6 +288,7 @@ Symfony2 is the result of the work of many people who made the code better
- Maks Slesarenko
- Markus Lanthaler (lanthaler)
- Vicent Soria Durá (vicentgodella)
- Ioan Negulescu
- Andrew Udvare (audvare)
- alexpods
- Erik Trapman (eriktrapman)
@ -312,10 +316,10 @@ Symfony2 is the result of the work of many people who made the code better
- Aurélien Fredouelle
- Karoly Negyesi (chx)
- Pavel Campr (pcampr)
- Miha Vrhovnik
- Geoffrey Tran (geoff)
- Jan Behrens
- Thomas Lallement (raziel057)
- alcaeus
- vitaliytv
- Markus Bachmann (baachi)
- aubx
@ -349,8 +353,8 @@ Symfony2 is the result of the work of many people who made the code better
- Chris Heng (gigablah)
- Ulumuddin Yunus (joenoez)
- Antoine Corcy
- Sascha Grossenbacher
- Ben Davies (bendavies)
- François-Xavier de Guillebon (de-gui_f)
- Hossein Bukhamsin
- Paweł Wacławczyk (pwc)
- Oleg Zinchenko (cystbear)
@ -387,6 +391,7 @@ Symfony2 is the result of the work of many people who made the code better
- Casper Valdemar Poulsen
- Josiah (josiah)
- John Bohn (jbohn)
- Jakub Škvára (jskvara)
- Andrew Hilobok (hilobok)
- Christian Soronellas (theunic)
- Jérôme Vieilledent (lolautruche)
@ -400,6 +405,7 @@ Symfony2 is the result of the work of many people who made the code better
- Jayson Xu (superjavason)
- Jaik Dean (jaikdean)
- Jan Prieser
- Issei Murasawa (issei_m)
- James Michael DuPont
- Tom Klingenberg
- Christopher Hall (mythmakr)
@ -458,13 +464,14 @@ Symfony2 is the result of the work of many people who made the code better
- Robert Gruendler (pulse00)
- Simon Terrien (sterrien)
- Benoît Merlet (trompette)
- Koen Kuipers
- Raul Fraile (raulfraile)
- sensio
- Patrick Kaufmann
- alcaeus
- Ben Ramsey (ramsey)
- Christian Jul Jensen
- The Whole Life to Learn
- Liverbool (liverbool)
- Phan Thanh Ha (haphan)
- Chris Jones (leek)
- Colin O'Dell (colinodell)
@ -506,7 +513,6 @@ Symfony2 is the result of the work of many people who made the code better
- Catalin Dan
- Piotr Antosik (antek88)
- Artem Lopata
- Sascha Grossenbacher
- Marcos Quesada (marcos_quesada)
- Dan Finnie
- Ken Marfilla (marfillaster)
@ -570,6 +576,7 @@ Symfony2 is the result of the work of many people who made the code better
- heccjj
- Alexandre Melard
- Sergey Yuferev
- Mario Young
- Mo Di (modi)
- Jeroen van den Enden (stoefke)
- Quique Porta (quiqueporta)
@ -623,7 +630,6 @@ Symfony2 is the result of the work of many people who made the code better
- WedgeSama
- Beth Binkovitz
- Romain Geissler
- Charles Sarrazin (csarrazi)
- Marcus Stöhr (dafish)
- Emmanuel Vella (emmanuel.vella)
- Carsten Nielsen (phreaknerd)
@ -674,7 +680,6 @@ Symfony2 is the result of the work of many people who made the code better
- Olivier
- pscheit
- Ramon Kleiss (akathos)
- Jakub Škvára (jskvara)
- Nicolas Badey (nico-b)
- Shane Preece (shane)
- povilas
@ -698,6 +703,7 @@ Symfony2 is the result of the work of many people who made the code better
- 2manypeople
- Wing
- Thomas Bibb
- catch
- Alexandre Segura
- Josef Cech
- Matthew Foster (mfoster)
@ -748,6 +754,7 @@ Symfony2 is the result of the work of many people who made the code better
- Jordi Llonch (jordillonch)
- Cédric Dugat (ph3nol)
- Philip Dahlstrøm (phidah)
- Loick Piera (pyrech)
- Rénald Casagraude (rcasagraude)
- Robin Duval (robin-duval)
- Artem Lopata (bumz)
@ -814,6 +821,7 @@ Symfony2 is the result of the work of many people who made the code better
- Alex
- Klaas Naaijkens
- Rafał
- Adria Lopez (adlpz)
- Masao Maeda (brtriver)
- Dave Hulbert (dave1010)
- Dave Marshall (davedevelopment)
@ -861,6 +869,7 @@ Symfony2 is the result of the work of many people who made the code better
- Myke79
- Brian Debuire
- Sylvain Lorinet
- klyk50
- jc
- BenjaminBeck
- Aurelijus Rožėnas
@ -948,6 +957,7 @@ Symfony2 is the result of the work of many people who made the code better
- Yohan Giarelli (frequence-web)
- Massimiliano Arione (garak)
- Ghazy Ben Ahmed (ghazy)
- ibasaw (ibasaw)
- Vladislav Krupenkin (ideea)
- joris de wit (jdewit)
- Jérémy CROMBEZ (jeremy)
@ -992,6 +1002,7 @@ Symfony2 is the result of the work of many people who made the code better
- Gustavo Adrian
- Michael
- fh-github@fholzhauer.de
- Mark Topper
- Xavier REN
- Philipp Scheit
- max

View File

@ -17,7 +17,7 @@ use Symfony\Component\Validator\Constraint;
* Constraint for the Unique Entity validator
*
* @Annotation
* @Target("CLASS")
* @Target({"CLASS", "ANNOTATION"})
*
* @author Benjamin Eberlei <kontakt@beberlei.de>
*/

View File

@ -239,7 +239,7 @@ class ProfilerController
$this->profiler->disable();
if (!$profile = $this->profiler->loadProfile($token)) {
return new Response('', 200, array('Content-Type' => 'text/html'));
return new Response('', 404, array('Content-Type' => 'text/html'));
}
// the toolbar position (top, bottom, normal, or null -- use the configuration)

View File

@ -9,12 +9,26 @@
request = function(url, onSuccess, onError, payload, options) {
var xhr = window.XMLHttpRequest ? new XMLHttpRequest() : new ActiveXObject('Microsoft.XMLHTTP');
options = options || {};
options.maxTries = options.maxTries || 0;
xhr.open(options.method || 'GET', url, true);
xhr.setRequestHeader('X-Requested-With', 'XMLHttpRequest');
xhr.onreadystatechange = function(state) {
if (4 === xhr.readyState && 200 === xhr.status) {
if (4 !== xhr.readyState) {
return null;
}
if (xhr.status == 404 && options.maxTries > 1) {
setTimeout(function(){
options.maxTries--;
request(url, onSuccess, onError, payload, options);
}, 500);
return null;
}
if (200 === xhr.status) {
(onSuccess || noop)(xhr);
} else if (4 === xhr.readyState && xhr.status != 200) {
} else {
(onError || noop)(xhr);
}
};
@ -79,6 +93,7 @@
(onSuccess || noop)(xhr, el);
},
function(xhr) { (onError || noop)(xhr, el); },
'',
options
);
}

View File

@ -34,7 +34,8 @@
if (xhr.status !== 0) {
confirm('An error occurred while loading the web debug toolbar (' + xhr.status + ': ' + xhr.statusText + ').\n\nDo you want to open the profiler?') && (window.location = '{{ path("_profiler", { "token": token }) }}');
}
}
},
{'maxTries': 5}
);
})();
/*]]>*/</script>

View File

@ -697,8 +697,11 @@ class Application
do {
$title = sprintf(' [%s] ', get_class($e));
$len = $strlen($title);
$width = $this->getTerminalWidth() ? $this->getTerminalWidth() - 1 : PHP_INT_MAX;
// HHVM only accepts 32 bits integer in str_split, even when PHP_INT_MAX is a 64 bit integer: https://github.com/facebook/hhvm/issues/1327
$width = $this->getTerminalWidth() ? $this->getTerminalWidth() - 1 : (defined('HHVM_VERSION') ? 1 << 31 : PHP_INT_MAX);
if (defined('HHVM_VERSION') && $width > 1 << 31) {
$width = 1 << 31;
}
$formatter = $output->getFormatter();
$lines = array();
foreach (preg_split('/\r?\n/', $e->getMessage()) as $line) {

View File

@ -68,7 +68,14 @@ class RecursiveDirectoryIterator extends \RecursiveDirectoryIterator
public function getChildren()
{
try {
return parent::getChildren();
$children = parent::getChildren();
if ($children instanceof self) {
// parent method will call the constructor with default arguments, so unreadable dirs won't be ignored anymore
$children->ignoreUnreadableDirs = $this->ignoreUnreadableDirs;
}
return $children;
} catch (\UnexpectedValueException $e) {
if ($this->ignoreUnreadableDirs) {
// If directory is unreadable and finder is set to ignore it, a fake empty content is returned.

View File

@ -918,9 +918,15 @@ class Process
* @param bool $tty True to enabled and false to disable
*
* @return self The current Process instance
*
* @throws RuntimeException In case the TTY mode is not supported
*/
public function setTty($tty)
{
if (defined('PHP_WINDOWS_VERSION_BUILD') && $tty) {
throw new RuntimeException('TTY mode is not supported on Windows platform.');
}
$this->tty = (bool) $tty;
return $this;

View File

@ -285,7 +285,7 @@ abstract class AbstractProcessTest extends \PHPUnit_Framework_TestCase
}
$process = $this->getProcess('echo "foo" >> /dev/null && php -r "usleep(100000);"');
$process->setTTY(true);
$process->setTty(true);
$process->start();
$this->assertTrue($process->isRunning());
$process->wait();
@ -300,12 +300,24 @@ abstract class AbstractProcessTest extends \PHPUnit_Framework_TestCase
}
$process = $this->getProcess('echo "foo" >> /dev/null');
$process->setTTY(true);
$process->setTty(true);
$process->run();
$this->assertTrue($process->isSuccessful());
}
public function testTTYInWindowsEnvironment()
{
if (!defined('PHP_WINDOWS_VERSION_BUILD')) {
$this->markTestSkipped('This test is for Windows platform only');
}
$process = $this->getProcess('echo "foo" >> /dev/null');
$process->setTty(false);
$this->setExpectedException('Symfony\Component\Process\Exception\RuntimeException', 'TTY mode is not supported on Windows platform.');
$process->setTty(true);
}
public function testExitCodeTextIsNullWhenExitCodeIsNull()
{
$process = $this->getProcess('');

View File

@ -56,7 +56,7 @@ class SimpleFormAuthenticationListener extends AbstractAuthenticationListener
* @throws \InvalidArgumentException In case no simple authenticator is provided
* @throws InvalidArgumentException In case an invalid CSRF token manager is passed
*/
public function __construct(SecurityContextInterface $securityContext, AuthenticationManagerInterface $authenticationManager, SessionAuthenticationStrategyInterface $sessionStrategy, HttpUtils $httpUtils, $providerKey, AuthenticationSuccessHandlerInterface $successHandler, AuthenticationFailureHandlerInterface $failureHandler, array $options = array(), LoggerInterface $logger = null, EventDispatcherInterface $dispatcher = null, CsrfTokenManagerInterface $csrfTokenManager = null, SimpleFormAuthenticatorInterface $simpleAuthenticator = null)
public function __construct(SecurityContextInterface $securityContext, AuthenticationManagerInterface $authenticationManager, SessionAuthenticationStrategyInterface $sessionStrategy, HttpUtils $httpUtils, $providerKey, AuthenticationSuccessHandlerInterface $successHandler, AuthenticationFailureHandlerInterface $failureHandler, array $options = array(), LoggerInterface $logger = null, EventDispatcherInterface $dispatcher = null, $csrfTokenManager = null, SimpleFormAuthenticatorInterface $simpleAuthenticator = null)
{
if (!$simpleAuthenticator) {
throw new \InvalidArgumentException('Missing simple authenticator');

View File

@ -50,7 +50,7 @@ use Symfony\Component\Validator\Exception\OutOfBoundsException;
* $validator->validate($address, null, "Address")
*
* @Annotation
* @Target("CLASS")
* @Target({"CLASS", "ANNOTATION"})
*
* @author Bernhard Schussek <bschussek@gmail.com>
*

View File

@ -15,7 +15,7 @@ namespace Symfony\Component\Validator\Constraints;
* Annotation to define a group sequence provider
*
* @Annotation
* @Target("CLASS")
* @Target({"CLASS", "ANNOTATION"})
*/
class GroupSequenceProvider
{

View File

@ -180,7 +180,7 @@
</trans-unit>
<trans-unit id="48">
<source>This value should have exactly {{ limit }} character.|This value should have exactly {{ limit }} characters.</source>
<target>این مقدار می بایست دقیفا {{ limit }} کاراکتر داشته باشد.|این مقدرا می بایشت دقیقا {{ limit }} کاراکتر داشته باشد.</target>
<target> این مقدار می بایست دقیقا {{ limit }} کاراکتر داشته باشد.| این مقدار می بایست دقیقا {{ limit }} کاراکتر داشته باشد.</target>
</trans-unit>
<trans-unit id="49">
<source>The file was only partially uploaded.</source>

View File

@ -242,6 +242,62 @@
<source>This value is not a valid ISSN.</source>
<target>Ово није валидан ISSN.</target>
</trans-unit>
<trans-unit id="64">
<source>This value is not a valid currency.</source>
<target>Ово није валидна валута.</target>
</trans-unit>
<trans-unit id="65">
<source>This value should be equal to {{ compared_value }}.</source>
<target>Ова вредност треба да буде {{ compared_value }}.</target>
</trans-unit>
<trans-unit id="66">
<source>This value should be greater than {{ compared_value }}.</source>
<target>Ова вредност треба да буде већа од {{ compared_value }}.</target>
</trans-unit>
<trans-unit id="67">
<source>This value should be greater than or equal to {{ compared_value }}.</source>
<target>Ова вредност треба да буде већа или једнака {{ compared_value }}.</target>
</trans-unit>
<trans-unit id="68">
<source>This value should be identical to {{ compared_value_type }} {{ compared_value }}.</source>
<target>Ова вредност треба да буде идентична са {{ compared_value_type }} {{ compared_value }}.</target>
</trans-unit>
<trans-unit id="69">
<source>This value should be less than {{ compared_value }}.</source>
<target>Ова вредност треба да буде мања од {{ compared_value }}.</target>
</trans-unit>
<trans-unit id="70">
<source>This value should be less than or equal to {{ compared_value }}.</source>
<target>Ова вредност треба да буде мања или једнака {{ compared_value }}.</target>
</trans-unit>
<trans-unit id="71">
<source>This value should not be equal to {{ compared_value }}.</source>
<target>Ова вредност не треба да буде једнака {{ compared_value }}.</target>
</trans-unit>
<trans-unit id="72">
<source>This value should not be identical to {{ compared_value_type }} {{ compared_value }}.</source>
<target>Ова вредност не треба да буде идентична са {{ compared_value_type }} {{ compared_value }}.</target>
</trans-unit>
<trans-unit id="73">
<source>The image ratio is too big ({{ ratio }}). Allowed maximum ratio is {{ max_ratio }}.</source>
<target>Размера ове слике је превелика ({{ ratio }}). Максимална дозвољена размера је {{ max_ratio }}.</target>
</trans-unit>
<trans-unit id="74">
<source>The image ratio is too small ({{ ratio }}). Minimum ratio expected is {{ min_ratio }}.</source>
<target>Размера ове слике је премала ({{ ratio }}). Минимална очекивана размера је {{ min_ratio }}.</target>
</trans-unit>
<trans-unit id="75">
<source>The image is square ({{ width }}x{{ height }}px). Square images are not allowed.</source>
<target>Слика је квадратна ({{ width }}x{{ height }}px). Квадратне слике нису дозвољене.</target>
</trans-unit>
<trans-unit id="76">
<source>The image is landscape oriented ({{ width }}x{{ height }}px). Landscape oriented images are not allowed.</source>
<target>Слика је оријентације пејзажа ({{ width }}x{{ height }}px). Пејзажна оријентација слика није дозвољена.</target>
</trans-unit>
<trans-unit id="77">
<source>The image is portrait oriented ({{ width }}x{{ height }}px). Portrait oriented images are not allowed.</source>
<target>Слика је оријантације портрета ({{ width }}x{{ height }}px). Портретна оријентација слика није дозвољена.</target>
</trans-unit>
</body>
</file>
</xliff>