Merge branch '4.2'
* 4.2: Fix url matcher edge cases with trailing slash [Form] Fix author tag + exception messages [TwigBridge] Fix deprecation on twig 2.9 Fix left-associative ternary deprecation warnings for PHP 7.4 [Validator] Fixed imprecise translations [Validator] Add Dutch translations [Security] Cleanup "Digest nonce has expired." translation Intercept redirections only for HTML format [PhpUnitBridge] fix reading phpunit.xml on bootstrap resolve class name parameters Fix name and phpdoc of ContainerBuilder::removeBindings [Intl] Update the ICU data to 64.2
This commit is contained in:
commit
27d10a658d
@ -37,6 +37,9 @@ $getEnvVar = function ($name, $default = false) {
|
||||
}
|
||||
if (false !== $phpunitConfig) {
|
||||
$var = new DOMXpath($phpunitConfig);
|
||||
foreach ($var->query('//php/server[@name="'.$name.'"]') as $var) {
|
||||
return $var->getAttribute('value');
|
||||
}
|
||||
foreach ($var->query('//php/env[@name="'.$name.'"]') as $var) {
|
||||
return $var->getAttribute('value');
|
||||
}
|
||||
@ -94,7 +97,7 @@ $COMPOSER = file_exists($COMPOSER = $oldPwd.'/composer.phar') || ($COMPOSER = rt
|
||||
: 'composer';
|
||||
|
||||
|
||||
$SYMFONY_PHPUNIT_REMOVE = $getEnvVar('SYMFONY_PHPUNIT_REMOVE', 'phpspec/prophecy symfony/yaml');
|
||||
$SYMFONY_PHPUNIT_REMOVE = $getEnvVar('SYMFONY_PHPUNIT_REMOVE', 'phpspec/prophecy'.($PHPUNIT_VERSION < 6.0 ? ' symfony/yaml': ''));
|
||||
|
||||
if (!file_exists("$PHPUNIT_DIR/phpunit-$PHPUNIT_VERSION/phpunit") || md5_file(__FILE__)."\n".$SYMFONY_PHPUNIT_REMOVE !== @file_get_contents("$PHPUNIT_DIR/.$PHPUNIT_VERSION.md5")) {
|
||||
// Build a standalone phpunit without symfony/yaml nor prophecy by default
|
||||
|
@ -24,6 +24,7 @@ use Twig\Node\ModuleNode;
|
||||
use Twig\Node\Node;
|
||||
use Twig\Node\SetNode;
|
||||
use Twig\NodeVisitor\AbstractNodeVisitor;
|
||||
use Twig\TokenParser\ApplyTokenParser;
|
||||
|
||||
/**
|
||||
* @author Fabien Potencier <fabien@symfony.com>
|
||||
@ -95,7 +96,8 @@ class TranslationDefaultDomainNodeVisitor extends AbstractNodeVisitor
|
||||
protected function doLeaveNode(Node $node, Environment $env)
|
||||
{
|
||||
if ($node instanceof TransDefaultDomainNode) {
|
||||
return false;
|
||||
// must return null as of Twig 2.9
|
||||
return class_exists(ApplyTokenParser::class) ? null : false;
|
||||
}
|
||||
|
||||
if ($node instanceof BlockNode || $node instanceof ModuleNode) {
|
||||
|
@ -87,7 +87,7 @@ class WebDebugToolbarListener implements EventSubscriberInterface
|
||||
return;
|
||||
}
|
||||
|
||||
if ($response->headers->has('X-Debug-Token') && $response->isRedirect() && $this->interceptRedirects) {
|
||||
if ($response->headers->has('X-Debug-Token') && $response->isRedirect() && $this->interceptRedirects && 'html' === $request->getRequestFormat()) {
|
||||
$session = $request->getSession();
|
||||
if (null !== $session && $session->isStarted() && $session->getFlashBag() instanceof AutoExpireFlashBag) {
|
||||
// keep current flashes for one more request if using AutoExpireFlashBag
|
||||
|
@ -58,7 +58,7 @@ class WebDebugToolbarListenerTest extends TestCase
|
||||
/**
|
||||
* @dataProvider provideRedirects
|
||||
*/
|
||||
public function testRedirectionIsIntercepted($statusCode, $hasSession)
|
||||
public function testHtmlRedirectionIsIntercepted($statusCode, $hasSession)
|
||||
{
|
||||
$response = new Response('Some content', $statusCode);
|
||||
$response->headers->set('X-Debug-Token', 'xxxxxxxx');
|
||||
@ -71,6 +71,19 @@ class WebDebugToolbarListenerTest extends TestCase
|
||||
$this->assertEquals('Redirection', $response->getContent());
|
||||
}
|
||||
|
||||
public function testNonHtmlRedirectionIsNotIntercepted()
|
||||
{
|
||||
$response = new Response('Some content', '301');
|
||||
$response->headers->set('X-Debug-Token', 'xxxxxxxx');
|
||||
$event = new ResponseEvent($this->getKernelMock(), $this->getRequestMock(false, 'json', true), HttpKernelInterface::MASTER_REQUEST, $response);
|
||||
|
||||
$listener = new WebDebugToolbarListener($this->getTwigMock('Redirection'), true);
|
||||
$listener->onKernelResponse($event);
|
||||
|
||||
$this->assertEquals(301, $response->getStatusCode());
|
||||
$this->assertEquals('Some content', $response->getContent());
|
||||
}
|
||||
|
||||
public function testToolbarIsInjected()
|
||||
{
|
||||
$response = new Response('<html><head></head><body></body></html>');
|
||||
|
@ -1506,13 +1506,13 @@ class ContainerBuilder extends Container implements TaggedContainerInterface
|
||||
}
|
||||
|
||||
/**
|
||||
* Adds a removed binding id.
|
||||
* Removes bindings for a service.
|
||||
*
|
||||
* @param int $id
|
||||
* @param string $id The service identifier
|
||||
*
|
||||
* @internal
|
||||
*/
|
||||
public function addRemovedBindingIds($id)
|
||||
public function removeBindings($id)
|
||||
{
|
||||
if ($this->hasDefinition($id)) {
|
||||
foreach ($this->getDefinition($id)->getBindings() as $key => $binding) {
|
||||
|
@ -61,7 +61,7 @@ class ServiceConfigurator extends AbstractServiceConfigurator
|
||||
{
|
||||
parent::__destruct();
|
||||
|
||||
$this->container->addRemovedBindingIds($this->id);
|
||||
$this->container->removeBindings($this->id);
|
||||
|
||||
if (!$this->definition instanceof ChildDefinition) {
|
||||
$this->container->setDefinition($this->id, $this->definition->setInstanceofConditionals($this->instanceof));
|
||||
|
@ -91,7 +91,7 @@ abstract class FileLoader extends BaseFileLoader
|
||||
*/
|
||||
protected function setDefinition($id, Definition $definition)
|
||||
{
|
||||
$this->container->addRemovedBindingIds($id);
|
||||
$this->container->removeBindings($id);
|
||||
|
||||
if ($this->isLoadingInstanceof) {
|
||||
if (!$definition instanceof ChildDefinition) {
|
||||
|
@ -92,18 +92,20 @@ class FormPass implements CompilerPassInterface
|
||||
$serviceDefinition = $container->getDefinition($serviceId);
|
||||
|
||||
$tag = $serviceDefinition->getTag($this->formTypeExtensionTag);
|
||||
$typeExtensionClass = $container->getParameterBag()->resolveValue($serviceDefinition->getClass());
|
||||
|
||||
if (isset($tag[0]['extended_type'])) {
|
||||
if (!method_exists($serviceDefinition->getClass(), 'getExtendedTypes')) {
|
||||
@trigger_error(sprintf('Not implementing the static getExtendedTypes() method in %s when implementing the %s is deprecated since Symfony 4.2. The method will be added to the interface in 5.0.', $serviceDefinition->getClass(), FormTypeExtensionInterface::class), E_USER_DEPRECATED);
|
||||
if (!method_exists($typeExtensionClass, 'getExtendedTypes')) {
|
||||
@trigger_error(sprintf('Not implementing the static getExtendedTypes() method in %s when implementing the %s is deprecated since Symfony 4.2. The method will be added to the interface in 5.0.', $typeExtensionClass, FormTypeExtensionInterface::class), E_USER_DEPRECATED);
|
||||
}
|
||||
|
||||
$typeExtensions[$tag[0]['extended_type']][] = new Reference($serviceId);
|
||||
$typeExtensionsClasses[] = $serviceDefinition->getClass();
|
||||
} elseif (method_exists($serviceDefinition->getClass(), 'getExtendedTypes')) {
|
||||
$typeExtensionsClasses[] = $typeExtensionClass;
|
||||
} elseif (method_exists($typeExtensionClass, 'getExtendedTypes')) {
|
||||
$extendsTypes = false;
|
||||
|
||||
$typeExtensionsClasses[] = $serviceDefinition->getClass();
|
||||
foreach ($serviceDefinition->getClass()::getExtendedTypes() as $extendedType) {
|
||||
$typeExtensionsClasses[] = $typeExtensionClass;
|
||||
foreach ($typeExtensionClass::getExtendedTypes() as $extendedType) {
|
||||
$typeExtensions[$extendedType][] = new Reference($serviceId);
|
||||
$extendsTypes = true;
|
||||
}
|
||||
@ -112,7 +114,7 @@ class FormPass implements CompilerPassInterface
|
||||
throw new InvalidArgumentException(sprintf('The getExtendedTypes() method for service "%s" does not return any extended types.', $serviceId));
|
||||
}
|
||||
} else {
|
||||
throw new InvalidArgumentException(sprintf('"%s" tagged services have to implement the static getExtendedTypes() method. The class for service "%s" does not implement it.', $this->formTypeExtensionTag, $serviceId));
|
||||
throw new InvalidArgumentException(sprintf('"%s" tagged services have to implement the static getExtendedTypes() method. Class "%s" for service "%s" does not implement it.', $this->formTypeExtensionTag, $typeExtensionClass, $serviceId));
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -17,7 +17,7 @@ use Symfony\Component\Form\Exception\TransformationFailedException;
|
||||
/**
|
||||
* Transforms between a timezone identifier string and a DateTimeZone object.
|
||||
*
|
||||
* @author Roland Franssen <franssen.roland@gmai.com>
|
||||
* @author Roland Franssen <franssen.roland@gmail.com>
|
||||
*/
|
||||
class DateTimeZoneToStringTransformer implements DataTransformerInterface
|
||||
{
|
||||
@ -39,14 +39,14 @@ class DateTimeZoneToStringTransformer implements DataTransformerInterface
|
||||
|
||||
if ($this->multiple) {
|
||||
if (!\is_array($dateTimeZone)) {
|
||||
throw new TransformationFailedException('Expected an array.');
|
||||
throw new TransformationFailedException('Expected an array of \DateTimeZone objects.');
|
||||
}
|
||||
|
||||
return array_map([new self(), 'transform'], $dateTimeZone);
|
||||
}
|
||||
|
||||
if (!$dateTimeZone instanceof \DateTimeZone) {
|
||||
throw new TransformationFailedException('Expected a \DateTimeZone.');
|
||||
throw new TransformationFailedException('Expected a \DateTimeZone object.');
|
||||
}
|
||||
|
||||
return $dateTimeZone->getName();
|
||||
@ -63,14 +63,14 @@ class DateTimeZoneToStringTransformer implements DataTransformerInterface
|
||||
|
||||
if ($this->multiple) {
|
||||
if (!\is_array($value)) {
|
||||
throw new TransformationFailedException('Expected an array.');
|
||||
throw new TransformationFailedException('Expected an array of timezone identifier strings.');
|
||||
}
|
||||
|
||||
return array_map([new self(), 'reverseTransform'], $value);
|
||||
}
|
||||
|
||||
if (!\is_string($value)) {
|
||||
throw new TransformationFailedException('Expected a string.');
|
||||
throw new TransformationFailedException('Expected a timezone identifier string.');
|
||||
}
|
||||
|
||||
try {
|
||||
|
@ -97,10 +97,14 @@ class FormPassTest extends TestCase
|
||||
/**
|
||||
* @dataProvider addTaggedTypeExtensionsDataProvider
|
||||
*/
|
||||
public function testAddTaggedTypeExtensions(array $extensions, array $expectedRegisteredExtensions)
|
||||
public function testAddTaggedTypeExtensions(array $extensions, array $expectedRegisteredExtensions, array $parameters = [])
|
||||
{
|
||||
$container = $this->createContainerBuilder();
|
||||
|
||||
foreach ($parameters as $name => $value) {
|
||||
$container->setParameter($name, $value);
|
||||
}
|
||||
|
||||
$container->setDefinition('form.extension', $this->createExtensionDefinition());
|
||||
|
||||
foreach ($extensions as $serviceId => $config) {
|
||||
@ -191,6 +195,27 @@ class FormPassTest extends TestCase
|
||||
]),
|
||||
],
|
||||
],
|
||||
[
|
||||
[
|
||||
'my.type_extension1' => [
|
||||
'class' => '%type1_extension_class%',
|
||||
'tag' => ['extended_type' => 'type1'],
|
||||
],
|
||||
'my.type_extension2' => [
|
||||
'class' => '%type1_extension_class%',
|
||||
'tag' => [],
|
||||
],
|
||||
],
|
||||
[
|
||||
'type1' => new IteratorArgument([
|
||||
new Reference('my.type_extension1'),
|
||||
new Reference('my.type_extension2'),
|
||||
]),
|
||||
],
|
||||
[
|
||||
'type1_extension_class' => Type1TypeExtension::class,
|
||||
],
|
||||
],
|
||||
];
|
||||
}
|
||||
|
||||
@ -261,7 +286,7 @@ class FormPassTest extends TestCase
|
||||
|
||||
/**
|
||||
* @expectedException \InvalidArgumentException
|
||||
* @expectedExceptionMessage "form.type_extension" tagged services have to implement the static getExtendedTypes() method. The class for service "my.type_extension" does not implement it.
|
||||
* @expectedExceptionMessage "form.type_extension" tagged services have to implement the static getExtendedTypes() method. Class "stdClass" for service "my.type_extension" does not implement it.
|
||||
*/
|
||||
public function testAddTaggedFormTypeExtensionWithoutExtendedTypeAttributeNorImplementingGetExtendedTypes()
|
||||
{
|
||||
|
@ -256,7 +256,7 @@ final class Intl
|
||||
*/
|
||||
public static function getIcuStubVersion()
|
||||
{
|
||||
return '64.1';
|
||||
return '64.2';
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -1,5 +1,5 @@
|
||||
{
|
||||
"Version": "2.1.48.18",
|
||||
"Version": "2.1.49.82",
|
||||
"Names": {
|
||||
"AED": [
|
||||
"AED",
|
||||
|
@ -1,5 +1,5 @@
|
||||
{
|
||||
"Version": "2.1.48.22",
|
||||
"Version": "2.1.49.82",
|
||||
"Names": {
|
||||
"ADP": [
|
||||
"ADP",
|
||||
|
@ -1,5 +1,5 @@
|
||||
{
|
||||
"Version": "2.1.48.17",
|
||||
"Version": "2.1.49.82",
|
||||
"Names": {
|
||||
"ADP": [
|
||||
"ADP",
|
||||
|
@ -1,5 +1,5 @@
|
||||
{
|
||||
"Version": "2.1.48.17",
|
||||
"Version": "2.1.49.82",
|
||||
"Names": {
|
||||
"AED": [
|
||||
"AED",
|
||||
|
@ -1,5 +1,5 @@
|
||||
{
|
||||
"Version": "2.1.48.17",
|
||||
"Version": "2.1.49.82",
|
||||
"Names": {
|
||||
"ADP": [
|
||||
"ADP",
|
||||
|
@ -1,5 +1,5 @@
|
||||
{
|
||||
"Version": "2.1.48.17",
|
||||
"Version": "2.1.49.82",
|
||||
"Names": {
|
||||
"ADP": [
|
||||
"ADP",
|
||||
|
@ -1,5 +1,5 @@
|
||||
{
|
||||
"Version": "2.1.48.17",
|
||||
"Version": "2.1.49.82",
|
||||
"Names": {
|
||||
"AED": [
|
||||
"AED",
|
||||
|
@ -1,5 +1,5 @@
|
||||
{
|
||||
"Version": "2.1.48.17",
|
||||
"Version": "2.1.49.82",
|
||||
"Names": {
|
||||
"ADP": [
|
||||
"ADP",
|
||||
|
@ -1,5 +1,5 @@
|
||||
{
|
||||
"Version": "2.1.49.26",
|
||||
"Version": "2.1.49.82",
|
||||
"Names": {
|
||||
"ADP": [
|
||||
"ADP",
|
||||
|
@ -1,5 +1,5 @@
|
||||
{
|
||||
"Version": "2.1.48.20",
|
||||
"Version": "2.1.49.82",
|
||||
"Names": {
|
||||
"ADP": [
|
||||
"ADP",
|
||||
|
@ -1,5 +1,5 @@
|
||||
{
|
||||
"Version": "2.1.48.17",
|
||||
"Version": "2.1.49.82",
|
||||
"Names": {
|
||||
"AED": [
|
||||
"AED",
|
||||
|
@ -1,5 +1,5 @@
|
||||
{
|
||||
"Version": "2.1.48.42",
|
||||
"Version": "2.1.49.82",
|
||||
"Names": {
|
||||
"ADP": [
|
||||
"ADP",
|
||||
|
@ -1,5 +1,5 @@
|
||||
{
|
||||
"Version": "2.1.48.43",
|
||||
"Version": "2.1.49.82",
|
||||
"Names": {
|
||||
"ADP": [
|
||||
"ADP",
|
||||
|
@ -1,5 +1,5 @@
|
||||
{
|
||||
"Version": "2.1.48.17",
|
||||
"Version": "2.1.49.82",
|
||||
"Names": {
|
||||
"ADP": [
|
||||
"ADP",
|
||||
|
@ -1,5 +1,5 @@
|
||||
{
|
||||
"Version": "2.1.48.86",
|
||||
"Version": "2.1.49.82",
|
||||
"Names": {
|
||||
"ADP": [
|
||||
"ADP",
|
||||
|
@ -1,5 +1,5 @@
|
||||
{
|
||||
"Version": "2.1.48.17",
|
||||
"Version": "2.1.49.82",
|
||||
"Names": {
|
||||
"ADP": [
|
||||
"ADP",
|
||||
|
@ -1,5 +1,5 @@
|
||||
{
|
||||
"Version": "2.1.48.17",
|
||||
"Version": "2.1.49.82",
|
||||
"Names": {
|
||||
"AED": [
|
||||
"AED",
|
||||
|
@ -1,5 +1,5 @@
|
||||
{
|
||||
"Version": "2.1.48.17",
|
||||
"Version": "2.1.49.82",
|
||||
"Names": {
|
||||
"AED": [
|
||||
"AED",
|
||||
|
@ -1,5 +1,5 @@
|
||||
{
|
||||
"Version": "2.1.48.17",
|
||||
"Version": "2.1.49.82",
|
||||
"Names": {
|
||||
"ADP": [
|
||||
"ADP",
|
||||
|
@ -1,5 +1,5 @@
|
||||
{
|
||||
"Version": "2.1.48.42",
|
||||
"Version": "2.1.49.82",
|
||||
"Names": {
|
||||
"ADP": [
|
||||
"ADP",
|
||||
|
@ -1,5 +1,5 @@
|
||||
{
|
||||
"Version": "2.1.48.17",
|
||||
"Version": "2.1.49.82",
|
||||
"Names": {
|
||||
"AED": [
|
||||
"AED",
|
||||
|
@ -1,5 +1,5 @@
|
||||
{
|
||||
"Version": "2.1.48.17",
|
||||
"Version": "2.1.49.82",
|
||||
"Names": {
|
||||
"AED": [
|
||||
"AED",
|
||||
|
@ -1,5 +1,5 @@
|
||||
{
|
||||
"Version": "2.1.48.17",
|
||||
"Version": "2.1.49.82",
|
||||
"Names": {
|
||||
"ADP": [
|
||||
"ADP",
|
||||
|
@ -1,5 +1,5 @@
|
||||
{
|
||||
"Version": "2.1.48.17",
|
||||
"Version": "2.1.49.82",
|
||||
"Names": {
|
||||
"AED": [
|
||||
"AED",
|
||||
|
@ -1,5 +1,5 @@
|
||||
{
|
||||
"Version": "2.1.47.82",
|
||||
"Version": "2.1.49.82",
|
||||
"Names": {
|
||||
"ADP": [
|
||||
"ADP",
|
||||
|
@ -1,5 +1,5 @@
|
||||
{
|
||||
"Version": "2.1.47.82",
|
||||
"Version": "2.1.49.82",
|
||||
"Currencies": [
|
||||
"ADP",
|
||||
"AED",
|
||||
|
@ -1,5 +1,5 @@
|
||||
{
|
||||
"Version": "2.1.47.85",
|
||||
"Version": "2.1.49.82",
|
||||
"Names": {
|
||||
"ANG": [
|
||||
"ANG",
|
||||
|
@ -1,5 +1,5 @@
|
||||
{
|
||||
"Version": "2.1.48.20",
|
||||
"Version": "2.1.49.82",
|
||||
"Names": {
|
||||
"ADP": [
|
||||
"ADP",
|
||||
|
@ -1,5 +1,5 @@
|
||||
{
|
||||
"Version": "2.1.47.72",
|
||||
"Version": "2.1.49.82",
|
||||
"Names": {
|
||||
"AED": [
|
||||
"AED",
|
||||
|
@ -1,5 +1,5 @@
|
||||
{
|
||||
"Version": "2.1.48.36",
|
||||
"Version": "2.1.49.82",
|
||||
"Names": {
|
||||
"AED": [
|
||||
"AED",
|
||||
|
@ -1,5 +1,5 @@
|
||||
{
|
||||
"Version": "2.1.48.17",
|
||||
"Version": "2.1.49.82",
|
||||
"Names": {
|
||||
"AED": [
|
||||
"AED",
|
||||
|
@ -1,5 +1,5 @@
|
||||
{
|
||||
"Version": "2.1.48.86",
|
||||
"Version": "2.1.49.82",
|
||||
"Names": {
|
||||
"ADP": [
|
||||
"ADP",
|
||||
|
@ -1,5 +1,5 @@
|
||||
{
|
||||
"Version": "2.1.47.82",
|
||||
"Version": "2.1.49.82",
|
||||
"Names": {
|
||||
"ADP": [
|
||||
"ADP",
|
||||
|
@ -1,5 +1,5 @@
|
||||
{
|
||||
"Version": "2.1.48.17",
|
||||
"Version": "2.1.49.82",
|
||||
"Names": {
|
||||
"AED": [
|
||||
"AED",
|
||||
|
@ -1,5 +1,5 @@
|
||||
{
|
||||
"Version": "2.1.48.17",
|
||||
"Version": "2.1.49.82",
|
||||
"Names": {
|
||||
"AFA": [
|
||||
"AFA",
|
||||
|
@ -1,5 +1,5 @@
|
||||
{
|
||||
"Version": "2.1.47.89",
|
||||
"Version": "2.1.49.82",
|
||||
"Names": {
|
||||
"AED": [
|
||||
"AED",
|
||||
|
@ -1,5 +1,5 @@
|
||||
{
|
||||
"Version": "2.1.47.82",
|
||||
"Version": "2.1.49.82",
|
||||
"Names": {
|
||||
"PEN": [
|
||||
"S\/",
|
||||
|
@ -1,5 +1,5 @@
|
||||
{
|
||||
"Version": "2.1.48.20",
|
||||
"Version": "2.1.49.82",
|
||||
"Names": {
|
||||
"ADP": [
|
||||
"ADP",
|
||||
|
@ -1,5 +1,5 @@
|
||||
{
|
||||
"Version": "2.1.47.82",
|
||||
"Version": "2.1.49.82",
|
||||
"Names": {
|
||||
"AUD": [
|
||||
"A$",
|
||||
|
@ -1,5 +1,5 @@
|
||||
{
|
||||
"Version": "2.1.48.42",
|
||||
"Version": "2.1.49.82",
|
||||
"Names": {
|
||||
"ADP": [
|
||||
"ADP",
|
||||
|
@ -1,5 +1,5 @@
|
||||
{
|
||||
"Version": "2.1.47.82",
|
||||
"Version": "2.1.49.82",
|
||||
"Names": {
|
||||
"RWF": [
|
||||
"RF",
|
||||
|
@ -1,5 +1,5 @@
|
||||
{
|
||||
"Version": "2.1.48.17",
|
||||
"Version": "2.1.49.82",
|
||||
"Names": {
|
||||
"AED": [
|
||||
"AED",
|
||||
|
@ -1,5 +1,5 @@
|
||||
{
|
||||
"Version": "2.1.48.77",
|
||||
"Version": "2.1.49.82",
|
||||
"Names": {
|
||||
"ADP": [
|
||||
"ADP",
|
||||
|
@ -1,5 +1,5 @@
|
||||
{
|
||||
"Version": "2.1.48.17",
|
||||
"Version": "2.1.49.82",
|
||||
"Names": {
|
||||
"AED": [
|
||||
"AED",
|
||||
|
@ -1,5 +1,5 @@
|
||||
{
|
||||
"Version": "2.1.48.42",
|
||||
"Version": "2.1.49.82",
|
||||
"Names": {
|
||||
"ADP": [
|
||||
"ADP",
|
||||
|
@ -1,5 +1,5 @@
|
||||
{
|
||||
"Version": "2.1.48.77",
|
||||
"Version": "2.1.49.82",
|
||||
"Names": {
|
||||
"ADP": [
|
||||
"ADP",
|
||||
|
@ -1,5 +1,5 @@
|
||||
{
|
||||
"Version": "2.1.47.96",
|
||||
"Version": "2.1.49.82",
|
||||
"Names": {
|
||||
"BRL": [
|
||||
"R$",
|
||||
|
@ -1,5 +1,5 @@
|
||||
{
|
||||
"Version": "2.1.48.86",
|
||||
"Version": "2.1.49.82",
|
||||
"Names": {
|
||||
"ADP": [
|
||||
"ADP",
|
||||
|
@ -1,5 +1,5 @@
|
||||
{
|
||||
"Version": "2.1.47.82",
|
||||
"Version": "2.1.49.82",
|
||||
"Names": {
|
||||
"BRL": [
|
||||
"R$",
|
||||
|
@ -1,5 +1,5 @@
|
||||
{
|
||||
"Version": "2.1.48.86",
|
||||
"Version": "2.1.49.82",
|
||||
"Names": {
|
||||
"AED": [
|
||||
"AED",
|
||||
|
@ -1,5 +1,5 @@
|
||||
{
|
||||
"Version": "2.1.48.20",
|
||||
"Version": "2.1.49.82",
|
||||
"Names": {
|
||||
"AED": [
|
||||
"AED",
|
||||
|
@ -1,5 +1,5 @@
|
||||
{
|
||||
"Version": "2.1.47.85",
|
||||
"Version": "2.1.49.82",
|
||||
"Names": {
|
||||
"BRL": [
|
||||
"R$",
|
||||
|
@ -1,5 +1,5 @@
|
||||
{
|
||||
"Version": "2.1.47.82",
|
||||
"Version": "2.1.49.82",
|
||||
"Names": {
|
||||
"ADP": [
|
||||
"ADP",
|
||||
|
@ -1,5 +1,5 @@
|
||||
{
|
||||
"Version": "2.1.48.42",
|
||||
"Version": "2.1.49.82",
|
||||
"Names": {
|
||||
"ADP": [
|
||||
"ADP",
|
||||
|
@ -1,5 +1,5 @@
|
||||
{
|
||||
"Version": "2.1.48.20",
|
||||
"Version": "2.1.49.82",
|
||||
"Names": {
|
||||
"AED": [
|
||||
"AED",
|
||||
|
@ -1,5 +1,5 @@
|
||||
{
|
||||
"Version": "2.1.48.17",
|
||||
"Version": "2.1.49.82",
|
||||
"Names": {
|
||||
"AED": [
|
||||
"AED",
|
||||
|
@ -1,5 +1,5 @@
|
||||
{
|
||||
"Version": "2.1.48.17",
|
||||
"Version": "2.1.49.82",
|
||||
"Names": {
|
||||
"ANG": [
|
||||
"ANG",
|
||||
|
@ -1,5 +1,5 @@
|
||||
{
|
||||
"Version": "2.1.48.42",
|
||||
"Version": "2.1.49.82",
|
||||
"Names": {
|
||||
"ADP": [
|
||||
"ADP",
|
||||
|
@ -1,5 +1,5 @@
|
||||
{
|
||||
"Version": "2.1.47.84",
|
||||
"Version": "2.1.49.82",
|
||||
"Names": {
|
||||
"BRL": [
|
||||
"R$",
|
||||
|
@ -1,5 +1,5 @@
|
||||
{
|
||||
"Version": "2.1.48.89",
|
||||
"Version": "2.1.49.82",
|
||||
"Names": {
|
||||
"ZAR": [
|
||||
"R",
|
||||
|
@ -1,5 +1,5 @@
|
||||
{
|
||||
"Version": "2.1.48.42",
|
||||
"Version": "2.1.49.82",
|
||||
"Names": {
|
||||
"ADP": [
|
||||
"ADP",
|
||||
|
@ -1,5 +1,5 @@
|
||||
{
|
||||
"Version": "2.1.48.42",
|
||||
"Version": "2.1.49.82",
|
||||
"Names": {
|
||||
"ADP": [
|
||||
"ADP",
|
||||
|
@ -2,6 +2,6 @@ Git information
|
||||
===============
|
||||
|
||||
URL: https://github.com/unicode-org/icu.git
|
||||
Revision: 2f2aec5f91cffe49b7526d9b0d18a9acbdd0cc89
|
||||
Author: yumaoka
|
||||
Date: 2019-03-25T16:18:16-04:00
|
||||
Revision: e2d85306162d3a0691b070b4f0a73e4012433444
|
||||
Author: Steven R. Loomis
|
||||
Date: 2019-04-17T08:58:08-07:00
|
||||
|
@ -1,5 +1,5 @@
|
||||
{
|
||||
"Version": "2.1.48.18",
|
||||
"Version": "2.1.49.82",
|
||||
"Names": {
|
||||
"aa": "አፋርኛ",
|
||||
"ab": "አብሐዚኛ",
|
||||
|
@ -1,5 +1,5 @@
|
||||
{
|
||||
"Version": "2.1.48.22",
|
||||
"Version": "2.1.49.82",
|
||||
"Names": {
|
||||
"aa": "الأفارية",
|
||||
"ab": "الأبخازية",
|
||||
|
@ -1,5 +1,5 @@
|
||||
{
|
||||
"Version": "2.1.48.17",
|
||||
"Version": "2.1.49.82",
|
||||
"Names": {
|
||||
"aa": "afar",
|
||||
"ab": "abxaz",
|
||||
|
@ -1,5 +1,5 @@
|
||||
{
|
||||
"Version": "2.1.48.17",
|
||||
"Version": "2.1.49.82",
|
||||
"Names": {
|
||||
"aa": "афарская",
|
||||
"ab": "абхазская",
|
||||
|
@ -1,5 +1,5 @@
|
||||
{
|
||||
"Version": "2.1.48.17",
|
||||
"Version": "2.1.49.82",
|
||||
"Names": {
|
||||
"aa": "afarski",
|
||||
"ab": "abhaski",
|
||||
|
@ -1,5 +1,5 @@
|
||||
{
|
||||
"Version": "2.1.48.17",
|
||||
"Version": "2.1.49.82",
|
||||
"Names": {
|
||||
"aa": "афарски",
|
||||
"ab": "абказијски",
|
||||
|
@ -1,5 +1,5 @@
|
||||
{
|
||||
"Version": "2.1.48.17",
|
||||
"Version": "2.1.49.82",
|
||||
"Names": {
|
||||
"aa": "Affareg",
|
||||
"ab": "Abchaseg",
|
||||
|
@ -1,5 +1,5 @@
|
||||
{
|
||||
"Version": "2.1.48.17",
|
||||
"Version": "2.1.49.82",
|
||||
"Names": {
|
||||
"aa": "afar",
|
||||
"ab": "abkhasisk",
|
||||
|
@ -1,5 +1,5 @@
|
||||
{
|
||||
"Version": "2.1.49.26",
|
||||
"Version": "2.1.49.82",
|
||||
"Names": {
|
||||
"aa": "Αφάρ",
|
||||
"ab": "Αμπχαζικά",
|
||||
|
@ -1,5 +1,5 @@
|
||||
{
|
||||
"Version": "2.1.48.20",
|
||||
"Version": "2.1.49.82",
|
||||
"Names": {
|
||||
"aa": "afar",
|
||||
"ab": "abjasio",
|
||||
|
@ -1,5 +1,5 @@
|
||||
{
|
||||
"Version": "2.1.48.17",
|
||||
"Version": "2.1.49.82",
|
||||
"Names": {
|
||||
"aa": "afarera",
|
||||
"ab": "abkhaziera",
|
||||
|
@ -1,5 +1,5 @@
|
||||
{
|
||||
"Version": "2.1.48.42",
|
||||
"Version": "2.1.49.82",
|
||||
"Names": {
|
||||
"aa": "آفاری",
|
||||
"ab": "آبخازی",
|
||||
|
@ -1,5 +1,5 @@
|
||||
{
|
||||
"Version": "2.1.48.43",
|
||||
"Version": "2.1.49.82",
|
||||
"Names": {
|
||||
"aa": "afar",
|
||||
"ab": "abkhaze",
|
||||
|
@ -1,5 +1,5 @@
|
||||
{
|
||||
"Version": "2.1.48.17",
|
||||
"Version": "2.1.49.82",
|
||||
"Names": {
|
||||
"aa": "Afáiris",
|
||||
"ab": "Abcáisis",
|
||||
|
@ -1,5 +1,5 @@
|
||||
{
|
||||
"Version": "2.1.48.86",
|
||||
"Version": "2.1.49.82",
|
||||
"Names": {
|
||||
"aa": "Afar",
|
||||
"ab": "Abchasais",
|
||||
|
@ -1,5 +1,5 @@
|
||||
{
|
||||
"Version": "2.1.48.17",
|
||||
"Version": "2.1.49.82",
|
||||
"Names": {
|
||||
"aa": "afar",
|
||||
"ab": "abkhazo",
|
||||
|
@ -1,5 +1,5 @@
|
||||
{
|
||||
"Version": "2.1.48.17",
|
||||
"Version": "2.1.49.82",
|
||||
"Names": {
|
||||
"aa": "अफ़ार",
|
||||
"ab": "अब्ख़ाज़ियन",
|
||||
|
@ -1,5 +1,5 @@
|
||||
{
|
||||
"Version": "2.1.48.17",
|
||||
"Version": "2.1.49.82",
|
||||
"Names": {
|
||||
"aa": "աֆարերեն",
|
||||
"ab": "աբխազերեն",
|
||||
|
@ -1,5 +1,5 @@
|
||||
{
|
||||
"Version": "2.1.48.17",
|
||||
"Version": "2.1.49.82",
|
||||
"Names": {
|
||||
"aa": "afár",
|
||||
"ab": "abkasíska",
|
||||
|
@ -1,5 +1,5 @@
|
||||
{
|
||||
"Version": "2.1.48.42",
|
||||
"Version": "2.1.49.82",
|
||||
"Names": {
|
||||
"aa": "アファル語",
|
||||
"ab": "アブハズ語",
|
||||
|
@ -1,5 +1,5 @@
|
||||
{
|
||||
"Version": "2.1.48.17",
|
||||
"Version": "2.1.49.82",
|
||||
"Names": {
|
||||
"aa": "афар тілі",
|
||||
"ab": "абхаз тілі",
|
||||
|
@ -1,5 +1,5 @@
|
||||
{
|
||||
"Version": "2.1.48.17",
|
||||
"Version": "2.1.49.82",
|
||||
"Names": {
|
||||
"aa": "អាហ្វារ",
|
||||
"ab": "អាប់ខាហ៊្សាន",
|
||||
|
@ -1,5 +1,5 @@
|
||||
{
|
||||
"Version": "2.1.48.17",
|
||||
"Version": "2.1.49.82",
|
||||
"Names": {
|
||||
"aa": "아파르어",
|
||||
"ab": "압카즈어",
|
||||
|
@ -1,5 +1,5 @@
|
||||
{
|
||||
"Version": "2.1.48.17",
|
||||
"Version": "2.1.49.82",
|
||||
"Names": {
|
||||
"aa": "афарча",
|
||||
"ab": "абхазча",
|
||||
|
@ -1,5 +1,5 @@
|
||||
{
|
||||
"Version": "2.1.47.82",
|
||||
"Version": "2.1.49.82",
|
||||
"Names": {
|
||||
"aa": "Afar",
|
||||
"ab": "Abchasesch",
|
||||
|
@ -1,5 +1,5 @@
|
||||
{
|
||||
"Version": "2.1.47.82",
|
||||
"Version": "2.1.49.82",
|
||||
"Languages": [
|
||||
"aa",
|
||||
"ab",
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user