Merge branch '4.4'

* 4.4:
  [Form][Validator][Intl] Fix tests
  [Messenger] return empty envelopes when RetryableException occurs
  [Intl] Excludes locale from language codes (split localized language names)
  [FrameworkBundle] WebTestCase KernelBrowser::getContainer null return type
  [Intl] Fix compile type errors
  [Validator] Accept underscores in the URL validator as the URL will resolve correctly
  [Translation] Collect original locale in case of fallback translation
  Add types to constructors and private/final/internal methods (Batch I)
  [HttpFoundation] optimize normalization of headers
  Replace REMOTE_ADDR in trusted proxies with the current REMOTE_ADDR
  [ErrorHandler] Forward \Throwable
  Fix toolbar load when GET params are present in "_wdt" route
This commit is contained in:
Nicolas Grekas 2019-09-27 16:25:24 +02:00
commit 4a9926aa68
264 changed files with 2717 additions and 2195 deletions

View File

@ -60,7 +60,7 @@ DependencyInjection
```php ```php
new Definition('%my_class%'); new Definition('%my_class%');
``` ```
DoctrineBridge DoctrineBridge
-------------- --------------
* Deprecated injecting `ClassMetadataFactory` in `DoctrineExtractor`, an instance of `EntityManagerInterface` should be * Deprecated injecting `ClassMetadataFactory` in `DoctrineExtractor`, an instance of `EntityManagerInterface` should be
@ -96,7 +96,7 @@ FrameworkBundle
* Deprecated `routing.loader.service`, use `routing.loader.container` instead. * Deprecated `routing.loader.service`, use `routing.loader.container` instead.
* Not tagging service route loaders with `routing.route_loader` has been deprecated. * Not tagging service route loaders with `routing.route_loader` has been deprecated.
* Overriding the methods `KernelTestCase::tearDown()` and `WebTestCase::tearDown()` without the `void` return-type is deprecated. * Overriding the methods `KernelTestCase::tearDown()` and `WebTestCase::tearDown()` without the `void` return-type is deprecated.
HttpClient HttpClient
---------- ----------
@ -139,7 +139,7 @@ HttpKernel
} }
``` ```
As many bundles must be compatible with a range of Symfony versions, the current As many bundles must be compatible with a range of Symfony versions, the current
directory convention is not deprecated yet, but it will be in the future. directory convention is not deprecated yet, but it will be in the future.
* Deprecated the second and third argument of `KernelInterface::locateResource` * Deprecated the second and third argument of `KernelInterface::locateResource`
@ -148,6 +148,7 @@ HttpKernel
fallback directories. Resources like service definitions are usually loaded relative to the fallback directories. Resources like service definitions are usually loaded relative to the
current directory or with a glob pattern. The fallback directories have never been advocated current directory or with a glob pattern. The fallback directories have never been advocated
so you likely do not use those in any app based on the SF Standard or Flex edition. so you likely do not use those in any app based on the SF Standard or Flex edition.
* Getting the container from a non-booted kernel is deprecated
Lock Lock
---- ----
@ -171,7 +172,7 @@ MonologBridge
-------------- --------------
* The `RouteProcessor` has been marked final. * The `RouteProcessor` has been marked final.
Process Process
------- -------
@ -195,14 +196,14 @@ Security
* Implementations of `PasswordEncoderInterface` and `UserPasswordEncoderInterface` should add a new `needsRehash()` method * Implementations of `PasswordEncoderInterface` and `UserPasswordEncoderInterface` should add a new `needsRehash()` method
* Deprecated returning a non-boolean value when implementing `Guard\AuthenticatorInterface::checkCredentials()`. Please explicitly return `false` to indicate invalid credentials. * Deprecated returning a non-boolean value when implementing `Guard\AuthenticatorInterface::checkCredentials()`. Please explicitly return `false` to indicate invalid credentials.
* Deprecated passing more than one attribute to `AccessDecisionManager::decide()` and `AuthorizationChecker::isGranted()` (and indirectly the `is_granted()` Twig and ExpressionLanguage function) * Deprecated passing more than one attribute to `AccessDecisionManager::decide()` and `AuthorizationChecker::isGranted()` (and indirectly the `is_granted()` Twig and ExpressionLanguage function)
**Before** **Before**
```php ```php
if ($this->authorizationChecker->isGranted(['ROLE_USER', 'ROLE_ADMIN'])) { if ($this->authorizationChecker->isGranted(['ROLE_USER', 'ROLE_ADMIN'])) {
// ... // ...
} }
``` ```
**After** **After**
```php ```php
if ($this->authorizationChecker->isGranted(new Expression("has_role('ROLE_USER') or has_role('ROLE_ADMIN')"))) {} if ($this->authorizationChecker->isGranted(new Expression("has_role('ROLE_USER') or has_role('ROLE_ADMIN')"))) {}
@ -230,18 +231,18 @@ TwigBridge
* Deprecated to pass `$rootDir` and `$fileLinkFormatter` as 5th and 6th argument respectively to the * Deprecated to pass `$rootDir` and `$fileLinkFormatter` as 5th and 6th argument respectively to the
`DebugCommand::__construct()` method, swap the variables position. `DebugCommand::__construct()` method, swap the variables position.
* Deprecated accepting STDIN implicitly when using the `lint:twig` command, use `lint:twig -` (append a dash) instead to make it explicit. * Deprecated accepting STDIN implicitly when using the `lint:twig` command, use `lint:twig -` (append a dash) instead to make it explicit.
TwigBundle TwigBundle
---------- ----------
* Deprecated `twig.exception_controller` configuration option, set it to "null" and use `framework.error_controller` instead: * Deprecated `twig.exception_controller` configuration option, set it to "null" and use `framework.error_controller` instead:
Before: Before:
```yaml ```yaml
twig: twig:
exception_controller: 'App\Controller\MyExceptionController' exception_controller: 'App\Controller\MyExceptionController'
``` ```
After: After:
```yaml ```yaml
twig: twig:
@ -250,36 +251,36 @@ TwigBundle
framework: framework:
error_controller: 'App\Controller\MyExceptionController' error_controller: 'App\Controller\MyExceptionController'
``` ```
The new default exception controller will also change the error response content according to The new default exception controller will also change the error response content according to
https://tools.ietf.org/html/rfc7807 for `json`, `xml`, `atom` and `txt` formats: https://tools.ietf.org/html/rfc7807 for `json`, `xml`, `atom` and `txt` formats:
Before: Before:
```json ```json
{ {
"error": { "error": {
"code": 404, "code": 404,
"message": "Sorry, the page you are looking for could not be found" "message": "Sorry, the page you are looking for could not be found"
} }
} }
``` ```
After: After:
```json ```json
{ {
"title": "Not Found", "title": "Not Found",
"status": 404, "status": 404,
"detail": "Sorry, the page you are looking for could not be found" "detail": "Sorry, the page you are looking for could not be found"
} }
``` ```
* Deprecated the `ExceptionController` and `PreviewErrorController` controllers, use `ErrorController` from the HttpKernel component instead * Deprecated the `ExceptionController` and `PreviewErrorController` controllers, use `ErrorController` from the HttpKernel component instead
* Deprecated all built-in error templates, use the error renderer mechanism of the `ErrorRenderer` component * Deprecated all built-in error templates, use the error renderer mechanism of the `ErrorRenderer` component
* Deprecated loading custom error templates in non-html formats. Custom HTML error pages based on Twig keep working as before: * Deprecated loading custom error templates in non-html formats. Custom HTML error pages based on Twig keep working as before:
Before (`templates/bundles/TwigBundle/Exception/error.jsonld.twig`): Before (`templates/bundles/TwigBundle/Exception/error.jsonld.twig`):
```twig ```twig
{ {
"@id": "https://example.com", "@id": "https://example.com",
"@type": "error", "@type": "error",
"@context": { "@context": {
@ -289,7 +290,7 @@ TwigBundle
} }
} }
``` ```
After (`App\ErrorRenderer\JsonLdErrorRenderer`): After (`App\ErrorRenderer\JsonLdErrorRenderer`):
```php ```php
class JsonLdErrorRenderer implements ErrorRendererInterface class JsonLdErrorRenderer implements ErrorRendererInterface
@ -298,7 +299,7 @@ TwigBundle
{ {
return 'jsonld'; return 'jsonld';
} }
public function render(FlattenException $exception): string public function render(FlattenException $exception): string
{ {
return json_encode([ return json_encode([
@ -323,7 +324,7 @@ Validator
* Deprecated using anything else than a `string` as the code of a `ConstraintViolation`, a `string` type-hint will * Deprecated using anything else than a `string` as the code of a `ConstraintViolation`, a `string` type-hint will
be added to the constructor of the `ConstraintViolation` class and to the `ConstraintViolationBuilder::setCode()` be added to the constructor of the `ConstraintViolation` class and to the `ConstraintViolationBuilder::setCode()`
method in 5.0. method in 5.0.
* Deprecated passing an `ExpressionLanguage` instance as the second argument of `ExpressionValidator::__construct()`. * Deprecated passing an `ExpressionLanguage` instance as the second argument of `ExpressionValidator::__construct()`.
Pass it as the first argument instead. Pass it as the first argument instead.
* The `Length` constraint expects the `allowEmptyString` option to be defined * The `Length` constraint expects the `allowEmptyString` option to be defined
when the `min` option is used. when the `min` option is used.
@ -343,7 +344,7 @@ WebServerBundle
--------------- ---------------
* The bundle is deprecated and will be removed in 5.0. * The bundle is deprecated and will be removed in 5.0.
Yaml Yaml
---- ----

View File

@ -288,6 +288,7 @@ HttpFoundation
use `Symfony\Component\Mime\FileinfoMimeTypeGuesser` instead. use `Symfony\Component\Mime\FileinfoMimeTypeGuesser` instead.
* `ApacheRequest` has been removed, use the `Request` class instead. * `ApacheRequest` has been removed, use the `Request` class instead.
* The third argument of the `HeaderBag::get()` method has been removed, use method `all()` instead. * The third argument of the `HeaderBag::get()` method has been removed, use method `all()` instead.
* Getting the container from a non-booted kernel is not possible anymore.
HttpKernel HttpKernel
---------- ----------

View File

@ -174,10 +174,8 @@ class Application extends BaseApplication
if ($bundle instanceof Bundle) { if ($bundle instanceof Bundle) {
try { try {
$bundle->registerCommands($this); $bundle->registerCommands($this);
} catch (\Exception $e) {
$this->registrationErrors[] = $e;
} catch (\Throwable $e) { } catch (\Throwable $e) {
$this->registrationErrors[] = new FatalThrowableError($e); $this->registrationErrors[] = $e;
} }
} }
} }
@ -192,10 +190,8 @@ class Application extends BaseApplication
if (!isset($lazyCommandIds[$id])) { if (!isset($lazyCommandIds[$id])) {
try { try {
$this->add($container->get($id)); $this->add($container->get($id));
} catch (\Exception $e) {
$this->registrationErrors[] = $e;
} catch (\Throwable $e) { } catch (\Throwable $e) {
$this->registrationErrors[] = new FatalThrowableError($e); $this->registrationErrors[] = $e;
} }
} }
} }
@ -211,6 +207,10 @@ class Application extends BaseApplication
(new SymfonyStyle($input, $output))->warning('Some commands could not be registered:'); (new SymfonyStyle($input, $output))->warning('Some commands could not be registered:');
foreach ($this->registrationErrors as $error) { foreach ($this->registrationErrors as $error) {
if (!$error instanceof \Exception) {
$error = new FatalThrowableError($error);
}
$this->doRenderException($error, $output); $this->doRenderException($error, $output);
} }
} }

View File

@ -125,11 +125,15 @@ abstract class KernelTestCase extends TestCase
protected static function ensureKernelShutdown() protected static function ensureKernelShutdown()
{ {
if (null !== static::$kernel) { if (null !== static::$kernel) {
$container = static::$kernel->getContainer(); $isBooted = (new \ReflectionClass(static::$kernel))->getProperty('booted');
static::$kernel->shutdown(); $isBooted->setAccessible(true);
static::$booted = false; if ($isBooted->getValue(static::$kernel)) {
if ($container instanceof ResetInterface) { $container = static::$kernel->getContainer();
$container->reset(); static::$kernel->shutdown();
static::$booted = false;
if ($container instanceof ResetInterface) {
$container->reset();
}
} }
} }
static::$container = null; static::$container = null;

View File

@ -14,6 +14,7 @@ namespace Symfony\Bundle\FrameworkBundle\Tests\Functional\app;
use Psr\Log\NullLogger; use Psr\Log\NullLogger;
use Symfony\Component\Config\Loader\LoaderInterface; use Symfony\Component\Config\Loader\LoaderInterface;
use Symfony\Component\DependencyInjection\ContainerBuilder; use Symfony\Component\DependencyInjection\ContainerBuilder;
use Symfony\Component\DependencyInjection\ContainerInterface;
use Symfony\Component\Filesystem\Filesystem; use Symfony\Component\Filesystem\Filesystem;
use Symfony\Component\HttpKernel\Kernel; use Symfony\Component\HttpKernel\Kernel;
@ -96,4 +97,13 @@ class AppKernel extends Kernel
return $parameters; return $parameters;
} }
public function getContainer(): ContainerInterface
{
if (!$this->booted) {
throw new \LogicException('Cannot access the container on a non-booted kernel. Did you forget to boot it?');
}
return parent::getContainer();
}
} }

View File

@ -12,6 +12,7 @@
namespace Symfony\Bundle\SecurityBundle\Tests\Functional\app; namespace Symfony\Bundle\SecurityBundle\Tests\Functional\app;
use Symfony\Component\Config\Loader\LoaderInterface; use Symfony\Component\Config\Loader\LoaderInterface;
use Symfony\Component\DependencyInjection\ContainerInterface;
use Symfony\Component\Filesystem\Filesystem; use Symfony\Component\Filesystem\Filesystem;
use Symfony\Component\HttpKernel\Kernel; use Symfony\Component\HttpKernel\Kernel;
@ -98,4 +99,13 @@ class AppKernel extends Kernel
return $parameters; return $parameters;
} }
public function getContainer(): ContainerInterface
{
if (!$this->booted) {
throw new \LogicException('Cannot access the container on a non-booted kernel. Did you forget to boot it?');
}
return parent::getContainer();
}
} }

View File

@ -13,7 +13,7 @@
{% set text %} {% set text %}
<div class="sf-toolbar-info-piece"> <div class="sf-toolbar-info-piece">
<b>Locale</b> <b>Default locale</b>
<span class="sf-toolbar-status"> <span class="sf-toolbar-status">
{{ collector.locale|default('-') }} {{ collector.locale|default('-') }}
</span> </span>
@ -61,7 +61,7 @@
<div class="metrics"> <div class="metrics">
<div class="metric"> <div class="metric">
<span class="value">{{ collector.locale|default('-') }}</span> <span class="value">{{ collector.locale|default('-') }}</span>
<span class="label">Locale</span> <span class="label">Default locale</span>
</div> </div>
<div class="metric"> <div class="metric">
<span class="value">{{ collector.fallbackLocales|join(', ')|default('-') }}</span> <span class="value">{{ collector.fallbackLocales|join(', ')|default('-') }}</span>
@ -126,7 +126,7 @@
</div> </div>
{% else %} {% else %}
{% block fallback_messages %} {% block fallback_messages %}
{{ helper.render_table(messages_fallback) }} {{ helper.render_table(messages_fallback, true) }}
{% endblock %} {% endblock %}
{% endif %} {% endif %}
</div> </div>
@ -162,11 +162,14 @@
{% endblock %} {% endblock %}
{% macro render_table(messages) %} {% macro render_table(messages, is_fallback) %}
<table data-filters> <table data-filters>
<thead> <thead>
<tr> <tr>
<th data-filter="locale">Locale</th> <th data-filter="locale">Locale</th>
{% if is_fallback %}
<th>Fallback locale</th>
{% endif %}
<th data-filter="domain">Domain</th> <th data-filter="domain">Domain</th>
<th>Times used</th> <th>Times used</th>
<th>Message ID</th> <th>Message ID</th>
@ -177,6 +180,9 @@
{% for message in messages %} {% for message in messages %}
<tr data-filter-locale="{{ message.locale }}" data-filter-domain="{{ message.domain }}"> <tr data-filter-locale="{{ message.locale }}" data-filter-domain="{{ message.domain }}">
<td class="font-normal text-small nowrap">{{ message.locale }}</td> <td class="font-normal text-small nowrap">{{ message.locale }}</td>
{% if is_fallback %}
<td class="font-normal text-small nowrap">{{ message.fallbackLocale|default('-') }}</td>
{% endif %}
<td class="font-normal text-small text-bold nowrap">{{ message.domain }}</td> <td class="font-normal text-small text-bold nowrap">{{ message.domain }}</td>
<td class="font-normal text-small nowrap">{{ message.count }}</td> <td class="font-normal text-small nowrap">{{ message.count }}</td>
<td> <td>

View File

@ -429,7 +429,7 @@
newToken = (newToken || token); newToken = (newToken || token);
this.load( this.load(
'sfwdt' + token, 'sfwdt' + token,
'{{ path("_wdt", { "token": "xxxxxx" }) }}'.replace(/xxxxxx/, newToken), '{{ path("_wdt", { "token": "xxxxxx" })|escape('js') }}'.replace(/xxxxxx/, newToken),
function(xhr, el) { function(xhr, el) {
/* Evaluate in global scope scripts embedded inside the toolbar */ /* Evaluate in global scope scripts embedded inside the toolbar */
@ -532,7 +532,7 @@
sfwdt.innerHTML = '\ sfwdt.innerHTML = '\
<div class="sf-toolbarreset">\ <div class="sf-toolbarreset">\
<div class="sf-toolbar-icon"><svg width="26" height="28" xmlns="http://www.w3.org/2000/svg" version="1.1" x="0px" y="0px" viewBox="0 0 26 28" enable-background="new 0 0 26 28" xml:space="preserve"><path fill="#FFFFFF" d="M13 0C5.8 0 0 5.8 0 13c0 7.2 5.8 13 13 13c7.2 0 13-5.8 13-13C26 5.8 20.2 0 13 0z M20 7.5 c-0.6 0-1-0.3-1-0.9c0-0.2 0-0.4 0.2-0.6c0.1-0.3 0.2-0.3 0.2-0.4c0-0.3-0.5-0.4-0.7-0.4c-2 0.1-2.5 2.7-2.9 4.8l-0.2 1.1 c1.1 0.2 1.9 0 2.4-0.3c0.6-0.4-0.2-0.8-0.1-1.3C18 9.2 18.4 9 18.7 8.9c0.5 0 0.8 0.5 0.8 1c0 0.8-1.1 2-3.3 1.9 c-0.3 0-0.5 0-0.7-0.1L15 14.1c-0.4 1.7-0.9 4.1-2.6 6.2c-1.5 1.8-3.1 2.1-3.8 2.1c-1.3 0-2.1-0.6-2.2-1.6c0-0.9 0.8-1.4 1.3-1.4 c0.7 0 1.2 0.5 1.2 1.1c0 0.5-0.2 0.6-0.4 0.7c-0.1 0.1-0.3 0.2-0.3 0.4c0 0.1 0.1 0.3 0.4 0.3c0.5 0 0.9-0.3 1.2-0.5 c1.3-1 1.7-2.9 2.4-6.2l0.1-0.8c0.2-1.1 0.5-2.3 0.8-3.5c-0.9-0.7-1.4-1.5-2.6-1.8c-0.8-0.2-1.3 0-1.7 0.4C8.4 10 8.6 10.7 9 11.1 l0.7 0.7c0.8 0.9 1.3 1.7 1.1 2.7c-0.3 1.6-2.1 2.8-4.3 2.1c-1.9-0.6-2.2-1.9-2-2.7c0.2-0.6 0.7-0.8 1.2-0.6 c0.5 0.2 0.7 0.8 0.6 1.3c0 0.1 0 0.1-0.1 0.3C6 15 5.9 15.2 5.9 15.3c-0.1 0.4 0.4 0.7 0.8 0.8c0.8 0.3 1.7-0.2 1.9-0.9 c0.2-0.6-0.2-1.1-0.4-1.2l-0.8-0.9c-0.4-0.4-1.2-1.5-0.8-2.8c0.2-0.5 0.5-1 0.9-1.4c1-0.7 2-0.8 3-0.6c1.3 0.4 1.9 1.2 2.8 1.9 c0.5-1.3 1.1-2.6 2-3.8c0.9-1 2-1.7 3.3-1.8C20 4.8 21 5.4 21 6.3C21 6.7 20.8 7.5 20 7.5z"/></svg></div>\ <div class="sf-toolbar-icon"><svg width="26" height="28" xmlns="http://www.w3.org/2000/svg" version="1.1" x="0px" y="0px" viewBox="0 0 26 28" enable-background="new 0 0 26 28" xml:space="preserve"><path fill="#FFFFFF" d="M13 0C5.8 0 0 5.8 0 13c0 7.2 5.8 13 13 13c7.2 0 13-5.8 13-13C26 5.8 20.2 0 13 0z M20 7.5 c-0.6 0-1-0.3-1-0.9c0-0.2 0-0.4 0.2-0.6c0.1-0.3 0.2-0.3 0.2-0.4c0-0.3-0.5-0.4-0.7-0.4c-2 0.1-2.5 2.7-2.9 4.8l-0.2 1.1 c1.1 0.2 1.9 0 2.4-0.3c0.6-0.4-0.2-0.8-0.1-1.3C18 9.2 18.4 9 18.7 8.9c0.5 0 0.8 0.5 0.8 1c0 0.8-1.1 2-3.3 1.9 c-0.3 0-0.5 0-0.7-0.1L15 14.1c-0.4 1.7-0.9 4.1-2.6 6.2c-1.5 1.8-3.1 2.1-3.8 2.1c-1.3 0-2.1-0.6-2.2-1.6c0-0.9 0.8-1.4 1.3-1.4 c0.7 0 1.2 0.5 1.2 1.1c0 0.5-0.2 0.6-0.4 0.7c-0.1 0.1-0.3 0.2-0.3 0.4c0 0.1 0.1 0.3 0.4 0.3c0.5 0 0.9-0.3 1.2-0.5 c1.3-1 1.7-2.9 2.4-6.2l0.1-0.8c0.2-1.1 0.5-2.3 0.8-3.5c-0.9-0.7-1.4-1.5-2.6-1.8c-0.8-0.2-1.3 0-1.7 0.4C8.4 10 8.6 10.7 9 11.1 l0.7 0.7c0.8 0.9 1.3 1.7 1.1 2.7c-0.3 1.6-2.1 2.8-4.3 2.1c-1.9-0.6-2.2-1.9-2-2.7c0.2-0.6 0.7-0.8 1.2-0.6 c0.5 0.2 0.7 0.8 0.6 1.3c0 0.1 0 0.1-0.1 0.3C6 15 5.9 15.2 5.9 15.3c-0.1 0.4 0.4 0.7 0.8 0.8c0.8 0.3 1.7-0.2 1.9-0.9 c0.2-0.6-0.2-1.1-0.4-1.2l-0.8-0.9c-0.4-0.4-1.2-1.5-0.8-2.8c0.2-0.5 0.5-1 0.9-1.4c1-0.7 2-0.8 3-0.6c1.3 0.4 1.9 1.2 2.8 1.9 c0.5-1.3 1.1-2.6 2-3.8c0.9-1 2-1.7 3.3-1.8C20 4.8 21 5.4 21 6.3C21 6.7 20.8 7.5 20 7.5z"/></svg></div>\
An error occurred while loading the web debug toolbar. <a href="{{ path("_profiler_home") }}' + newToken + '>Open the web profiler.</a>\ An error occurred while loading the web debug toolbar. <a href="{{ path("_profiler_home")|escape('js') }}' + newToken + '>Open the web profiler.</a>\
</div>\ </div>\
'; ';
sfwdt.setAttribute('class', 'sf-toolbar sf-error-toolbar'); sfwdt.setAttribute('class', 'sf-toolbar sf-error-toolbar');

View File

@ -68,6 +68,9 @@ class Package implements PackageInterface
return $this->versionStrategy; return $this->versionStrategy;
} }
/**
* @return bool
*/
protected function isAbsoluteUrl(string $url) protected function isAbsoluteUrl(string $url)
{ {
return false !== strpos($url, '://') || '//' === substr($url, 0, 2); return false !== strpos($url, '://') || '//' === substr($url, 0, 2);

View File

@ -50,7 +50,7 @@ class JsonManifestVersionStrategy implements VersionStrategyInterface
return $this->getManifestPath($path) ?: $path; return $this->getManifestPath($path) ?: $path;
} }
private function getManifestPath(string $path) private function getManifestPath(string $path): ?string
{ {
if (null === $this->manifestData) { if (null === $this->manifestData) {
if (!file_exists($this->manifestPath)) { if (!file_exists($this->manifestPath)) {

View File

@ -100,7 +100,7 @@ class ReflectionClassResource implements SelfCheckingResourceInterface
} while ($class = $class->getParentClass()); } while ($class = $class->getParentClass());
} }
private function computeHash() private function computeHash(): string
{ {
if (null === $this->classReflector) { if (null === $this->classReflector) {
try { try {
@ -119,7 +119,7 @@ class ReflectionClassResource implements SelfCheckingResourceInterface
return hash_final($hash); return hash_final($hash);
} }
private function generateSignature(\ReflectionClass $class) private function generateSignature(\ReflectionClass $class): iterable
{ {
yield $class->getDocComment(); yield $class->getDocComment();
yield (int) $class->isFinal(); yield (int) $class->isFinal();

View File

@ -120,7 +120,7 @@ class Application implements ResetInterface
$output = new ConsoleOutput(); $output = new ConsoleOutput();
} }
$renderException = function ($e) use ($output) { $renderException = function (\Throwable $e) use ($output) {
if (!$e instanceof \Exception) { if (!$e instanceof \Exception) {
$e = class_exists(FatalThrowableError::class) ? new FatalThrowableError($e) : new \ErrorException($e->getMessage(), $e->getCode(), E_ERROR, $e->getFile(), $e->getLine()); $e = class_exists(FatalThrowableError::class) ? new FatalThrowableError($e) : new \ErrorException($e->getMessage(), $e->getCode(), E_ERROR, $e->getFile(), $e->getLine());
} }
@ -1090,12 +1090,12 @@ class Application implements ResetInterface
/** /**
* @internal * @internal
*/ */
public function isSingleCommand() public function isSingleCommand(): bool
{ {
return $this->singleCommand; return $this->singleCommand;
} }
private function splitStringByWidth(string $string, int $width) private function splitStringByWidth(string $string, int $width): array
{ {
// str_split is not suitable for multi-byte characters, we should use preg_split to get char array properly. // str_split is not suitable for multi-byte characters, we should use preg_split to get char array properly.
// additionally, array_slice() is not enough as some character has doubled width. // additionally, array_slice() is not enough as some character has doubled width.

View File

@ -76,10 +76,7 @@ EOF
]); ]);
} }
/** private function createDefinition(): InputDefinition
* {@inheritdoc}
*/
private function createDefinition()
{ {
return new InputDefinition([ return new InputDefinition([
new InputArgument('namespace', InputArgument::OPTIONAL, 'The namespace name'), new InputArgument('namespace', InputArgument::OPTIONAL, 'The namespace name'),

View File

@ -173,7 +173,7 @@ class MarkdownDescriptor extends Descriptor
} }
} }
private function getApplicationTitle(Application $application) private function getApplicationTitle(Application $application): string
{ {
if ('UNKNOWN' !== $application->getName()) { if ('UNKNOWN' !== $application->getName()) {
if ('UNKNOWN' !== $application->getVersion()) { if ('UNKNOWN' !== $application->getVersion()) {

View File

@ -77,7 +77,7 @@ class ErrorListener implements EventSubscriberInterface
]; ];
} }
private static function getInputString(ConsoleEvent $event) private static function getInputString(ConsoleEvent $event): ?string
{ {
$commandName = $event->getCommand() ? $event->getCommand()->getName() : null; $commandName = $event->getCommand() ? $event->getCommand()->getName() : null;
$input = $event->getInput(); $input = $event->getInput();

View File

@ -129,7 +129,7 @@ class ProcessHelper extends Helper
}; };
} }
private function escapeString(string $str) private function escapeString(string $str): string
{ {
return str_replace('<', '\\<', $str); return str_replace('<', '\\<', $str);
} }

View File

@ -188,7 +188,7 @@ class ProgressIndicator
}, $this->format)); }, $this->format));
} }
private function determineBestFormat() private function determineBestFormat(): string
{ {
switch ($this->output->getVerbosity()) { switch ($this->output->getVerbosity()) {
// OutputInterface::VERBOSITY_QUIET: display is disabled anyway // OutputInterface::VERBOSITY_QUIET: display is disabled anyway
@ -215,12 +215,12 @@ class ProgressIndicator
} }
} }
private function getCurrentTimeInMilliseconds() private function getCurrentTimeInMilliseconds(): float
{ {
return round(microtime(true) * 1000); return round(microtime(true) * 1000);
} }
private static function initPlaceholderFormatters() private static function initPlaceholderFormatters(): array
{ {
return [ return [
'indicator' => function (self $indicator) { 'indicator' => function (self $indicator) {
@ -238,7 +238,7 @@ class ProgressIndicator
]; ];
} }
private static function initFormats() private static function initFormats(): array
{ {
return [ return [
'normal' => ' %indicator% %message%', 'normal' => ' %indicator% %message%',

View File

@ -336,7 +336,7 @@ class QuestionHelper extends Helper
return $fullChoice; return $fullChoice;
} }
private function mostRecentlyEnteredValue(string $entered) private function mostRecentlyEnteredValue(string $entered): string
{ {
// Determine the most recent value that the user entered // Determine the most recent value that the user entered
if (false === strpos($entered, ',')) { if (false === strpos($entered, ',')) {

View File

@ -456,7 +456,7 @@ class Table
/** /**
* Renders vertical column separator. * Renders vertical column separator.
*/ */
private function renderColumnSeparator(int $type = self::BORDER_OUTSIDE) private function renderColumnSeparator(int $type = self::BORDER_OUTSIDE): string
{ {
$borders = $this->style->getBorderChars(); $borders = $this->style->getBorderChars();
@ -489,7 +489,7 @@ class Table
/** /**
* Renders table cell with padding. * Renders table cell with padding.
*/ */
private function renderCell(array $row, int $column, string $cellFormat) private function renderCell(array $row, int $column, string $cellFormat): string
{ {
$cell = isset($row[$column]) ? $row[$column] : ''; $cell = isset($row[$column]) ? $row[$column] : '';
$width = $this->effectiveColumnWidths[$column]; $width = $this->effectiveColumnWidths[$column];
@ -534,7 +534,7 @@ class Table
$this->numberOfColumns = max($columns); $this->numberOfColumns = max($columns);
} }
private function buildTableRows(array $rows) private function buildTableRows(array $rows): TableRows
{ {
/** @var WrappableOutputFormatterInterface $formatter */ /** @var WrappableOutputFormatterInterface $formatter */
$formatter = $this->output->getFormatter(); $formatter = $this->output->getFormatter();
@ -568,7 +568,7 @@ class Table
} }
} }
return new TableRows(function () use ($rows, $unmergedRows) { return new TableRows(function () use ($rows, $unmergedRows): \Traversable {
foreach ($rows as $rowKey => $row) { foreach ($rows as $rowKey => $row) {
yield $this->fillCells($row); yield $this->fillCells($row);
@ -772,7 +772,7 @@ class Table
$this->numberOfColumns = null; $this->numberOfColumns = null;
} }
private static function initStyles() private static function initStyles(): array
{ {
$borderless = new TableStyle(); $borderless = new TableStyle();
$borderless $borderless
@ -819,7 +819,7 @@ class Table
]; ];
} }
private function resolveStyle($name) private function resolveStyle($name): TableStyle
{ {
if ($name instanceof TableStyle) { if ($name instanceof TableStyle) {
return $name; return $name;

View File

@ -124,7 +124,7 @@ class TableStyle
* *
* @internal * @internal
*/ */
public function getBorderChars() public function getBorderChars(): array
{ {
return [ return [
$this->horizontalOutsideBorderChar, $this->horizontalOutsideBorderChar,

View File

@ -449,7 +449,7 @@ class SymfonyStyle extends OutputStyle
$this->bufferedOutput->write(substr($message, -4), $newLine, $type); $this->bufferedOutput->write(substr($message, -4), $newLine, $type);
} }
private function createBlock(iterable $messages, string $type = null, string $style = null, string $prefix = ' ', bool $padding = false, bool $escape = false) private function createBlock(iterable $messages, string $type = null, string $style = null, string $prefix = ' ', bool $padding = false, bool $escape = false): array
{ {
$indentLength = 0; $indentLength = 0;
$prefixLength = Helper::strlenWithoutDecoration($this->getFormatter(), $prefix); $prefixLength = Helper::strlenWithoutDecoration($this->getFormatter(), $prefix);

View File

@ -160,6 +160,9 @@ trait TesterTrait
} }
} }
/**
* @return resource
*/
private static function createStream(array $inputs) private static function createStream(array $inputs)
{ {
$stream = fopen('php://memory', 'r+', false); $stream = fopen('php://memory', 'r+', false);

View File

@ -367,7 +367,7 @@ final class Dotenv
} }
} }
private function resolveCommands(string $value) private function resolveCommands(string $value): string
{ {
if (false === strpos($value, '$')) { if (false === strpos($value, '$')) {
return $value; return $value;
@ -414,7 +414,7 @@ final class Dotenv
}, $value); }, $value);
} }
private function resolveVariables(string $value) private function resolveVariables(string $value): string
{ {
if (false === strpos($value, '$')) { if (false === strpos($value, '$')) {
return $value; return $value;

View File

@ -14,7 +14,6 @@ namespace Symfony\Component\ErrorHandler;
use Psr\Log\LoggerInterface; use Psr\Log\LoggerInterface;
use Psr\Log\LogLevel; use Psr\Log\LogLevel;
use Symfony\Component\ErrorHandler\Exception\FatalErrorException; use Symfony\Component\ErrorHandler\Exception\FatalErrorException;
use Symfony\Component\ErrorHandler\Exception\FatalThrowableError;
use Symfony\Component\ErrorHandler\Exception\OutOfMemoryException; use Symfony\Component\ErrorHandler\Exception\OutOfMemoryException;
use Symfony\Component\ErrorHandler\Exception\SilencedErrorContext; use Symfony\Component\ErrorHandler\Exception\SilencedErrorContext;
use Symfony\Component\ErrorHandler\FatalErrorHandler\ClassNotFoundFatalErrorHandler; use Symfony\Component\ErrorHandler\FatalErrorHandler\ClassNotFoundFatalErrorHandler;
@ -266,7 +265,7 @@ class ErrorHandler
if ($flush) { if ($flush) {
foreach ($this->bootstrappingLogger->cleanLogs() as $log) { foreach ($this->bootstrappingLogger->cleanLogs() as $log) {
$type = $log[2]['exception'] instanceof \ErrorException ? $log[2]['exception']->getSeverity() : E_ERROR; $type = ThrowableUtils::getSeverity($log[2]['exception']);
if (!isset($flush[$type])) { if (!isset($flush[$type])) {
$this->bootstrappingLogger->log($log[0], $log[1], $log[2]); $this->bootstrappingLogger->log($log[0], $log[1], $log[2]);
} elseif ($this->loggers[$type][0]) { } elseif ($this->loggers[$type][0]) {
@ -281,7 +280,7 @@ class ErrorHandler
/** /**
* Sets a user exception handler. * Sets a user exception handler.
* *
* @param callable|null $handler A handler that will be called on Exception * @param callable|null $handler A handler that must support \Throwable instances that will be called on Exception
* *
* @return callable|null The previous exception handler * @return callable|null The previous exception handler
*/ */
@ -539,57 +538,64 @@ class ErrorHandler
/** /**
* Handles an exception by logging then forwarding it to another handler. * Handles an exception by logging then forwarding it to another handler.
* *
* @param \Exception|\Throwable $exception An exception to handle * @param array $error An array as returned by error_get_last()
* @param array $error An array as returned by error_get_last()
* *
* @internal * @internal
*/ */
public function handleException($exception, array $error = null) public function handleException(\Throwable $exception, array $error = null)
{ {
if (null === $error) { if (null === $error) {
self::$exitCode = 255; self::$exitCode = 255;
} }
if (!$exception instanceof \Exception) {
$exception = new FatalThrowableError($exception); $type = ThrowableUtils::getSeverity($exception);
}
$type = $exception instanceof FatalErrorException ? $exception->getSeverity() : E_ERROR;
$handlerException = null; $handlerException = null;
if (($this->loggedErrors & $type) || $exception instanceof FatalThrowableError) { if (($this->loggedErrors & $type) || $exception instanceof \Error) {
if (false !== strpos($message = $exception->getMessage(), "class@anonymous\0")) { if (false !== strpos($message = $exception->getMessage(), "class@anonymous\0")) {
$message = $this->parseAnonymousClass($message); $message = $this->parseAnonymousClass($message);
} }
if ($exception instanceof FatalErrorException) { if ($exception instanceof FatalErrorException) {
if ($exception instanceof FatalThrowableError) { $message = 'Fatal '.$message;
$error = [
'type' => $type,
'message' => $message,
'file' => $exception->getFile(),
'line' => $exception->getLine(),
];
} else {
$message = 'Fatal '.$message;
}
} elseif ($exception instanceof \ErrorException) { } elseif ($exception instanceof \ErrorException) {
$message = 'Uncaught '.$message; $message = 'Uncaught '.$message;
} elseif ($exception instanceof \Error) {
$error = [
'type' => $type,
'message' => $message,
'file' => $exception->getFile(),
'line' => $exception->getLine(),
];
$message = 'Uncaught Error: '.$message;
} else { } else {
$message = 'Uncaught Exception: '.$message; $message = 'Uncaught Exception: '.$message;
} }
} }
if ($this->loggedErrors & $type) { if ($this->loggedErrors & $type) {
try { try {
$this->loggers[$type][0]->log($this->loggers[$type][1], $message, ['exception' => $exception]); $this->loggers[$type][0]->log($this->loggers[$type][1], $message, ['exception' => $exception]);
} catch (\Throwable $handlerException) { } catch (\Throwable $handlerException) {
} }
} }
// temporary until fatal error handlers rework
$originalException = $exception;
if (!$exception instanceof \Exception) {
$exception = new FatalErrorException($exception->getMessage(), $exception->getCode(), $type, $exception->getFile(), $exception->getLine(), null, true, $exception->getTrace());
}
if ($exception instanceof FatalErrorException && !$exception instanceof OutOfMemoryException && $error) { if ($exception instanceof FatalErrorException && !$exception instanceof OutOfMemoryException && $error) {
foreach ($this->getFatalErrorHandlers() as $handler) { foreach ($this->getFatalErrorHandlers() as $handler) {
if ($e = $handler->handleError($error, $exception)) { if ($e = $handler->handleError($error, $exception)) {
$exception = $e; $convertedException = $e;
break; break;
} }
} }
} }
$exception = $convertedException ?? $originalException;
$exceptionHandler = $this->exceptionHandler; $exceptionHandler = $this->exceptionHandler;
if ((!\is_array($exceptionHandler) || !$exceptionHandler[0] instanceof self || 'sendPhpResponse' !== $exceptionHandler[1]) && !\in_array(\PHP_SAPI, ['cli', 'phpdbg'], true)) { if ((!\is_array($exceptionHandler) || !$exceptionHandler[0] instanceof self || 'sendPhpResponse' !== $exceptionHandler[1]) && !\in_array(\PHP_SAPI, ['cli', 'phpdbg'], true)) {
$this->exceptionHandler = [$this, 'sendPhpResponse']; $this->exceptionHandler = [$this, 'sendPhpResponse'];

View File

@ -11,6 +11,8 @@
namespace Symfony\Component\ErrorHandler\Exception; namespace Symfony\Component\ErrorHandler\Exception;
use Symfony\Component\ErrorHandler\ThrowableUtils;
/** /**
* Fatal Throwable Error. * Fatal Throwable Error.
* *
@ -24,18 +26,10 @@ class FatalThrowableError extends FatalErrorException
{ {
$this->originalClassName = \get_class($e); $this->originalClassName = \get_class($e);
if ($e instanceof \ParseError) {
$severity = E_PARSE;
} elseif ($e instanceof \TypeError) {
$severity = E_RECOVERABLE_ERROR;
} else {
$severity = E_ERROR;
}
\ErrorException::__construct( \ErrorException::__construct(
$e->getMessage(), $e->getMessage(),
$e->getCode(), $e->getCode(),
$severity, ThrowableUtils::getSeverity($e),
$e->getFile(), $e->getFile(),
$e->getLine(), $e->getLine(),
$e->getPrevious() $e->getPrevious()

View File

@ -118,7 +118,7 @@ class DebugClassLoaderTest extends TestCase
/** /**
* @dataProvider provideDeprecatedSuper * @dataProvider provideDeprecatedSuper
*/ */
public function testDeprecatedSuper($class, $super, $type) public function testDeprecatedSuper(string $class, string $super, string $type)
{ {
set_error_handler(function () { return false; }); set_error_handler(function () { return false; });
$e = error_reporting(0); $e = error_reporting(0);
@ -140,7 +140,7 @@ class DebugClassLoaderTest extends TestCase
$this->assertSame($xError, $lastError); $this->assertSame($xError, $lastError);
} }
public function provideDeprecatedSuper() public function provideDeprecatedSuper(): array
{ {
return [ return [
['DeprecatedInterfaceClass', 'DeprecatedInterface', 'implements'], ['DeprecatedInterfaceClass', 'DeprecatedInterface', 'implements'],

View File

@ -382,18 +382,19 @@ class ErrorHandlerTest extends TestCase
restore_error_handler(); restore_error_handler();
} }
public function testHandleException() /**
* @dataProvider handleExceptionProvider
*/
public function testHandleException(string $expectedMessage, \Throwable $exception)
{ {
try { try {
$logger = $this->getMockBuilder('Psr\Log\LoggerInterface')->getMock(); $logger = $this->getMockBuilder('Psr\Log\LoggerInterface')->getMock();
$handler = ErrorHandler::register(); $handler = ErrorHandler::register();
$exception = new \Exception('foo'); $logArgCheck = function ($level, $message, $context) use ($expectedMessage, $exception) {
$this->assertSame($expectedMessage, $message);
$logArgCheck = function ($level, $message, $context) {
$this->assertSame('Uncaught Exception: foo', $message);
$this->assertArrayHasKey('exception', $context); $this->assertArrayHasKey('exception', $context);
$this->assertInstanceOf(\Exception::class, $context['exception']); $this->assertInstanceOf(\get_class($exception), $context['exception']);
}; };
$logger $logger
@ -407,7 +408,7 @@ class ErrorHandlerTest extends TestCase
try { try {
$handler->handleException($exception); $handler->handleException($exception);
$this->fail('Exception expected'); $this->fail('Exception expected');
} catch (\Exception $e) { } catch (\Throwable $e) {
$this->assertSame($exception, $e); $this->assertSame($exception, $e);
} }
@ -422,6 +423,15 @@ class ErrorHandlerTest extends TestCase
} }
} }
public function handleExceptionProvider(): array
{
return [
['Uncaught Exception: foo', new \Exception('foo')],
['Uncaught Error: bar', new \Error('bar')],
['Uncaught ccc', new \ErrorException('ccc')],
];
}
public function testBootstrappingLogger() public function testBootstrappingLogger()
{ {
$bootLogger = new BufferingLogger(); $bootLogger = new BufferingLogger();
@ -572,7 +582,7 @@ class ErrorHandlerTest extends TestCase
/** /**
* @dataProvider errorHandlerWhenLoggingProvider * @dataProvider errorHandlerWhenLoggingProvider
*/ */
public function testErrorHandlerWhenLogging($previousHandlerWasDefined, $loggerSetsAnotherHandler, $nextHandlerIsDefined) public function testErrorHandlerWhenLogging(bool $previousHandlerWasDefined, bool $loggerSetsAnotherHandler, bool $nextHandlerIsDefined)
{ {
try { try {
if ($previousHandlerWasDefined) { if ($previousHandlerWasDefined) {
@ -612,7 +622,7 @@ class ErrorHandlerTest extends TestCase
} }
} }
public function errorHandlerWhenLoggingProvider() public function errorHandlerWhenLoggingProvider(): iterable
{ {
foreach ([false, true] as $previousHandlerWasDefined) { foreach ([false, true] as $previousHandlerWasDefined) {
foreach ([false, true] as $loggerSetsAnotherHandler) { foreach ([false, true] as $loggerSetsAnotherHandler) {

View File

@ -41,7 +41,7 @@ class ClassNotFoundFatalErrorHandlerTest extends TestCase
/** /**
* @dataProvider provideClassNotFoundData * @dataProvider provideClassNotFoundData
*/ */
public function testHandleClassNotFound($error, $translatedMessage, $autoloader = null) public function testHandleClassNotFound(array $error, string $translatedMessage, callable $autoloader = null)
{ {
if ($autoloader) { if ($autoloader) {
// Unregister all autoloaders to ensure the custom provided // Unregister all autoloaders to ensure the custom provided
@ -67,7 +67,7 @@ class ClassNotFoundFatalErrorHandlerTest extends TestCase
$this->assertSame($error['line'], $exception->getLine()); $this->assertSame($error['line'], $exception->getLine());
} }
public function provideClassNotFoundData() public function provideClassNotFoundData(): array
{ {
$autoloader = new ComposerClassLoader(); $autoloader = new ComposerClassLoader();
$autoloader->add('Symfony\Component\ErrorHandler\Exception\\', realpath(__DIR__.'/../../Exception')); $autoloader->add('Symfony\Component\ErrorHandler\Exception\\', realpath(__DIR__.'/../../Exception'));

View File

@ -20,7 +20,7 @@ class UndefinedFunctionFatalErrorHandlerTest extends TestCase
/** /**
* @dataProvider provideUndefinedFunctionData * @dataProvider provideUndefinedFunctionData
*/ */
public function testUndefinedFunction($error, $translatedMessage) public function testUndefinedFunction(array $error, string $translatedMessage)
{ {
$handler = new UndefinedFunctionFatalErrorHandler(); $handler = new UndefinedFunctionFatalErrorHandler();
$exception = $handler->handleError($error, new FatalErrorException('', 0, $error['type'], $error['file'], $error['line'])); $exception = $handler->handleError($error, new FatalErrorException('', 0, $error['type'], $error['file'], $error['line']));
@ -33,7 +33,7 @@ class UndefinedFunctionFatalErrorHandlerTest extends TestCase
$this->assertSame($error['line'], $exception->getLine()); $this->assertSame($error['line'], $exception->getLine());
} }
public function provideUndefinedFunctionData() public function provideUndefinedFunctionData(): array
{ {
return [ return [
[ [

View File

@ -20,7 +20,7 @@ class UndefinedMethodFatalErrorHandlerTest extends TestCase
/** /**
* @dataProvider provideUndefinedMethodData * @dataProvider provideUndefinedMethodData
*/ */
public function testUndefinedMethod($error, $translatedMessage) public function testUndefinedMethod(array $error, string $translatedMessage)
{ {
$handler = new UndefinedMethodFatalErrorHandler(); $handler = new UndefinedMethodFatalErrorHandler();
$exception = $handler->handleError($error, new FatalErrorException('', 0, $error['type'], $error['file'], $error['line'])); $exception = $handler->handleError($error, new FatalErrorException('', 0, $error['type'], $error['file'], $error['line']));
@ -32,7 +32,7 @@ class UndefinedMethodFatalErrorHandlerTest extends TestCase
$this->assertSame($error['line'], $exception->getLine()); $this->assertSame($error['line'], $exception->getLine());
} }
public function provideUndefinedMethodData() public function provideUndefinedMethodData(): array
{ {
return [ return [
[ [

View File

@ -0,0 +1,35 @@
<?php
/*
* This file is part of the Symfony package.
*
* (c) Fabien Potencier <fabien@symfony.com>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace Symfony\Component\ErrorHandler;
/**
* @internal
*/
class ThrowableUtils
{
public static function getSeverity(\Throwable $throwable): int
{
if ($throwable instanceof \ErrorException) {
return $throwable->getSeverity();
}
if ($throwable instanceof \ParseError) {
return E_PARSE;
}
if ($throwable instanceof \TypeError) {
return E_RECOVERABLE_ERROR;
}
return E_ERROR;
}
}

View File

@ -292,7 +292,7 @@ class FlattenException
return $this; return $this;
} }
private function flattenArgs(array $args, int $level = 0, int &$count = 0) private function flattenArgs(array $args, int $level = 0, int &$count = 0): array
{ {
$result = []; $result = [];
foreach ($args as $key => $value) { foreach ($args as $key => $value) {
@ -328,7 +328,7 @@ class FlattenException
return $result; return $result;
} }
private function getClassNameFromIncomplete(\__PHP_Incomplete_Class $value) private function getClassNameFromIncomplete(\__PHP_Incomplete_Class $value): string
{ {
$array = new \ArrayObject($value); $array = new \ArrayObject($value);

View File

@ -26,7 +26,7 @@ class HtmlErrorRendererTest extends TestCase
$this->assertStringMatchesFormat($expected, $errorRenderer->render($exception)); $this->assertStringMatchesFormat($expected, $errorRenderer->render($exception));
} }
public function getRenderData() public function getRenderData(): iterable
{ {
$expectedDebug = <<<HTML $expectedDebug = <<<HTML
<!-- Foo (500 Internal Server Error) --> <!-- Foo (500 Internal Server Error) -->

View File

@ -26,7 +26,7 @@ class JsonErrorRendererTest extends TestCase
$this->assertStringMatchesFormat($expected, $errorRenderer->render($exception)); $this->assertStringMatchesFormat($expected, $errorRenderer->render($exception));
} }
public function getRenderData() public function getRenderData(): iterable
{ {
$expectedDebug = <<<JSON $expectedDebug = <<<JSON
{ {

View File

@ -26,7 +26,7 @@ class TxtErrorRendererTest extends TestCase
$this->assertStringMatchesFormat($expected, $errorRenderer->render($exception)); $this->assertStringMatchesFormat($expected, $errorRenderer->render($exception));
} }
public function getRenderData() public function getRenderData(): iterable
{ {
$expectedDebug = <<<TXT $expectedDebug = <<<TXT
[title] Internal Server Error [title] Internal Server Error

View File

@ -26,7 +26,7 @@ class XmlErrorRendererTest extends TestCase
$this->assertStringMatchesFormat($expected, $errorRenderer->render($exception)); $this->assertStringMatchesFormat($expected, $errorRenderer->render($exception));
} }
public function getRenderData() public function getRenderData(): iterable
{ {
$expectedDebug = <<<XML $expectedDebug = <<<XML
<?xml version="1.0" encoding="UTF-8" ?> <?xml version="1.0" encoding="UTF-8" ?>

View File

@ -227,7 +227,7 @@ class FlattenExceptionTest extends TestCase
); );
} }
public function flattenDataProvider() public function flattenDataProvider(): array
{ {
return [ return [
[new \Exception('test', 123), 'Exception'], [new \Exception('test', 123), 'Exception'],
@ -381,7 +381,7 @@ class FlattenExceptionTest extends TestCase
$this->assertSame($exception->__toString(), $flattened->getAsString()); $this->assertSame($exception->__toString(), $flattened->getAsString());
} }
private function createException($foo) private function createException($foo): \Exception
{ {
return new \Exception(); return new \Exception();
} }

View File

@ -31,8 +31,6 @@ class LanguageTypeTest extends BaseTypeTest
->createView()->vars['choices']; ->createView()->vars['choices'];
$this->assertContainsEquals(new ChoiceView('en', 'en', 'English'), $choices); $this->assertContainsEquals(new ChoiceView('en', 'en', 'English'), $choices);
$this->assertContainsEquals(new ChoiceView('en_GB', 'en_GB', 'British English'), $choices);
$this->assertContainsEquals(new ChoiceView('en_US', 'en_US', 'American English'), $choices);
$this->assertContainsEquals(new ChoiceView('fr', 'fr', 'French'), $choices); $this->assertContainsEquals(new ChoiceView('fr', 'fr', 'French'), $choices);
$this->assertContainsEquals(new ChoiceView('my', 'my', 'Burmese'), $choices); $this->assertContainsEquals(new ChoiceView('my', 'my', 'Burmese'), $choices);
} }
@ -50,7 +48,6 @@ class LanguageTypeTest extends BaseTypeTest
// Don't check objects for identity // Don't check objects for identity
$this->assertContainsEquals(new ChoiceView('en', 'en', 'англійська'), $choices); $this->assertContainsEquals(new ChoiceView('en', 'en', 'англійська'), $choices);
$this->assertContainsEquals(new ChoiceView('en_US', 'en_US', 'англійська (США)'), $choices);
$this->assertContainsEquals(new ChoiceView('fr', 'fr', 'французька'), $choices); $this->assertContainsEquals(new ChoiceView('fr', 'fr', 'французька'), $choices);
$this->assertContainsEquals(new ChoiceView('my', 'my', 'бірманська'), $choices); $this->assertContainsEquals(new ChoiceView('my', 'my', 'бірманська'), $choices);
} }

View File

@ -18,6 +18,9 @@ namespace Symfony\Component\HttpFoundation;
*/ */
class HeaderBag implements \IteratorAggregate, \Countable class HeaderBag implements \IteratorAggregate, \Countable
{ {
protected const UPPER = '_ABCDEFGHIJKLMNOPQRSTUVWXYZ';
protected const LOWER = '-abcdefghijklmnopqrstuvwxyz';
protected $headers = []; protected $headers = [];
protected $cacheControl = []; protected $cacheControl = [];
@ -62,9 +65,7 @@ class HeaderBag implements \IteratorAggregate, \Countable
public function all(string $key = null) public function all(string $key = null)
{ {
if (null !== $key) { if (null !== $key) {
$key = str_replace('_', '-', strtolower($key)); return $this->headers[strtr($key, self::UPPER, self::LOWER)] ?? [];
return $this->headers[$key] ?? [];
} }
return $this->headers; return $this->headers;
@ -127,7 +128,7 @@ class HeaderBag implements \IteratorAggregate, \Countable
*/ */
public function set(string $key, $values, bool $replace = true) public function set(string $key, $values, bool $replace = true)
{ {
$key = str_replace('_', '-', strtolower($key)); $key = strtr($key, self::UPPER, self::LOWER);
if (\is_array($values)) { if (\is_array($values)) {
$values = array_values($values); $values = array_values($values);
@ -157,7 +158,7 @@ class HeaderBag implements \IteratorAggregate, \Countable
*/ */
public function has(string $key) public function has(string $key)
{ {
return \array_key_exists(str_replace('_', '-', strtolower($key)), $this->all()); return \array_key_exists(strtr($key, self::UPPER, self::LOWER), $this->all());
} }
/** /**
@ -175,7 +176,7 @@ class HeaderBag implements \IteratorAggregate, \Countable
*/ */
public function remove(string $key) public function remove(string $key)
{ {
$key = str_replace('_', '-', strtolower($key)); $key = strtr($key, self::UPPER, self::LOWER);
unset($this->headers[$key]); unset($this->headers[$key]);

View File

@ -539,7 +539,7 @@ class Request
foreach ($this->headers->all() as $key => $value) { foreach ($this->headers->all() as $key => $value) {
$key = strtoupper(str_replace('-', '_', $key)); $key = strtoupper(str_replace('-', '_', $key));
if (\in_array($key, ['CONTENT_TYPE', 'CONTENT_LENGTH'])) { if (\in_array($key, ['CONTENT_TYPE', 'CONTENT_LENGTH', 'CONTENT_MD5'], true)) {
$_SERVER[$key] = implode(', ', $value); $_SERVER[$key] = implode(', ', $value);
} else { } else {
$_SERVER['HTTP_'.$key] = implode(', ', $value); $_SERVER['HTTP_'.$key] = implode(', ', $value);
@ -565,14 +565,22 @@ class Request
* *
* You should only list the reverse proxies that you manage directly. * You should only list the reverse proxies that you manage directly.
* *
* @param array $proxies A list of trusted proxies * @param array $proxies A list of trusted proxies, the string 'REMOTE_ADDR' will be replaced with $_SERVER['REMOTE_ADDR']
* @param int $trustedHeaderSet A bit field of Request::HEADER_*, to set which headers to trust from your proxies * @param int $trustedHeaderSet A bit field of Request::HEADER_*, to set which headers to trust from your proxies
* *
* @throws \InvalidArgumentException When $trustedHeaderSet is invalid * @throws \InvalidArgumentException When $trustedHeaderSet is invalid
*/ */
public static function setTrustedProxies(array $proxies, int $trustedHeaderSet) public static function setTrustedProxies(array $proxies, int $trustedHeaderSet)
{ {
self::$trustedProxies = $proxies; self::$trustedProxies = array_reduce($proxies, function ($proxies, $proxy) {
if ('REMOTE_ADDR' !== $proxy) {
$proxies[] = $proxy;
} elseif (isset($_SERVER['REMOTE_ADDR'])) {
$proxies[] = $_SERVER['REMOTE_ADDR'];
}
return $proxies;
}, []);
self::$trustedHeaderSet = $trustedHeaderSet; self::$trustedHeaderSet = $trustedHeaderSet;
} }

View File

@ -51,7 +51,7 @@ class ResponseHeaderBag extends HeaderBag
{ {
$headers = []; $headers = [];
foreach ($this->all() as $name => $value) { foreach ($this->all() as $name => $value) {
$headers[isset($this->headerNames[$name]) ? $this->headerNames[$name] : $name] = $value; $headers[$this->headerNames[$name] ?? $name] = $value;
} }
return $headers; return $headers;
@ -93,7 +93,7 @@ class ResponseHeaderBag extends HeaderBag
$headers = parent::all(); $headers = parent::all();
if (null !== $key) { if (null !== $key) {
$key = str_replace('_', '-', strtolower($key)); $key = strtr($key, self::UPPER, self::LOWER);
return 'set-cookie' !== $key ? $headers[$key] ?? [] : array_map('strval', $this->getCookies()); return 'set-cookie' !== $key ? $headers[$key] ?? [] : array_map('strval', $this->getCookies());
} }
@ -110,7 +110,7 @@ class ResponseHeaderBag extends HeaderBag
*/ */
public function set(string $key, $values, bool $replace = true) public function set(string $key, $values, bool $replace = true)
{ {
$uniqueKey = str_replace('_', '-', strtolower($key)); $uniqueKey = strtr($key, self::UPPER, self::LOWER);
if ('set-cookie' === $uniqueKey) { if ('set-cookie' === $uniqueKey) {
if ($replace) { if ($replace) {
@ -141,7 +141,7 @@ class ResponseHeaderBag extends HeaderBag
*/ */
public function remove(string $key) public function remove(string $key)
{ {
$uniqueKey = str_replace('_', '-', strtolower($key)); $uniqueKey = strtr($key, self::UPPER, self::LOWER);
unset($this->headerNames[$uniqueKey]); unset($this->headerNames[$uniqueKey]);
if ('set-cookie' === $uniqueKey) { if ('set-cookie' === $uniqueKey) {

View File

@ -28,13 +28,10 @@ class ServerBag extends ParameterBag
public function getHeaders() public function getHeaders()
{ {
$headers = []; $headers = [];
$contentHeaders = ['CONTENT_LENGTH' => true, 'CONTENT_MD5' => true, 'CONTENT_TYPE' => true];
foreach ($this->parameters as $key => $value) { foreach ($this->parameters as $key => $value) {
if (0 === strpos($key, 'HTTP_')) { if (0 === strpos($key, 'HTTP_')) {
$headers[substr($key, 5)] = $value; $headers[substr($key, 5)] = $value;
} } elseif (\in_array($key, ['CONTENT_TYPE', 'CONTENT_LENGTH', 'CONTENT_MD5'], true)) {
// CONTENT_* are not prefixed with HTTP_
elseif (isset($contentHeaders[$key])) {
$headers[$key] = $value; $headers[$key] = $value;
} }
} }

View File

@ -2307,6 +2307,26 @@ class RequestTest extends TestCase
$this->assertSame(80, $request->getPort()); $this->assertSame(80, $request->getPort());
} }
/**
* @dataProvider trustedProxiesRemoteAddr
*/
public function testTrustedProxiesRemoteAddr($serverRemoteAddr, $trustedProxies, $result)
{
$_SERVER['REMOTE_ADDR'] = $serverRemoteAddr;
Request::setTrustedProxies($trustedProxies, Request::HEADER_X_FORWARDED_ALL);
$this->assertSame($result, Request::getTrustedProxies());
}
public function trustedProxiesRemoteAddr()
{
return [
['1.1.1.1', ['REMOTE_ADDR'], ['1.1.1.1']],
['1.1.1.1', ['REMOTE_ADDR', '2.2.2.2'], ['1.1.1.1', '2.2.2.2']],
[null, ['REMOTE_ADDR'], []],
[null, ['REMOTE_ADDR', '2.2.2.2'], ['2.2.2.2']],
];
}
} }
class RequestContentProxy extends Request class RequestContentProxy extends Request

View File

@ -40,6 +40,7 @@ CHANGELOG
so you likely do not use those in any app based on the SF Standard or Flex edition. so you likely do not use those in any app based on the SF Standard or Flex edition.
* Marked all dispatched event classes as `@final` * Marked all dispatched event classes as `@final`
* Added `ErrorController` to enable the preview and error rendering mechanism * Added `ErrorController` to enable the preview and error rendering mechanism
* Getting the container from a non-booted kernel is deprecated.
4.3.0 4.3.0
----- -----

View File

@ -16,6 +16,7 @@ use Symfony\Component\Console\ConsoleEvents;
use Symfony\Component\Console\Event\ConsoleEvent; use Symfony\Component\Console\Event\ConsoleEvent;
use Symfony\Component\Console\Output\ConsoleOutputInterface; use Symfony\Component\Console\Output\ConsoleOutputInterface;
use Symfony\Component\ErrorHandler\ErrorHandler; use Symfony\Component\ErrorHandler\ErrorHandler;
use Symfony\Component\ErrorHandler\Exception\FatalThrowableError;
use Symfony\Component\EventDispatcher\EventSubscriberInterface; use Symfony\Component\EventDispatcher\EventSubscriberInterface;
use Symfony\Component\HttpKernel\Debug\FileLinkFormatter; use Symfony\Component\HttpKernel\Debug\FileLinkFormatter;
use Symfony\Component\HttpKernel\Event\KernelEvent; use Symfony\Component\HttpKernel\Event\KernelEvent;
@ -41,7 +42,7 @@ class DebugHandlersListener implements EventSubscriberInterface
private $hasTerminatedWithException; private $hasTerminatedWithException;
/** /**
* @param callable|null $exceptionHandler A handler that will be called on Exception * @param callable|null $exceptionHandler A handler that must support \Throwable instances that will be called on Exception
* @param array|int $levels An array map of E_* to LogLevel::* or an integer bit field of E_* constants * @param array|int $levels An array map of E_* to LogLevel::* or an integer bit field of E_* constants
* @param int|null $throwAt Thrown errors in a bit field of E_* constants, or null to keep the current value * @param int|null $throwAt Thrown errors in a bit field of E_* constants, or null to keep the current value
* @param bool $scream Enables/disables screaming mode, where even silenced errors are logged * @param bool $scream Enables/disables screaming mode, where even silenced errors are logged
@ -105,10 +106,15 @@ class DebugHandlersListener implements EventSubscriberInterface
if (method_exists($kernel = $event->getKernel(), 'terminateWithException')) { if (method_exists($kernel = $event->getKernel(), 'terminateWithException')) {
$request = $event->getRequest(); $request = $event->getRequest();
$hasRun = &$this->hasTerminatedWithException; $hasRun = &$this->hasTerminatedWithException;
$this->exceptionHandler = static function (\Exception $e) use ($kernel, $request, &$hasRun) { $this->exceptionHandler = static function (\Throwable $e) use ($kernel, $request, &$hasRun) {
if ($hasRun) { if ($hasRun) {
throw $e; throw $e;
} }
if (!$e instanceof \Exception) {
$e = new FatalThrowableError($e);
}
$hasRun = true; $hasRun = true;
$kernel->terminateWithException($e, $request); $kernel->terminateWithException($e, $request);
}; };

View File

@ -300,6 +300,10 @@ abstract class Kernel implements KernelInterface, RebootableInterface, Terminabl
*/ */
public function getContainer() public function getContainer()
{ {
if (!$this->booted) {
@trigger_error('Getting the container from a non-booted kernel is deprecated since Symfony 4.4.', E_USER_DEPRECATED);
}
return $this->container; return $this->container;
} }

View File

@ -107,7 +107,7 @@ interface KernelInterface extends HttpKernelInterface
/** /**
* Gets the current container. * Gets the current container.
* *
* @return ContainerInterface|null A ContainerInterface instance or null when the Kernel is shutdown * @return ContainerInterface
*/ */
public function getContainer(); public function getContainer();

View File

@ -45,6 +45,17 @@ class KernelTest extends TestCase
$this->assertEquals($debug, $kernel->isDebug()); $this->assertEquals($debug, $kernel->isDebug());
$this->assertFalse($kernel->isBooted()); $this->assertFalse($kernel->isBooted());
$this->assertLessThanOrEqual(microtime(true), $kernel->getStartTime()); $this->assertLessThanOrEqual(microtime(true), $kernel->getStartTime());
}
/**
* @group legacy
* @expectedDeprecation Getting the container from a non-booted kernel is deprecated since Symfony 4.4.
*/
public function testGetContainerForANonBootedKernel()
{
$kernel = new KernelForTest('test_env', true);
$this->assertFalse($kernel->isBooted());
$this->assertNull($kernel->getContainer()); $this->assertNull($kernel->getContainer());
} }
@ -60,7 +71,6 @@ class KernelTest extends TestCase
$this->assertEquals($debug, $clone->isDebug()); $this->assertEquals($debug, $clone->isDebug());
$this->assertFalse($clone->isBooted()); $this->assertFalse($clone->isBooted());
$this->assertLessThanOrEqual(microtime(true), $clone->getStartTime()); $this->assertLessThanOrEqual(microtime(true), $clone->getStartTime());
$this->assertNull($clone->getContainer());
} }
public function testClassNameValidityGetter() public function testClassNameValidityGetter()
@ -397,6 +407,18 @@ EOF;
$kernel->terminate(Request::create('/'), new Response()); $kernel->terminate(Request::create('/'), new Response());
} }
/**
* @group legacy
* @expectedDeprecation Getting the container from a non-booted kernel is deprecated since Symfony 4.4.
*/
public function testDeprecatedNullKernel()
{
$kernel = $this->getKernel();
$kernel->shutdown();
$this->assertNull($kernel->getContainer());
}
public function testTerminateDelegatesTerminationOnlyForTerminableInterface() public function testTerminateDelegatesTerminationOnlyForTerminableInterface()
{ {
// does not implement TerminableInterface // does not implement TerminableInterface

View File

@ -11,6 +11,7 @@ CHANGELOG
* excluded language code `root` * excluded language code `root`
* added to both `Countries` and `Languages` the methods `getAlpha3Codes`, `getAlpha3Code`, `getAlpha2Code`, `alpha3CodeExists`, `getAlpha3Name` and `getAlpha3Names` * added to both `Countries` and `Languages` the methods `getAlpha3Codes`, `getAlpha3Code`, `getAlpha2Code`, `alpha3CodeExists`, `getAlpha3Name` and `getAlpha3Names`
* excluded localized languages (e.g. `en_US`) from `Languages` in `getLanguageCodes()` and `getNames()`
4.3.0 4.3.0
----- -----

View File

@ -25,18 +25,14 @@ trait FallbackTrait
private $generatingFallback = false; private $generatingFallback = false;
/** /**
* @return array|null
*
* @see AbstractDataGenerator::generateDataForLocale() * @see AbstractDataGenerator::generateDataForLocale()
*/ */
abstract protected function generateDataForLocale(BundleEntryReaderInterface $reader, string $tempDir, string $displayLocale); abstract protected function generateDataForLocale(BundleEntryReaderInterface $reader, string $tempDir, string $displayLocale): ?array;
/** /**
* @return array|null
*
* @see AbstractDataGenerator::generateDataForRoot() * @see AbstractDataGenerator::generateDataForRoot()
*/ */
abstract protected function generateDataForRoot(BundleEntryReaderInterface $reader, string $tempDir); abstract protected function generateDataForRoot(BundleEntryReaderInterface $reader, string $tempDir): ?array;
private function generateFallbackData(BundleEntryReaderInterface $reader, string $tempDir, string $displayLocale): array private function generateFallbackData(BundleEntryReaderInterface $reader, string $tempDir, string $displayLocale): array
{ {

View File

@ -132,13 +132,22 @@ class LanguageDataGenerator extends AbstractDataGenerator
// isset() on \ResourceBundle returns true even if the value is null // isset() on \ResourceBundle returns true even if the value is null
if (isset($localeBundle['Languages']) && null !== $localeBundle['Languages']) { if (isset($localeBundle['Languages']) && null !== $localeBundle['Languages']) {
$names = [];
$localizedNames = [];
foreach (self::generateLanguageNames($localeBundle) as $language => $name) {
if (false === strpos($language, '_')) {
$this->languageCodes[] = $language;
$names[$language] = $name;
} else {
$localizedNames[$language] = $name;
}
}
$data = [ $data = [
'Version' => $localeBundle['Version'], 'Version' => $localeBundle['Version'],
'Names' => self::generateLanguageNames($localeBundle), 'Names' => $names,
'LocalizedNames' => $localizedNames,
]; ];
$this->languageCodes = array_merge($this->languageCodes, array_keys($data['Names']));
return $data; return $data;
} }
@ -150,6 +159,7 @@ class LanguageDataGenerator extends AbstractDataGenerator
*/ */
protected function generateDataForRoot(BundleEntryReaderInterface $reader, string $tempDir): ?array protected function generateDataForRoot(BundleEntryReaderInterface $reader, string $tempDir): ?array
{ {
return null;
} }
/** /**

View File

@ -135,6 +135,7 @@ class LocaleDataGenerator extends AbstractDataGenerator
*/ */
protected function generateDataForRoot(BundleEntryReaderInterface $reader, string $tempDir): ?array protected function generateDataForRoot(BundleEntryReaderInterface $reader, string $tempDir): ?array
{ {
return null;
} }
/** /**

View File

@ -133,6 +133,7 @@ class RegionDataGenerator extends AbstractDataGenerator
*/ */
protected function generateDataForRoot(BundleEntryReaderInterface $reader, string $tempDir): ?array protected function generateDataForRoot(BundleEntryReaderInterface $reader, string $tempDir): ?array
{ {
return null;
} }
/** /**

View File

@ -86,6 +86,7 @@ class ScriptDataGenerator extends AbstractDataGenerator
*/ */
protected function generateDataForRoot(BundleEntryReaderInterface $reader, string $tempDir): ?array protected function generateDataForRoot(BundleEntryReaderInterface $reader, string $tempDir): ?array
{ {
return null;
} }
/** /**

View File

@ -52,11 +52,25 @@ final class Languages extends ResourceBundle
/** /**
* Gets the language name from its alpha2 code. * Gets the language name from its alpha2 code.
* *
* A full locale may be passed to obtain a more localized language name, e.g. "American English" for "en_US".
*
* @throws MissingResourceException if the language code does not exist * @throws MissingResourceException if the language code does not exist
*/ */
public static function getName(string $language, string $displayLocale = null): string public static function getName(string $language, string $displayLocale = null): string
{ {
return self::readEntry(['Names', $language], $displayLocale); try {
return self::readEntry(['Names', $language], $displayLocale);
} catch (MissingResourceException $e) {
try {
return self::readEntry(['LocalizedNames', $language], $displayLocale);
} catch (MissingResourceException $e) {
if (false !== $i = strrpos($language, '_')) {
return self::getName(substr($language, 0, $i), $displayLocale);
}
throw $e;
}
}
} }
/** /**

View File

@ -17,7 +17,6 @@
"an": "Aragonees", "an": "Aragonees",
"anp": "Angika", "anp": "Angika",
"ar": "Arabies", "ar": "Arabies",
"ar_001": "Moderne Standaardarabies",
"arc": "Aramees", "arc": "Aramees",
"arn": "Mapuche", "arn": "Mapuche",
"arp": "Arapaho", "arp": "Arapaho",
@ -71,7 +70,6 @@
"dar": "Dakota", "dar": "Dakota",
"dav": "Taita", "dav": "Taita",
"de": "Duits", "de": "Duits",
"de_CH": "Switserse hoog-Duits",
"dgr": "Dogrib", "dgr": "Dogrib",
"dje": "Zarma", "dje": "Zarma",
"dsb": "Benedesorbies", "dsb": "Benedesorbies",
@ -87,8 +85,6 @@
"eka": "Ekajuk", "eka": "Ekajuk",
"el": "Grieks", "el": "Grieks",
"en": "Engels", "en": "Engels",
"en_GB": "Engels (VK)",
"en_US": "Engels (VSA)",
"eo": "Esperanto", "eo": "Esperanto",
"es": "Spaans", "es": "Spaans",
"et": "Estnies", "et": "Estnies",
@ -252,14 +248,12 @@
"nb": "Boeknoors", "nb": "Boeknoors",
"nd": "Noord-Ndebele", "nd": "Noord-Ndebele",
"nds": "Lae Duits", "nds": "Lae Duits",
"nds_NL": "Nedersaksies",
"ne": "Nepalees", "ne": "Nepalees",
"new": "Newari", "new": "Newari",
"ng": "Ndonga", "ng": "Ndonga",
"nia": "Nias", "nia": "Nias",
"niu": "Niueaans", "niu": "Niueaans",
"nl": "Nederlands", "nl": "Nederlands",
"nl_BE": "Vlaams",
"nmg": "Kwasio", "nmg": "Kwasio",
"nn": "Nuwe Noors", "nn": "Nuwe Noors",
"nnh": "Ngiemboon", "nnh": "Ngiemboon",
@ -394,10 +388,18 @@
"yue": "Kantonees", "yue": "Kantonees",
"zgh": "Standaard Marokkaanse Tamazight", "zgh": "Standaard Marokkaanse Tamazight",
"zh": "Sjinees", "zh": "Sjinees",
"zh_Hans": "Chinees (Vereenvoudig)",
"zh_Hant": "Chinees (Tradisioneel)",
"zu": "Zoeloe", "zu": "Zoeloe",
"zun": "Zuni", "zun": "Zuni",
"zza": "Zaza" "zza": "Zaza"
},
"LocalizedNames": {
"ar_001": "Moderne Standaardarabies",
"de_CH": "Switserse hoog-Duits",
"en_GB": "Engels (VK)",
"en_US": "Engels (VSA)",
"nds_NL": "Nedersaksies",
"nl_BE": "Vlaams",
"zh_Hans": "Chinees (Vereenvoudig)",
"zh_Hant": "Chinees (Tradisioneel)"
} }
} }

View File

@ -45,5 +45,6 @@
"yo": "Yoruba", "yo": "Yoruba",
"zh": "Kyaena kasa", "zh": "Kyaena kasa",
"zu": "Zulu" "zu": "Zulu"
} },
"LocalizedNames": []
} }

View File

@ -21,7 +21,6 @@
"an": "አራጎንስ", "an": "አራጎንስ",
"anp": "አንጊካ", "anp": "አንጊካ",
"ar": "ዓረብኛ", "ar": "ዓረብኛ",
"ar_001": "ዘመናዊ መደበኛ ዓረብኛ",
"arc": "አራማይክ", "arc": "አራማይክ",
"arn": "ማፑቼ", "arn": "ማፑቼ",
"aro": "አራኦና", "aro": "አራኦና",
@ -107,8 +106,6 @@
"dar": "ዳርግዋ", "dar": "ዳርግዋ",
"dav": "ታይታኛ", "dav": "ታይታኛ",
"de": "ጀርመን", "de": "ጀርመን",
"de_AT": "የኦስትሪያ ጀርመን",
"de_CH": "የስዊዝ ከፍተኛ ጀርመንኛ",
"del": "ዳላዌር", "del": "ዳላዌር",
"dgr": "ዶግሪብ", "dgr": "ዶግሪብ",
"din": "ዲንካ", "din": "ዲንካ",
@ -129,15 +126,8 @@
"eka": "ኤካጁክ", "eka": "ኤካጁክ",
"el": "ግሪክኛ", "el": "ግሪክኛ",
"en": "እንግሊዝኛ", "en": "እንግሊዝኛ",
"en_AU": "የአውስትራሊያ እንግሊዝኛ",
"en_CA": "የካናዳ እንግሊዝኛ",
"en_GB": "የብሪቲሽ እንግሊዝኛ",
"en_US": "የአሜሪካ እንግሊዝኛ",
"eo": "ኤስፐራንቶ", "eo": "ኤስፐራንቶ",
"es": "ስፓንሽኛ", "es": "ስፓንሽኛ",
"es_419": "የላቲን አሜሪካ ስፓኒሽ",
"es_ES": "የአውሮፓ ስፓንሽኛ",
"es_MX": "የሜክሲኮ ስፓንሽኛ",
"esu": "ሴንተራል ዩፒክ", "esu": "ሴንተራል ዩፒክ",
"et": "ኢስቶኒያንኛ", "et": "ኢስቶኒያንኛ",
"eu": "ባስክኛ", "eu": "ባስክኛ",
@ -150,8 +140,6 @@
"fo": "ፋሮኛ", "fo": "ፋሮኛ",
"fon": "ፎን", "fon": "ፎን",
"fr": "ፈረንሳይኛ", "fr": "ፈረንሳይኛ",
"fr_CA": "የካናዳ ፈረንሳይኛ",
"fr_CH": "የስዊዝ ፈረንሳይኛ",
"frc": "ካጁን ፍሬንች", "frc": "ካጁን ፍሬንች",
"frp": "አርፒታን", "frp": "አርፒታን",
"fur": "ፍሩሊያን", "fur": "ፍሩሊያን",
@ -303,7 +291,6 @@
"nb": "የኖርዌይ ቦክማል", "nb": "የኖርዌይ ቦክማል",
"nd": "ሰሜን ንዴብሌ", "nd": "ሰሜን ንዴብሌ",
"nds": "የታችኛው ጀርመን", "nds": "የታችኛው ጀርመን",
"nds_NL": "የታችኛው ሳክሰን",
"ne": "ኔፓሊኛ", "ne": "ኔፓሊኛ",
"new": "ኒዋሪ(ኔፓል)", "new": "ኒዋሪ(ኔፓል)",
"ng": "ንዶንጋ", "ng": "ንዶንጋ",
@ -311,7 +298,6 @@
"niu": "ኒዩአንኛ", "niu": "ኒዩአንኛ",
"njo": "ኦ ናጋ", "njo": "ኦ ናጋ",
"nl": "ደች", "nl": "ደች",
"nl_BE": "ፍሌሚሽ",
"nmg": "ክዋሲዮ", "nmg": "ክዋሲዮ",
"nn": "የኖርዌይ ናይኖርስክ", "nn": "የኖርዌይ ናይኖርስክ",
"nnh": "ኒጊምቡን", "nnh": "ኒጊምቡን",
@ -339,8 +325,6 @@
"prg": "ፐሩሳንኛ", "prg": "ፐሩሳንኛ",
"ps": "ፓሽቶኛ", "ps": "ፓሽቶኛ",
"pt": "ፖርቹጋልኛ", "pt": "ፖርቹጋልኛ",
"pt_BR": "የብራዚል ፖርቹጋልኛ",
"pt_PT": "የአውሮፓ ፖርቹጋልኛ",
"qu": "ኵቿኛ", "qu": "ኵቿኛ",
"quc": "ኪቼ", "quc": "ኪቼ",
"qug": "ቺምቦራዞ ሃይላንድ ኩቹዋ", "qug": "ቺምቦራዞ ሃይላንድ ኩቹዋ",
@ -349,7 +333,6 @@
"rm": "ሮማንሽ", "rm": "ሮማንሽ",
"rn": "ሩንዲኛ", "rn": "ሩንዲኛ",
"ro": "ሮማኒያን", "ro": "ሮማኒያን",
"ro_MD": "ሞልዳቪያንኛ",
"rof": "ሮምቦ", "rof": "ሮምቦ",
"ru": "ራሽያኛ", "ru": "ራሽያኛ",
"rup": "አሮማንያን", "rup": "አሮማንያን",
@ -397,7 +380,6 @@
"suk": "ሱኩማ", "suk": "ሱኩማ",
"sv": "ስዊድንኛ", "sv": "ስዊድንኛ",
"sw": "ስዋሂሊኛ", "sw": "ስዋሂሊኛ",
"sw_CD": "ኮንጎ ስዋሂሊ",
"swb": "ኮሞሪያን", "swb": "ኮሞሪያን",
"syc": "ክላሲክ ኔይራ", "syc": "ክላሲክ ኔይራ",
"syr": "ሲሪያክ", "syr": "ሲሪያክ",
@ -457,10 +439,30 @@
"zbl": "ብሊስይምቦልስ", "zbl": "ብሊስይምቦልስ",
"zgh": "መደበኛ የሞሮኮ ታማዚግት", "zgh": "መደበኛ የሞሮኮ ታማዚግት",
"zh": "ቻይንኛ", "zh": "ቻይንኛ",
"zh_Hans": "ቀለል ያለ ቻይንኛ",
"zh_Hant": "ባህላዊ ቻይንኛ",
"zu": "ዙሉኛ", "zu": "ዙሉኛ",
"zun": "ዙኒ", "zun": "ዙኒ",
"zza": "ዛዛ" "zza": "ዛዛ"
},
"LocalizedNames": {
"ar_001": "ዘመናዊ መደበኛ ዓረብኛ",
"de_AT": "የኦስትሪያ ጀርመን",
"de_CH": "የስዊዝ ከፍተኛ ጀርመንኛ",
"en_AU": "የአውስትራሊያ እንግሊዝኛ",
"en_CA": "የካናዳ እንግሊዝኛ",
"en_GB": "የብሪቲሽ እንግሊዝኛ",
"en_US": "የአሜሪካ እንግሊዝኛ",
"es_419": "የላቲን አሜሪካ ስፓኒሽ",
"es_ES": "የአውሮፓ ስፓንሽኛ",
"es_MX": "የሜክሲኮ ስፓንሽኛ",
"fr_CA": "የካናዳ ፈረንሳይኛ",
"fr_CH": "የስዊዝ ፈረንሳይኛ",
"nds_NL": "የታችኛው ሳክሰን",
"nl_BE": "ፍሌሚሽ",
"pt_BR": "የብራዚል ፖርቹጋልኛ",
"pt_PT": "የአውሮፓ ፖርቹጋልኛ",
"ro_MD": "ሞልዳቪያንኛ",
"sw_CD": "ኮንጎ ስዋሂሊ",
"zh_Hans": "ቀለል ያለ ቻይንኛ",
"zh_Hant": "ባህላዊ ቻይንኛ"
} }
} }

View File

@ -21,7 +21,6 @@
"ang": "الإنجليزية القديمة", "ang": "الإنجليزية القديمة",
"anp": "الأنجيكا", "anp": "الأنجيكا",
"ar": "العربية", "ar": "العربية",
"ar_001": "العربية الرسمية الحديثة",
"arc": "الآرامية", "arc": "الآرامية",
"arn": "المابودونغونية", "arn": "المابودونغونية",
"arp": "الأراباهو", "arp": "الأراباهو",
@ -100,8 +99,6 @@
"dar": "الدارجوا", "dar": "الدارجوا",
"dav": "تيتا", "dav": "تيتا",
"de": "الألمانية", "de": "الألمانية",
"de_AT": "الألمانية النمساوية",
"de_CH": "الألمانية العليا السويسرية",
"del": "الديلوير", "del": "الديلوير",
"den": "السلافية", "den": "السلافية",
"dgr": "الدوجريب", "dgr": "الدوجريب",
@ -124,16 +121,9 @@
"el": "اليونانية", "el": "اليونانية",
"elx": "الإمايت", "elx": "الإمايت",
"en": "الإنجليزية", "en": "الإنجليزية",
"en_AU": "الإنجليزية الأسترالية",
"en_CA": "الإنجليزية الكندية",
"en_GB": "الإنجليزية البريطانية",
"en_US": "الإنجليزية الأمريكية",
"enm": "الإنجليزية الوسطى", "enm": "الإنجليزية الوسطى",
"eo": "الإسبرانتو", "eo": "الإسبرانتو",
"es": "الإسبانية", "es": "الإسبانية",
"es_419": "الإسبانية أمريكا اللاتينية",
"es_ES": "الإسبانية الأوروبية",
"es_MX": "الإسبانية المكسيكية",
"et": "الإستونية", "et": "الإستونية",
"eu": "الباسكية", "eu": "الباسكية",
"ewo": "الإيوندو", "ewo": "الإيوندو",
@ -147,8 +137,6 @@
"fo": "الفاروية", "fo": "الفاروية",
"fon": "الفون", "fon": "الفون",
"fr": "الفرنسية", "fr": "الفرنسية",
"fr_CA": "الفرنسية الكندية",
"fr_CH": "الفرنسية السويسرية",
"frc": "الفرنسية الكاجونية", "frc": "الفرنسية الكاجونية",
"frm": "الفرنسية الوسطى", "frm": "الفرنسية الوسطى",
"fro": "الفرنسية القديمة", "fro": "الفرنسية القديمة",
@ -332,14 +320,12 @@
"nb": "النرويجية بوكمال", "nb": "النرويجية بوكمال",
"nd": "النديبيل الشمالية", "nd": "النديبيل الشمالية",
"nds": "الألمانية السفلى", "nds": "الألمانية السفلى",
"nds_NL": "السكسونية السفلى",
"ne": "النيبالية", "ne": "النيبالية",
"new": "النوارية", "new": "النوارية",
"ng": "الندونجا", "ng": "الندونجا",
"nia": "النياس", "nia": "النياس",
"niu": "النيوي", "niu": "النيوي",
"nl": "الهولندية", "nl": "الهولندية",
"nl_BE": "الفلمنكية",
"nmg": "كواسيو", "nmg": "كواسيو",
"nn": "النرويجية نينورسك", "nn": "النرويجية نينورسك",
"nnh": "لغة النجيمبون", "nnh": "لغة النجيمبون",
@ -380,8 +366,6 @@
"pro": "البروفانسية القديمة", "pro": "البروفانسية القديمة",
"ps": "البشتو", "ps": "البشتو",
"pt": "البرتغالية", "pt": "البرتغالية",
"pt_BR": "البرتغالية البرازيلية",
"pt_PT": "البرتغالية الأوروبية",
"qu": "الكويتشوا", "qu": "الكويتشوا",
"quc": "الكيشية", "quc": "الكيشية",
"raj": "الراجاسثانية", "raj": "الراجاسثانية",
@ -390,7 +374,6 @@
"rm": "الرومانشية", "rm": "الرومانشية",
"rn": "الرندي", "rn": "الرندي",
"ro": "الرومانية", "ro": "الرومانية",
"ro_MD": "المولدوفية",
"rof": "الرومبو", "rof": "الرومبو",
"rom": "الغجرية", "rom": "الغجرية",
"ru": "الروسية", "ru": "الروسية",
@ -448,7 +431,6 @@
"sux": "السومارية", "sux": "السومارية",
"sv": "السويدية", "sv": "السويدية",
"sw": "السواحلية", "sw": "السواحلية",
"sw_CD": "الكونغو السواحلية",
"swb": "القمرية", "swb": "القمرية",
"syc": "سريانية تقليدية", "syc": "سريانية تقليدية",
"syr": "السريانية", "syr": "السريانية",
@ -522,10 +504,30 @@
"zen": "الزيناجا", "zen": "الزيناجا",
"zgh": "التمازيغية المغربية القياسية", "zgh": "التمازيغية المغربية القياسية",
"zh": "الصينية", "zh": "الصينية",
"zh_Hans": "الصينية المبسطة",
"zh_Hant": "الصينية التقليدية",
"zu": "الزولو", "zu": "الزولو",
"zun": "الزونية", "zun": "الزونية",
"zza": "زازا" "zza": "زازا"
},
"LocalizedNames": {
"ar_001": "العربية الرسمية الحديثة",
"de_AT": "الألمانية النمساوية",
"de_CH": "الألمانية العليا السويسرية",
"en_AU": "الإنجليزية الأسترالية",
"en_CA": "الإنجليزية الكندية",
"en_GB": "الإنجليزية البريطانية",
"en_US": "الإنجليزية الأمريكية",
"es_419": "الإسبانية أمريكا اللاتينية",
"es_ES": "الإسبانية الأوروبية",
"es_MX": "الإسبانية المكسيكية",
"fr_CA": "الفرنسية الكندية",
"fr_CH": "الفرنسية السويسرية",
"nds_NL": "السكسونية السفلى",
"nl_BE": "الفلمنكية",
"pt_BR": "البرتغالية البرازيلية",
"pt_PT": "البرتغالية الأوروبية",
"ro_MD": "المولدوفية",
"sw_CD": "الكونغو السواحلية",
"zh_Hans": "الصينية المبسطة",
"zh_Hant": "الصينية التقليدية"
} }
} }

View File

@ -2,5 +2,6 @@
"Version": "2.1.49.36", "Version": "2.1.49.36",
"Names": { "Names": {
"da": "الدنماركية" "da": "الدنماركية"
} },
"LocalizedNames": []
} }

View File

@ -8,7 +8,9 @@
"sh": "الكرواتية الصربية", "sh": "الكرواتية الصربية",
"sma": "سامي الجنوبية", "sma": "سامي الجنوبية",
"sw": "السواحيلية", "sw": "السواحيلية",
"sw_CD": "السواحيلية الكونغولية",
"ti": "التيغرينية" "ti": "التيغرينية"
},
"LocalizedNames": {
"sw_CD": "السواحيلية الكونغولية"
} }
} }

View File

@ -8,8 +8,10 @@
"sh": "الكرواتية الصربية", "sh": "الكرواتية الصربية",
"sma": "سامي الجنوبية", "sma": "سامي الجنوبية",
"sw": "السواحيلية", "sw": "السواحيلية",
"sw_CD": "السواحيلية الكونغولية",
"te": "التيلوجو", "te": "التيلوجو",
"ti": "التيغرينية" "ti": "التيغرينية"
},
"LocalizedNames": {
"sw_CD": "السواحيلية الكونغولية"
} }
} }

View File

@ -16,7 +16,6 @@
"an": "আৰ্গোনিজ", "an": "আৰ্গোনিজ",
"anp": "আঙ্গিকা", "anp": "আঙ্গিকা",
"ar": "আৰবী", "ar": "আৰবী",
"ar_001": "আধুনিক মানক আৰবী",
"arn": "মাপুচে", "arn": "মাপুচে",
"arp": "আৰাপাহো", "arp": "আৰাপাহো",
"as": "অসমীয়া", "as": "অসমীয়া",
@ -68,8 +67,6 @@
"dar": "দাৰ্গৱা", "dar": "দাৰ্গৱা",
"dav": "তেইতা", "dav": "তেইতা",
"de": "জাৰ্মান", "de": "জাৰ্মান",
"de_AT": "অষ্ট্ৰেলিয়ান জাৰ্মান",
"de_CH": "ছুইচ হাই জাৰ্মান",
"dgr": "ডোগ্ৰিব", "dgr": "ডোগ্ৰিব",
"dje": "ঝাৰ্মা", "dje": "ঝাৰ্মা",
"dsb": "ল’ৱাৰ ছোৰ্বিয়ান", "dsb": "ল’ৱাৰ ছোৰ্বিয়ান",
@ -84,15 +81,8 @@
"eka": "একাজুক", "eka": "একাজুক",
"el": "গ্ৰীক", "el": "গ্ৰীক",
"en": "ইংৰাজী", "en": "ইংৰাজী",
"en_AU": "অষ্ট্ৰেলিয়ান ইংৰাজী",
"en_CA": "কানাডিয়ান ইংৰাজী",
"en_GB": "ব্ৰিটিছ ইংৰাজী",
"en_US": "আমেৰিকান ইংৰাজী",
"eo": "এস্পেৰান্তো", "eo": "এস্পেৰান্তো",
"es": "স্পেনিচ", "es": "স্পেনিচ",
"es_419": "লেটিন আমেৰিকান স্পেনিচ",
"es_ES": "ইউৰোপীয়ান স্পেনিচ",
"es_MX": "মেক্সিকান স্পেনিচ",
"et": "এষ্টোনিয়", "et": "এষ্টোনিয়",
"eu": "বাস্ক", "eu": "বাস্ক",
"ewo": "ইওন্দো", "ewo": "ইওন্দো",
@ -104,8 +94,6 @@
"fo": "ফাৰোইজ", "fo": "ফাৰোইজ",
"fon": "ফ’ন", "fon": "ফ’ন",
"fr": "ফ্ৰেন্স", "fr": "ফ্ৰেন্স",
"fr_CA": "কানাডিয়ান ফ্ৰেন্স",
"fr_CH": "ছুইচ ফ্ৰেন্স",
"fur": "ফ্ৰিউলিয়ান", "fur": "ফ্ৰিউলিয়ান",
"fy": "ৱেষ্টাৰ্ণ ফ্ৰিছিয়ান", "fy": "ৱেষ্টাৰ্ণ ফ্ৰিছিয়ান",
"ga": "আইৰিচ", "ga": "আইৰিচ",
@ -251,7 +239,6 @@
"nia": "নিয়াছ", "nia": "নিয়াছ",
"niu": "নিয়ুৱান", "niu": "নিয়ুৱান",
"nl": "ডাচ", "nl": "ডাচ",
"nl_BE": "ফ্লেমিচ",
"nmg": "কোৱাছিঅ’", "nmg": "কোৱাছিঅ’",
"nn": "নৰৱেজিয়ান নায়নোৰ্স্ক", "nn": "নৰৱেজিয়ান নায়নোৰ্স্ক",
"nnh": "নিয়েম্বোন", "nnh": "নিয়েম্বোন",
@ -277,8 +264,6 @@
"prg": "প্ৰুছিয়ান", "prg": "প্ৰুছিয়ান",
"ps": "পুস্ত", "ps": "পুস্ত",
"pt": "পৰ্তুগীজ", "pt": "পৰ্তুগীজ",
"pt_BR": "ব্ৰাজিলিয়ান পৰ্তুগীজ",
"pt_PT": "ইউৰোপীয়ান পৰ্তুগীজ",
"qu": "কুৱেচুৱা", "qu": "কুৱেচুৱা",
"quc": "কিচিয়ে", "quc": "কিচিয়ে",
"rap": "ৰাপানুই", "rap": "ৰাপানুই",
@ -286,7 +271,6 @@
"rm": "ৰোমানচ", "rm": "ৰোমানচ",
"rn": "ৰুন্দি", "rn": "ৰুন্দি",
"ro": "ৰোমানীয়", "ro": "ৰোমানীয়",
"ro_MD": "মোল্ডাভিয়ান",
"rof": "ৰোম্বো", "rof": "ৰোম্বো",
"ru": "ৰাছিয়ান", "ru": "ৰাছিয়ান",
"rup": "আৰোমানীয়", "rup": "আৰোমানীয়",
@ -330,7 +314,6 @@
"suk": "ছুকুমা", "suk": "ছুকুমা",
"sv": "ছুইডিচ", "sv": "ছুইডিচ",
"sw": "স্বাহিলি", "sw": "স্বাহিলি",
"sw_CD": "কঙ্গো স্বাহিলি",
"swb": "কোমোৰিয়ান", "swb": "কোমোৰিয়ান",
"syr": "চিৰিয়াক", "syr": "চিৰিয়াক",
"ta": "তামিল", "ta": "তামিল",
@ -383,10 +366,29 @@
"yue": "কেণ্টোনীজ", "yue": "কেণ্টোনীজ",
"zgh": "ষ্টেণ্ডাৰ্ড মোৰোক্কান তামাজাইট", "zgh": "ষ্টেণ্ডাৰ্ড মোৰোক্কান তামাজাইট",
"zh": "চীনা", "zh": "চীনা",
"zh_Hans": "সৰলীকৃত চীনা",
"zh_Hant": "পৰম্পৰাগত চীনা",
"zu": "ঝুলু", "zu": "ঝুলু",
"zun": "ঝুনি", "zun": "ঝুনি",
"zza": "ঝাঝা" "zza": "ঝাঝা"
},
"LocalizedNames": {
"ar_001": "আধুনিক মানক আৰবী",
"de_AT": "অষ্ট্ৰেলিয়ান জাৰ্মান",
"de_CH": "ছুইচ হাই জাৰ্মান",
"en_AU": "অষ্ট্ৰেলিয়ান ইংৰাজী",
"en_CA": "কানাডিয়ান ইংৰাজী",
"en_GB": "ব্ৰিটিছ ইংৰাজী",
"en_US": "আমেৰিকান ইংৰাজী",
"es_419": "লেটিন আমেৰিকান স্পেনিচ",
"es_ES": "ইউৰোপীয়ান স্পেনিচ",
"es_MX": "মেক্সিকান স্পেনিচ",
"fr_CA": "কানাডিয়ান ফ্ৰেন্স",
"fr_CH": "ছুইচ ফ্ৰেন্স",
"nl_BE": "ফ্লেমিচ",
"pt_BR": "ব্ৰাজিলিয়ান পৰ্তুগীজ",
"pt_PT": "ইউৰোপীয়ান পৰ্তুগীজ",
"ro_MD": "মোল্ডাভিয়ান",
"sw_CD": "কঙ্গো স্বাহিলি",
"zh_Hans": "সৰলীকৃত চীনা",
"zh_Hant": "পৰম্পৰাগত চীনা"
} }
} }

View File

@ -21,7 +21,6 @@
"ang": "qədim ingilis", "ang": "qədim ingilis",
"anp": "angika", "anp": "angika",
"ar": "ərəb", "ar": "ərəb",
"ar_001": "müasir standart ərəb",
"arc": "aramik", "arc": "aramik",
"arn": "mapuçe", "arn": "mapuçe",
"arp": "arapaho", "arp": "arapaho",
@ -33,7 +32,6 @@
"awa": "avadhi", "awa": "avadhi",
"ay": "aymara", "ay": "aymara",
"az": "azərbaycan", "az": "azərbaycan",
"az_Arab": "cənubi azərbaycan",
"ba": "başqırd", "ba": "başqırd",
"bal": "baluc", "bal": "baluc",
"ban": "bali", "ban": "bali",
@ -93,8 +91,6 @@
"dar": "darqva", "dar": "darqva",
"dav": "taita", "dav": "taita",
"de": "alman", "de": "alman",
"de_AT": "Avstriya almancası",
"de_CH": "İsveçrə yüksək almancası",
"del": "delaver", "del": "delaver",
"den": "slavey", "den": "slavey",
"dgr": "doqrib", "dgr": "doqrib",
@ -117,16 +113,9 @@
"el": "yunan", "el": "yunan",
"elx": "elamit", "elx": "elamit",
"en": "ingilis", "en": "ingilis",
"en_AU": "Avstraliya ingiliscəsi",
"en_CA": "Kanada ingiliscəsi",
"en_GB": "Britaniya ingiliscəsi",
"en_US": "Amerika ingiliscəsi",
"enm": "orta ingilis", "enm": "orta ingilis",
"eo": "esperanto", "eo": "esperanto",
"es": "ispan", "es": "ispan",
"es_419": "Latın Amerikası ispancası",
"es_ES": "Kastiliya ispancası",
"es_MX": "Meksika ispancası",
"et": "eston", "et": "eston",
"eu": "bask", "eu": "bask",
"ewo": "evondo", "ewo": "evondo",
@ -140,8 +129,6 @@
"fo": "farer", "fo": "farer",
"fon": "fon", "fon": "fon",
"fr": "fransız", "fr": "fransız",
"fr_CA": "Kanada fransızcası",
"fr_CH": "İsveçrə fransızcası",
"frm": "orta fransız", "frm": "orta fransız",
"fro": "qədim fransız", "fro": "qədim fransız",
"frr": "şimali fris", "frr": "şimali fris",
@ -320,14 +307,12 @@
"nb": "bokmal norveç", "nb": "bokmal norveç",
"nd": "şimali ndebele", "nd": "şimali ndebele",
"nds": "aşağı alman", "nds": "aşağı alman",
"nds_NL": "aşağı sakson",
"ne": "nepal", "ne": "nepal",
"new": "nevari", "new": "nevari",
"ng": "ndonqa", "ng": "ndonqa",
"nia": "nias", "nia": "nias",
"niu": "niyuan", "niu": "niyuan",
"nl": "holland", "nl": "holland",
"nl_BE": "flamand",
"nmg": "kvasio", "nmg": "kvasio",
"nn": "nünorsk norveç", "nn": "nünorsk norveç",
"nnh": "ngiemboon", "nnh": "ngiemboon",
@ -367,8 +352,6 @@
"pro": "qədim provansal", "pro": "qədim provansal",
"ps": "puştu", "ps": "puştu",
"pt": "portuqal", "pt": "portuqal",
"pt_BR": "Braziliya portuqalcası",
"pt_PT": "Portuqaliya portuqalcası",
"qu": "keçua", "qu": "keçua",
"quc": "kiçe", "quc": "kiçe",
"raj": "racastani", "raj": "racastani",
@ -377,7 +360,6 @@
"rm": "romanş", "rm": "romanş",
"rn": "rundi", "rn": "rundi",
"ro": "rumın", "ro": "rumın",
"ro_MD": "moldav",
"rof": "rombo", "rof": "rombo",
"rom": "roman", "rom": "roman",
"ru": "rus", "ru": "rus",
@ -433,7 +415,6 @@
"sux": "sumeryan", "sux": "sumeryan",
"sv": "isveç", "sv": "isveç",
"sw": "suahili", "sw": "suahili",
"sw_CD": "Konqo suahilicəsi",
"swb": "komor", "swb": "komor",
"syr": "suriya", "syr": "suriya",
"ta": "tamil", "ta": "tamil",
@ -506,10 +487,31 @@
"zen": "zenaqa", "zen": "zenaqa",
"zgh": "tamazi", "zgh": "tamazi",
"zh": "çin", "zh": "çin",
"zh_Hans": "sadələşmiş çin",
"zh_Hant": "ənənəvi çin",
"zu": "zulu", "zu": "zulu",
"zun": "zuni", "zun": "zuni",
"zza": "zaza" "zza": "zaza"
},
"LocalizedNames": {
"ar_001": "müasir standart ərəb",
"az_Arab": "cənubi azərbaycan",
"de_AT": "Avstriya almancası",
"de_CH": "İsveçrə yüksək almancası",
"en_AU": "Avstraliya ingiliscəsi",
"en_CA": "Kanada ingiliscəsi",
"en_GB": "Britaniya ingiliscəsi",
"en_US": "Amerika ingiliscəsi",
"es_419": "Latın Amerikası ispancası",
"es_ES": "Kastiliya ispancası",
"es_MX": "Meksika ispancası",
"fr_CA": "Kanada fransızcası",
"fr_CH": "İsveçrə fransızcası",
"nds_NL": "aşağı sakson",
"nl_BE": "flamand",
"pt_BR": "Braziliya portuqalcası",
"pt_PT": "Portuqaliya portuqalcası",
"ro_MD": "moldav",
"sw_CD": "Konqo suahilicəsi",
"zh_Hans": "sadələşmiş çin",
"zh_Hant": "ənənəvi çin"
} }
} }

View File

@ -16,7 +16,6 @@
"an": "арагон", "an": "арагон",
"anp": "анҝика", "anp": "анҝика",
"ar": "әрәб", "ar": "әрәб",
"ar_001": "мүасир стандарт әрәб",
"arn": "арауканҹа", "arn": "арауканҹа",
"arp": "арапаһо", "arp": "арапаһо",
"as": "ассам", "as": "ассам",
@ -67,8 +66,6 @@
"dar": "даргва", "dar": "даргва",
"dav": "таита", "dav": "таита",
"de": "алман", "de": "алман",
"de_AT": "Австрија алманҹасы",
"de_CH": "Исвечрә јүксәк алманҹасы",
"dgr": "догриб", "dgr": "догриб",
"dje": "зарма", "dje": "зарма",
"dsb": "ашағы сорб", "dsb": "ашағы сорб",
@ -83,15 +80,8 @@
"eka": "екаҹук", "eka": "екаҹук",
"el": "јунан", "el": "јунан",
"en": "инҝилис", "en": "инҝилис",
"en_AU": "Австралија инҝилисҹәси",
"en_CA": "Канада инҝилисҹәси",
"en_GB": "Британија инҝилисҹәси",
"en_US": "Америка инҝилисҹәси",
"eo": "есперанто", "eo": "есперанто",
"es": "испан", "es": "испан",
"es_419": "Латын Америкасы испанҹасы",
"es_ES": "Кастилија испанҹасы",
"es_MX": "Мексика испанҹасы",
"et": "естон", "et": "естон",
"eu": "баск", "eu": "баск",
"ewo": "евондо", "ewo": "евондо",
@ -103,8 +93,6 @@
"fo": "фарер", "fo": "фарер",
"fon": "фон", "fon": "фон",
"fr": "франсыз", "fr": "франсыз",
"fr_CA": "Канада франсызҹасы",
"fr_CH": "Исвечрә франсызҹасы",
"fur": "фриул", "fur": "фриул",
"fy": "гәрби фриз", "fy": "гәрби фриз",
"ga": "ирланд", "ga": "ирланд",
@ -242,14 +230,12 @@
"naq": "нама", "naq": "нама",
"nb": "бокмал норвеч", "nb": "бокмал норвеч",
"nd": "шимали ндебеле", "nd": "шимали ндебеле",
"nds_NL": "ашағы саксон",
"ne": "непал", "ne": "непал",
"new": "невари", "new": "невари",
"ng": "ндонга", "ng": "ндонга",
"nia": "ниас", "nia": "ниас",
"niu": "нијуан", "niu": "нијуан",
"nl": "һолланд", "nl": "һолланд",
"nl_BE": "фламанд",
"nmg": "квасио", "nmg": "квасио",
"nn": "нүнорск норвеч", "nn": "нүнорск норвеч",
"nnh": "нҝиембоон", "nnh": "нҝиембоон",
@ -275,8 +261,6 @@
"prg": "прусс", "prg": "прусс",
"ps": "пушту", "ps": "пушту",
"pt": "португал", "pt": "португал",
"pt_BR": "Бразилија португалҹасы",
"pt_PT": "Португалија португалҹасы",
"qu": "кечуа", "qu": "кечуа",
"quc": "киче", "quc": "киче",
"rap": "рапануи", "rap": "рапануи",
@ -327,7 +311,6 @@
"suk": "сукума", "suk": "сукума",
"sv": "исвеч", "sv": "исвеч",
"sw": "суаһили", "sw": "суаһили",
"sw_CD": "Конго суаһилиҹәси",
"swb": "комор", "swb": "комор",
"syr": "сурија", "syr": "сурија",
"ta": "тамил", "ta": "тамил",
@ -380,10 +363,29 @@
"yue": "кантон", "yue": "кантон",
"zgh": "тамази", "zgh": "тамази",
"zh": "чин", "zh": "чин",
"zh_Hans": "садәләшмиш чин",
"zh_Hant": "әнәнәви чин",
"zu": "зулу", "zu": "зулу",
"zun": "зуни", "zun": "зуни",
"zza": "заза" "zza": "заза"
},
"LocalizedNames": {
"ar_001": "мүасир стандарт әрәб",
"de_AT": "Австрија алманҹасы",
"de_CH": "Исвечрә јүксәк алманҹасы",
"en_AU": "Австралија инҝилисҹәси",
"en_CA": "Канада инҝилисҹәси",
"en_GB": "Британија инҝилисҹәси",
"en_US": "Америка инҝилисҹәси",
"es_419": "Латын Америкасы испанҹасы",
"es_ES": "Кастилија испанҹасы",
"es_MX": "Мексика испанҹасы",
"fr_CA": "Канада франсызҹасы",
"fr_CH": "Исвечрә франсызҹасы",
"nds_NL": "ашағы саксон",
"nl_BE": "фламанд",
"pt_BR": "Бразилија португалҹасы",
"pt_PT": "Португалија португалҹасы",
"sw_CD": "Конго суаһилиҹәси",
"zh_Hans": "садәләшмиш чин",
"zh_Hant": "әнәнәви чин"
} }
} }

View File

@ -247,7 +247,6 @@
"nb": "нарвежская (букмол)", "nb": "нарвежская (букмол)",
"nd": "паўночная ндэбеле", "nd": "паўночная ндэбеле",
"nds": "ніжненямецкая", "nds": "ніжненямецкая",
"nds_NL": "ніжнесаксонская",
"ne": "непальская", "ne": "непальская",
"new": "неўары", "new": "неўары",
"ng": "ндонга", "ng": "ндонга",
@ -285,8 +284,6 @@
"pro": "стараправансальская", "pro": "стараправансальская",
"ps": "пушту", "ps": "пушту",
"pt": "партугальская", "pt": "партугальская",
"pt_BR": "бразільская партугальская",
"pt_PT": "еўрапейская партугальская",
"qu": "кечуа", "qu": "кечуа",
"quc": "кічэ", "quc": "кічэ",
"raj": "раджастханская", "raj": "раджастханская",
@ -295,7 +292,6 @@
"rm": "рэтараманская", "rm": "рэтараманская",
"rn": "рундзі", "rn": "рундзі",
"ro": "румынская", "ro": "румынская",
"ro_MD": "малдаўская",
"rof": "ромба", "rof": "ромба",
"ru": "руская", "ru": "руская",
"rup": "арумунская", "rup": "арумунская",
@ -343,7 +339,6 @@
"sux": "шумерская", "sux": "шумерская",
"sv": "шведская", "sv": "шведская",
"sw": "суахілі", "sw": "суахілі",
"sw_CD": "кангалезская суахілі",
"swb": "каморская", "swb": "каморская",
"syr": "сірыйская", "syr": "сірыйская",
"ta": "тамільская", "ta": "тамільская",
@ -398,10 +393,17 @@
"zap": "сапатэк", "zap": "сапатэк",
"zgh": "стандартная мараканская тамазіхт", "zgh": "стандартная мараканская тамазіхт",
"zh": "кітайская", "zh": "кітайская",
"zh_Hans": "кітайская (спрошчаныя іерогліфы)",
"zh_Hant": "кітайская (традыцыйныя іерогліфы)",
"zu": "зулу", "zu": "зулу",
"zun": "зуні", "zun": "зуні",
"zza": "зазакі" "zza": "зазакі"
},
"LocalizedNames": {
"nds_NL": "ніжнесаксонская",
"pt_BR": "бразільская партугальская",
"pt_PT": "еўрапейская партугальская",
"ro_MD": "малдаўская",
"sw_CD": "кангалезская суахілі",
"zh_Hans": "кітайская (спрошчаныя іерогліфы)",
"zh_Hant": "кітайская (традыцыйныя іерогліфы)"
} }
} }

View File

@ -21,7 +21,6 @@
"ang": "староанглийски", "ang": "староанглийски",
"anp": "ангика", "anp": "ангика",
"ar": "арабски", "ar": "арабски",
"ar_001": "съвременен стандартен арабски",
"arc": "арамейски", "arc": "арамейски",
"arn": "мапуче", "arn": "мапуче",
"arp": "арапахо", "arp": "арапахо",
@ -113,7 +112,6 @@
"el": "гръцки", "el": "гръцки",
"elx": "еламитски", "elx": "еламитски",
"en": "английски", "en": "английски",
"en_US": "английски (САЩ)",
"enm": "средновековен английски", "enm": "средновековен английски",
"eo": "есперанто", "eo": "есперанто",
"es": "испански", "es": "испански",
@ -305,14 +303,12 @@
"nb": "норвежки (букмол)", "nb": "норвежки (букмол)",
"nd": "северен ндебеле", "nd": "северен ндебеле",
"nds": "долнонемски", "nds": "долнонемски",
"nds_NL": "долносаксонски",
"ne": "непалски", "ne": "непалски",
"new": "неварски", "new": "неварски",
"ng": "ндонга", "ng": "ндонга",
"nia": "ниас", "nia": "ниас",
"niu": "ниуеан", "niu": "ниуеан",
"nl": "нидерландски", "nl": "нидерландски",
"nl_BE": "фламандски",
"nmg": "квасио", "nmg": "квасио",
"nn": "норвежки (нюношк)", "nn": "норвежки (нюношк)",
"nnh": "нгиембун", "nnh": "нгиембун",
@ -361,7 +357,6 @@
"rm": "реторомански", "rm": "реторомански",
"rn": "рунди", "rn": "рунди",
"ro": "румънски", "ro": "румънски",
"ro_MD": "молдовски",
"rof": "ромбо", "rof": "ромбо",
"rom": "ромски", "rom": "ромски",
"ru": "руски", "ru": "руски",
@ -417,7 +412,6 @@
"sux": "шумерски", "sux": "шумерски",
"sv": "шведски", "sv": "шведски",
"sw": "суахили", "sw": "суахили",
"sw_CD": "конгоански суахили",
"swb": "коморски", "swb": "коморски",
"syc": "класически сирийски", "syc": "класически сирийски",
"syr": "сирийски", "syr": "сирийски",
@ -490,9 +484,17 @@
"zen": "зенага", "zen": "зенага",
"zgh": "стандартен марокански тамазигт", "zgh": "стандартен марокански тамазигт",
"zh": "китайски", "zh": "китайски",
"zh_Hans": "китайски (опростен)",
"zu": "зулуски", "zu": "зулуски",
"zun": "зуни", "zun": "зуни",
"zza": "заза" "zza": "заза"
},
"LocalizedNames": {
"ar_001": "съвременен стандартен арабски",
"en_US": "английски (САЩ)",
"nds_NL": "долносаксонски",
"nl_BE": "фламандски",
"ro_MD": "молдовски",
"sw_CD": "конгоански суахили",
"zh_Hans": "китайски (опростен)"
} }
} }

View File

@ -46,5 +46,6 @@
"yo": "yorubakan", "yo": "yorubakan",
"zh": "siniwakan", "zh": "siniwakan",
"zu": "zulukan" "zu": "zulukan"
} },
"LocalizedNames": []
} }

View File

@ -21,7 +21,6 @@
"ang": "প্রাচীন ইংরেজী", "ang": "প্রাচীন ইংরেজী",
"anp": "আঙ্গিকা", "anp": "আঙ্গিকা",
"ar": "আরবী", "ar": "আরবী",
"ar_001": "আধুনিক আদর্শ আরবী",
"arc": "আরামাইক", "arc": "আরামাইক",
"arn": "মাপুচি", "arn": "মাপুচি",
"arp": "আরাপাহো", "arp": "আরাপাহো",
@ -91,8 +90,6 @@
"dar": "দার্গওয়া", "dar": "দার্গওয়া",
"dav": "তাইতা", "dav": "তাইতা",
"de": "জার্মান", "de": "জার্মান",
"de_AT": "অস্ট্রিয়ান জার্মান",
"de_CH": "সুইস হাই জার্মান",
"del": "ডেলাওয়ের", "del": "ডেলাওয়ের",
"den": "স্ল্যাভ", "den": "স্ল্যাভ",
"dgr": "দোগ্রীব", "dgr": "দোগ্রীব",
@ -115,16 +112,9 @@
"el": "গ্রিক", "el": "গ্রিক",
"elx": "এলামাইট", "elx": "এলামাইট",
"en": "ইংরেজি", "en": "ইংরেজি",
"en_AU": "অস্ট্রেলীয় ইংরেজি",
"en_CA": "কানাডীয় ইংরেজি",
"en_GB": "ব্রিটিশ ইংরেজি",
"en_US": "আমেরিকার ইংরেজি",
"enm": "মধ্য ইংরেজি", "enm": "মধ্য ইংরেজি",
"eo": "এস্পেরান্তো", "eo": "এস্পেরান্তো",
"es": "স্প্যানিশ", "es": "স্প্যানিশ",
"es_419": "ল্যাটিন আমেরিকান স্প্যানিশ",
"es_ES": "ইউরোপীয় স্প্যানিশ",
"es_MX": "ম্যাক্সিকান স্প্যানিশ",
"et": "এস্তোনীয়", "et": "এস্তোনীয়",
"eu": "বাস্ক", "eu": "বাস্ক",
"ewo": "ইওন্ডো", "ewo": "ইওন্ডো",
@ -138,8 +128,6 @@
"fo": "ফারোস", "fo": "ফারোস",
"fon": "ফন", "fon": "ফন",
"fr": "ফরাসি", "fr": "ফরাসি",
"fr_CA": "কানাডীয় ফরাসি",
"fr_CH": "সুইস ফরাসি",
"frc": "কাজুন ফরাসি", "frc": "কাজুন ফরাসি",
"frm": "মধ্য ফরাসি", "frm": "মধ্য ফরাসি",
"fro": "প্রাচীন ফরাসি", "fro": "প্রাচীন ফরাসি",
@ -321,14 +309,12 @@
"nb": "নরওয়েজিয়ান বোকমাল", "nb": "নরওয়েজিয়ান বোকমাল",
"nd": "উত্তর এন্দেবিলি", "nd": "উত্তর এন্দেবিলি",
"nds": "নিম্ন জার্মানি", "nds": "নিম্ন জার্মানি",
"nds_NL": "লো স্যাক্সন",
"ne": "নেপালী", "ne": "নেপালী",
"new": "নেওয়ারি", "new": "নেওয়ারি",
"ng": "এন্দোঙ্গা", "ng": "এন্দোঙ্গা",
"nia": "নিয়াস", "nia": "নিয়াস",
"niu": "নিউয়ান", "niu": "নিউয়ান",
"nl": "ওলন্দাজ", "nl": "ওলন্দাজ",
"nl_BE": "ফ্লেমিশ",
"nmg": "কোয়াসিও", "nmg": "কোয়াসিও",
"nn": "নরওয়েজীয়ান নিনর্স্ক", "nn": "নরওয়েজীয়ান নিনর্স্ক",
"nnh": "নিঙ্গেম্বুন", "nnh": "নিঙ্গেম্বুন",
@ -369,8 +355,6 @@
"pro": "প্রাচীন প্রোভেনসাল", "pro": "প্রাচীন প্রোভেনসাল",
"ps": "পুশতু", "ps": "পুশতু",
"pt": "পর্তুগীজ", "pt": "পর্তুগীজ",
"pt_BR": "ব্রাজিলের পর্তুগীজ",
"pt_PT": "ইউরোপের পর্তুগীজ",
"qu": "কেচুয়া", "qu": "কেচুয়া",
"quc": "কি‘চে", "quc": "কি‘চে",
"raj": "রাজস্থানী", "raj": "রাজস্থানী",
@ -379,7 +363,6 @@
"rm": "রোমান্স", "rm": "রোমান্স",
"rn": "রুন্দি", "rn": "রুন্দি",
"ro": "রোমানীয়", "ro": "রোমানীয়",
"ro_MD": "মলদাভিয়",
"rof": "রম্বো", "rof": "রম্বো",
"rom": "রোমানি", "rom": "রোমানি",
"ru": "রুশ", "ru": "রুশ",
@ -435,7 +418,6 @@
"sux": "সুমেরীয়", "sux": "সুমেরীয়",
"sv": "সুইডিশ", "sv": "সুইডিশ",
"sw": "সোয়াহিলি", "sw": "সোয়াহিলি",
"sw_CD": "কঙ্গো সোয়াহিলি",
"swb": "কমোরিয়ান", "swb": "কমোরিয়ান",
"syc": "প্রাচীন সিরিও", "syc": "প্রাচীন সিরিও",
"syr": "সিরিয়াক", "syr": "সিরিয়াক",
@ -509,10 +491,30 @@
"zen": "জেনাগা", "zen": "জেনাগা",
"zgh": "আদর্শ মরক্কোন তামাজিগাত", "zgh": "আদর্শ মরক্কোন তামাজিগাত",
"zh": "চীনা", "zh": "চীনা",
"zh_Hans": "সরলীকৃত চীনা",
"zh_Hant": "ঐতিহ্যবাহি চীনা",
"zu": "জুলু", "zu": "জুলু",
"zun": "জুনি", "zun": "জুনি",
"zza": "জাজা" "zza": "জাজা"
},
"LocalizedNames": {
"ar_001": "আধুনিক আদর্শ আরবী",
"de_AT": "অস্ট্রিয়ান জার্মান",
"de_CH": "সুইস হাই জার্মান",
"en_AU": "অস্ট্রেলীয় ইংরেজি",
"en_CA": "কানাডীয় ইংরেজি",
"en_GB": "ব্রিটিশ ইংরেজি",
"en_US": "আমেরিকার ইংরেজি",
"es_419": "ল্যাটিন আমেরিকান স্প্যানিশ",
"es_ES": "ইউরোপীয় স্প্যানিশ",
"es_MX": "ম্যাক্সিকান স্প্যানিশ",
"fr_CA": "কানাডীয় ফরাসি",
"fr_CH": "সুইস ফরাসি",
"nds_NL": "লো স্যাক্সন",
"nl_BE": "ফ্লেমিশ",
"pt_BR": "ব্রাজিলের পর্তুগীজ",
"pt_PT": "ইউরোপের পর্তুগীজ",
"ro_MD": "মলদাভিয়",
"sw_CD": "কঙ্গো সোয়াহিলি",
"zh_Hans": "সরলীকৃত চীনা",
"zh_Hant": "ঐতিহ্যবাহি চীনা"
} }
} }

View File

@ -2,5 +2,6 @@
"Version": "2.1.47.69", "Version": "2.1.47.69",
"Names": { "Names": {
"ksh": "কোলোনিয়ান" "ksh": "কোলোনিয়ান"
} },
"LocalizedNames": []
} }

View File

@ -4,14 +4,16 @@
"bo": "བོད་སྐད་", "bo": "བོད་སྐད་",
"dz": "རྫོང་ཁ", "dz": "རྫོང་ཁ",
"en": "དབྱིན་ཇིའི་སྐད།", "en": "དབྱིན་ཇིའི་སྐད།",
"en_CA": "དབྱིན་ཇིའི་སྐད། (ཁེ་ན་ཌ་)",
"en_GB": "དབྱིན་ཇིའི་སྐད། (དབྱིན་ལན་)",
"en_US": "དབྱིན་ཇིའི་སྐད། (ཨ་རི་)",
"hi": "ཧིན་དི", "hi": "ཧིན་དི",
"ja": "ཉི་ཧོང་སྐད་", "ja": "ཉི་ཧོང་སྐད་",
"ne": "ནེ་པ་ལི", "ne": "ནེ་པ་ལི",
"ru": "ཨུ་རུ་སུ་སྐད་", "ru": "ཨུ་རུ་སུ་སྐད་",
"zh": "རྒྱ་སྐད་", "zh": "རྒྱ་སྐད་",
"zza": "ཟ་ཟའ་སྐད།" "zza": "ཟ་ཟའ་སྐད།"
},
"LocalizedNames": {
"en_CA": "དབྱིན་ཇིའི་སྐད། (ཁེ་ན་ཌ་)",
"en_GB": "དབྱིན་ཇིའི་སྐད། (དབྱིན་ལན་)",
"en_US": "དབྱིན་ཇིའི་སྐད། (ཨ་རི་)"
} }
} }

View File

@ -24,7 +24,6 @@
"ang": "hensaozneg", "ang": "hensaozneg",
"anp": "angika", "anp": "angika",
"ar": "arabeg", "ar": "arabeg",
"ar_001": "arabeg modern",
"arc": "arameeg", "arc": "arameeg",
"arn": "araoukaneg", "arn": "araoukaneg",
"aro": "araona", "aro": "araona",
@ -100,8 +99,6 @@
"dar": "dargwa", "dar": "dargwa",
"dav": "taita", "dav": "taita",
"de": "alamaneg", "de": "alamaneg",
"de_AT": "alamaneg Aostria",
"de_CH": "alamaneg uhel Suis",
"del": "delaware", "del": "delaware",
"dgr": "dogrib", "dgr": "dogrib",
"din": "dinka", "din": "dinka",
@ -123,16 +120,9 @@
"el": "gresianeg", "el": "gresianeg",
"elx": "elameg", "elx": "elameg",
"en": "saozneg", "en": "saozneg",
"en_AU": "saozneg Aostralia",
"en_CA": "saozneg Kanada",
"en_GB": "saozneg Breizh-Veur",
"en_US": "saozneg Amerika",
"enm": "krennsaozneg", "enm": "krennsaozneg",
"eo": "esperanteg", "eo": "esperanteg",
"es": "spagnoleg", "es": "spagnoleg",
"es_419": "spagnoleg Amerika latin",
"es_ES": "spagnoleg Europa",
"es_MX": "spagnoleg Mecʼhiko",
"et": "estoneg", "et": "estoneg",
"eu": "euskareg", "eu": "euskareg",
"ewo": "ewondo", "ewo": "ewondo",
@ -147,8 +137,6 @@
"fo": "faeroeg", "fo": "faeroeg",
"fon": "fon", "fon": "fon",
"fr": "galleg", "fr": "galleg",
"fr_CA": "galleg Kanada",
"fr_CH": "galleg Suis",
"frc": "galleg cajun", "frc": "galleg cajun",
"frm": "krenncʼhalleg", "frm": "krenncʼhalleg",
"fro": "hencʼhalleg", "fro": "hencʼhalleg",
@ -331,7 +319,6 @@
"nb": "norvegeg bokmål", "nb": "norvegeg bokmål",
"nd": "ndebele an Norzh", "nd": "ndebele an Norzh",
"nds": "alamaneg izel", "nds": "alamaneg izel",
"nds_NL": "saksoneg izel",
"ne": "nepaleg", "ne": "nepaleg",
"new": "newari", "new": "newari",
"ng": "ndonga", "ng": "ndonga",
@ -339,7 +326,6 @@
"niu": "niue", "niu": "niue",
"njo": "aoeg", "njo": "aoeg",
"nl": "nederlandeg", "nl": "nederlandeg",
"nl_BE": "flandrezeg",
"nmg": "ngoumbeg", "nmg": "ngoumbeg",
"nn": "norvegeg nynorsk", "nn": "norvegeg nynorsk",
"nnh": "ngiemboon", "nnh": "ngiemboon",
@ -384,8 +370,6 @@
"pro": "henbrovañseg", "pro": "henbrovañseg",
"ps": "pachto", "ps": "pachto",
"pt": "portugaleg", "pt": "portugaleg",
"pt_BR": "portugaleg Brazil",
"pt_PT": "portugaleg Europa",
"qu": "kechuaeg", "qu": "kechuaeg",
"quc": "kʼicheʼ", "quc": "kʼicheʼ",
"qug": "kichuaeg Chimborazo", "qug": "kichuaeg Chimborazo",
@ -396,7 +380,6 @@
"rm": "romañcheg", "rm": "romañcheg",
"rn": "rundi", "rn": "rundi",
"ro": "roumaneg", "ro": "roumaneg",
"ro_MD": "moldoveg",
"rof": "rombo", "rof": "rombo",
"rom": "romanieg", "rom": "romanieg",
"ru": "rusianeg", "ru": "rusianeg",
@ -451,7 +434,6 @@
"sux": "sumereg", "sux": "sumereg",
"sv": "svedeg", "sv": "svedeg",
"sw": "swahili", "sw": "swahili",
"sw_CD": "swahili Kongo",
"swb": "komoreg", "swb": "komoreg",
"syc": "sirieg klasel", "syc": "sirieg klasel",
"syr": "sirieg", "syr": "sirieg",
@ -533,10 +515,30 @@
"zen": "zenaga", "zen": "zenaga",
"zgh": "tamacheg Maroko standart", "zgh": "tamacheg Maroko standart",
"zh": "sinaeg", "zh": "sinaeg",
"zh_Hans": "sinaeg eeunaet",
"zh_Hant": "sinaeg hengounel",
"zu": "zouloueg", "zu": "zouloueg",
"zun": "zuni", "zun": "zuni",
"zza": "zazakeg" "zza": "zazakeg"
},
"LocalizedNames": {
"ar_001": "arabeg modern",
"de_AT": "alamaneg Aostria",
"de_CH": "alamaneg uhel Suis",
"en_AU": "saozneg Aostralia",
"en_CA": "saozneg Kanada",
"en_GB": "saozneg Breizh-Veur",
"en_US": "saozneg Amerika",
"es_419": "spagnoleg Amerika latin",
"es_ES": "spagnoleg Europa",
"es_MX": "spagnoleg Mecʼhiko",
"fr_CA": "galleg Kanada",
"fr_CH": "galleg Suis",
"nds_NL": "saksoneg izel",
"nl_BE": "flandrezeg",
"pt_BR": "portugaleg Brazil",
"pt_PT": "portugaleg Europa",
"ro_MD": "moldoveg",
"sw_CD": "swahili Kongo",
"zh_Hans": "sinaeg eeunaet",
"zh_Hant": "sinaeg hengounel"
} }
} }

View File

@ -21,7 +21,6 @@
"ang": "staroengleski", "ang": "staroengleski",
"anp": "angika", "anp": "angika",
"ar": "arapski", "ar": "arapski",
"ar_001": "moderni standardni arapski",
"arc": "aramejski", "arc": "aramejski",
"arn": "mapuški", "arn": "mapuški",
"arp": "arapaho", "arp": "arapaho",
@ -99,7 +98,6 @@
"dar": "dargva", "dar": "dargva",
"dav": "taita", "dav": "taita",
"de": "njemački", "de": "njemački",
"de_CH": "gornjonjemački (Švicarska)",
"del": "delaver", "del": "delaver",
"den": "slave", "den": "slave",
"dgr": "dogrib", "dgr": "dogrib",
@ -318,14 +316,12 @@
"nb": "norveški (Bokmal)", "nb": "norveški (Bokmal)",
"nd": "sjeverni ndebele", "nd": "sjeverni ndebele",
"nds": "donjonjemački", "nds": "donjonjemački",
"nds_NL": "donjosaksonski",
"ne": "nepalski", "ne": "nepalski",
"new": "nevari", "new": "nevari",
"ng": "ndonga", "ng": "ndonga",
"nia": "nias", "nia": "nias",
"niu": "niue", "niu": "niue",
"nl": "holandski", "nl": "holandski",
"nl_BE": "flamanski",
"nmg": "kvasio", "nmg": "kvasio",
"nn": "norveški (Nynorsk)", "nn": "norveški (Nynorsk)",
"nnh": "ngiembon", "nnh": "ngiembon",
@ -374,7 +370,6 @@
"rm": "retoromanski", "rm": "retoromanski",
"rn": "rundi", "rn": "rundi",
"ro": "rumunski", "ro": "rumunski",
"ro_MD": "moldavski",
"rof": "rombo", "rof": "rombo",
"rom": "romani", "rom": "romani",
"ru": "ruski", "ru": "ruski",
@ -504,10 +499,17 @@
"zen": "zenaga", "zen": "zenaga",
"zgh": "standardni marokanski tamazigt", "zgh": "standardni marokanski tamazigt",
"zh": "kineski", "zh": "kineski",
"zh_Hans": "kineski (pojednostavljeni)",
"zh_Hant": "kineski (tradicionalni)",
"zu": "zulu", "zu": "zulu",
"zun": "zuni", "zun": "zuni",
"zza": "zaza" "zza": "zaza"
},
"LocalizedNames": {
"ar_001": "moderni standardni arapski",
"de_CH": "gornjonjemački (Švicarska)",
"nds_NL": "donjosaksonski",
"nl_BE": "flamanski",
"ro_MD": "moldavski",
"zh_Hans": "kineski (pojednostavljeni)",
"zh_Hant": "kineski (tradicionalni)"
} }
} }

View File

@ -81,7 +81,6 @@
"dak": "дакота", "dak": "дакота",
"dar": "даргва", "dar": "даргва",
"de": "њемачки", "de": "њемачки",
"de_CH": "Швајцарски високи немачки",
"del": "делавер", "del": "делавер",
"den": "славски", "den": "славски",
"dgr": "догриб", "dgr": "догриб",
@ -274,7 +273,6 @@
"nia": "ниас", "nia": "ниас",
"niu": "ниуеан", "niu": "ниуеан",
"nl": "холандски", "nl": "холандски",
"nl_BE": "фламански",
"nn": "норвешки њорск", "nn": "норвешки њорск",
"no": "норвешки", "no": "норвешки",
"nog": "ногаи", "nog": "ногаи",
@ -317,7 +315,6 @@
"rm": "рето-романски", "rm": "рето-романски",
"rn": "рунди", "rn": "рунди",
"ro": "румунски", "ro": "румунски",
"ro_MD": "молдавски",
"rom": "романи", "rom": "романи",
"ru": "руски", "ru": "руски",
"rup": "ароманијски", "rup": "ароманијски",
@ -425,10 +422,15 @@
"zen": "зенага", "zen": "зенага",
"zgh": "стандардни марокански тамазигт", "zgh": "стандардни марокански тамазигт",
"zh": "кинески", "zh": "кинески",
"zh_Hans": "кинески (поједностављен)",
"zh_Hant": "кинески (традиционални)",
"zu": "зулу", "zu": "зулу",
"zun": "зуни", "zun": "зуни",
"zza": "заза" "zza": "заза"
},
"LocalizedNames": {
"de_CH": "Швајцарски високи немачки",
"nl_BE": "фламански",
"ro_MD": "молдавски",
"zh_Hans": "кинески (поједностављен)",
"zh_Hant": "кинески (традиционални)"
} }
} }

View File

@ -23,7 +23,6 @@
"ang": "anglès antic", "ang": "anglès antic",
"anp": "angika", "anp": "angika",
"ar": "àrab", "ar": "àrab",
"ar_001": "àrab estàndard modern",
"arc": "arameu", "arc": "arameu",
"arn": "mapudungu", "arn": "mapudungu",
"aro": "araona", "aro": "araona",
@ -109,8 +108,6 @@
"dar": "darguà", "dar": "darguà",
"dav": "taita", "dav": "taita",
"de": "alemany", "de": "alemany",
"de_AT": "alemany austríac",
"de_CH": "alemany estàndard suís",
"del": "delaware", "del": "delaware",
"den": "slavi", "den": "slavi",
"dgr": "dogrib", "dgr": "dogrib",
@ -134,16 +131,9 @@
"el": "grec", "el": "grec",
"elx": "elamita", "elx": "elamita",
"en": "anglès", "en": "anglès",
"en_AU": "anglès australià",
"en_CA": "anglès canadenc",
"en_GB": "anglès britànic",
"en_US": "anglès americà",
"enm": "anglès mitjà", "enm": "anglès mitjà",
"eo": "esperanto", "eo": "esperanto",
"es": "espanyol", "es": "espanyol",
"es_419": "espanyol hispanoamericà",
"es_ES": "espanyol europeu",
"es_MX": "espanyol de Mèxic",
"et": "estonià", "et": "estonià",
"eu": "basc", "eu": "basc",
"ewo": "ewondo", "ewo": "ewondo",
@ -158,8 +148,6 @@
"fo": "feroès", "fo": "feroès",
"fon": "fon", "fon": "fon",
"fr": "francès", "fr": "francès",
"fr_CA": "francès canadenc",
"fr_CH": "francès suís",
"frc": "francès cajun", "frc": "francès cajun",
"frm": "francès mitjà", "frm": "francès mitjà",
"fro": "francès antic", "fro": "francès antic",
@ -358,14 +346,12 @@
"nb": "noruec bokmål", "nb": "noruec bokmål",
"nd": "ndebele septentrional", "nd": "ndebele septentrional",
"nds": "baix alemany", "nds": "baix alemany",
"nds_NL": "baix saxó",
"ne": "nepalès", "ne": "nepalès",
"new": "newari", "new": "newari",
"ng": "ndonga", "ng": "ndonga",
"nia": "nias", "nia": "nias",
"niu": "niueà", "niu": "niueà",
"nl": "neerlandès", "nl": "neerlandès",
"nl_BE": "flamenc",
"nmg": "bissio", "nmg": "bissio",
"nn": "noruec nynorsk", "nn": "noruec nynorsk",
"nnh": "ngiemboon", "nnh": "ngiemboon",
@ -412,8 +398,6 @@
"pro": "provençal antic", "pro": "provençal antic",
"ps": "paixtu", "ps": "paixtu",
"pt": "portuguès", "pt": "portuguès",
"pt_BR": "portuguès del Brasil",
"pt_PT": "portuguès de Portugal",
"qu": "quítxua", "qu": "quítxua",
"quc": "kiche", "quc": "kiche",
"raj": "rajasthani", "raj": "rajasthani",
@ -423,7 +407,6 @@
"rm": "retoromànic", "rm": "retoromànic",
"rn": "rundi", "rn": "rundi",
"ro": "romanès", "ro": "romanès",
"ro_MD": "moldau",
"rof": "rombo", "rof": "rombo",
"rom": "romaní", "rom": "romaní",
"ru": "rus", "ru": "rus",
@ -482,7 +465,6 @@
"sux": "sumeri", "sux": "sumeri",
"sv": "suec", "sv": "suec",
"sw": "suahili", "sw": "suahili",
"sw_CD": "suahili del Congo",
"swb": "comorià", "swb": "comorià",
"syc": "siríac clàssic", "syc": "siríac clàssic",
"syr": "siríac", "syr": "siríac",
@ -565,10 +547,30 @@
"zen": "zenaga", "zen": "zenaga",
"zgh": "amazic estàndard marroquí", "zgh": "amazic estàndard marroquí",
"zh": "xinès", "zh": "xinès",
"zh_Hans": "xinès simplificat",
"zh_Hant": "xinès tradicional",
"zu": "zulu", "zu": "zulu",
"zun": "zuni", "zun": "zuni",
"zza": "zaza" "zza": "zaza"
},
"LocalizedNames": {
"ar_001": "àrab estàndard modern",
"de_AT": "alemany austríac",
"de_CH": "alemany estàndard suís",
"en_AU": "anglès australià",
"en_CA": "anglès canadenc",
"en_GB": "anglès britànic",
"en_US": "anglès americà",
"es_419": "espanyol hispanoamericà",
"es_ES": "espanyol europeu",
"es_MX": "espanyol de Mèxic",
"fr_CA": "francès canadenc",
"fr_CH": "francès suís",
"nds_NL": "baix saxó",
"nl_BE": "flamenc",
"pt_BR": "portuguès del Brasil",
"pt_PT": "portuguès de Portugal",
"ro_MD": "moldau",
"sw_CD": "suahili del Congo",
"zh_Hans": "xinès simplificat",
"zh_Hant": "xinès tradicional"
} }
} }

View File

@ -16,7 +16,6 @@
"an": "арагонойн", "an": "арагонойн",
"anp": "ангика", "anp": "ангика",
"ar": "Ӏаьрбийн", "ar": "Ӏаьрбийн",
"ar_001": "ХӀинца болу стандартан Ӏаьрбийн",
"arn": "арауканхойн", "arn": "арауканхойн",
"arp": "арапахо", "arp": "арапахо",
"as": "ассамийн", "as": "ассамийн",
@ -68,8 +67,6 @@
"dar": "даьргӀойн", "dar": "даьргӀойн",
"dav": "таита", "dav": "таита",
"de": "немцойн", "de": "немцойн",
"de_AT": "австрин немцойн",
"de_CH": "швейцарин литературин немцойн",
"dgr": "догриб", "dgr": "догриб",
"dje": "зарма", "dje": "зарма",
"dsb": "сорбийн", "dsb": "сорбийн",
@ -84,15 +81,8 @@
"eka": "экаджук", "eka": "экаджук",
"el": "грекийн", "el": "грекийн",
"en": "ингалсан", "en": "ингалсан",
"en_AU": "Австралин ингалсан",
"en_CA": "канадан ингалсан",
"en_GB": "британин ингалсан",
"en_US": "американ ингалсан",
"eo": "эсперанто", "eo": "эсперанто",
"es": "испанхойн", "es": "испанхойн",
"es_419": "латинан американ испанхойн",
"es_ES": "европан испанхойн",
"es_MX": "мексикан испанхойн",
"et": "эстонийн", "et": "эстонийн",
"eu": "баскийн", "eu": "баскийн",
"ewo": "эвондо", "ewo": "эвондо",
@ -104,8 +94,6 @@
"fo": "фарерийн", "fo": "фарерийн",
"fon": "фон", "fon": "фон",
"fr": "французийн", "fr": "французийн",
"fr_CA": "канадан французийн",
"fr_CH": "швейцарин французийн",
"fur": "фриулийн", "fur": "фриулийн",
"fy": "малхбузен-фризийн", "fy": "малхбузен-фризийн",
"ga": "ирландхойн", "ga": "ирландхойн",
@ -247,14 +235,12 @@
"nb": "норвегийн букмол", "nb": "норвегийн букмол",
"nd": "къилбаседа ндебели", "nd": "къилбаседа ндебели",
"nds": "лахара германхойн", "nds": "лахара германхойн",
"nds_NL": "лахара саксонийн",
"ne": "непалхойн", "ne": "непалхойн",
"new": "неваройн", "new": "неваройн",
"ng": "ндонга", "ng": "ндонга",
"nia": "ниас", "nia": "ниас",
"niu": "ниуэ", "niu": "ниуэ",
"nl": "голландхойн", "nl": "голландхойн",
"nl_BE": "фламандийн",
"nmg": "квасио", "nmg": "квасио",
"nn": "норвегийн нюнорск", "nn": "норвегийн нюнорск",
"nnh": "нгиембунд", "nnh": "нгиембунд",
@ -280,8 +266,6 @@
"prg": "пруссийн", "prg": "пруссийн",
"ps": "пушту", "ps": "пушту",
"pt": "португалихойн", "pt": "португалихойн",
"pt_BR": "бразилин португалихойн",
"pt_PT": "европан португалихойн",
"qu": "кечуа", "qu": "кечуа",
"quc": "киче", "quc": "киче",
"rap": "рапануйн", "rap": "рапануйн",
@ -289,7 +273,6 @@
"rm": "романшийн", "rm": "романшийн",
"rn": "рунди", "rn": "рунди",
"ro": "румынийн", "ro": "румынийн",
"ro_MD": "молдавийн",
"rof": "ромбо", "rof": "ромбо",
"ru": "оьрсийн", "ru": "оьрсийн",
"rup": "аруминийн", "rup": "аруминийн",
@ -333,7 +316,6 @@
"suk": "сукума", "suk": "сукума",
"sv": "шведийн", "sv": "шведийн",
"sw": "суахили", "sw": "суахили",
"sw_CD": "суахили (Конго)",
"swb": "коморийн", "swb": "коморийн",
"syr": "шемахойн", "syr": "шемахойн",
"ta": "тамилхойн", "ta": "тамилхойн",
@ -387,10 +369,30 @@
"yue": "кантонийн", "yue": "кантонийн",
"zgh": "мороккон стандартан тамазигхтийн", "zgh": "мороккон стандартан тамазигхтийн",
"zh": "цийн", "zh": "цийн",
"zh_Hans": "атта цийн",
"zh_Hant": "ламастан цийн",
"zu": "зулу", "zu": "зулу",
"zun": "зуньи", "zun": "зуньи",
"zza": "заза" "zza": "заза"
},
"LocalizedNames": {
"ar_001": "ХӀинца болу стандартан Ӏаьрбийн",
"de_AT": "австрин немцойн",
"de_CH": "швейцарин литературин немцойн",
"en_AU": "Австралин ингалсан",
"en_CA": "канадан ингалсан",
"en_GB": "британин ингалсан",
"en_US": "американ ингалсан",
"es_419": "латинан американ испанхойн",
"es_ES": "европан испанхойн",
"es_MX": "мексикан испанхойн",
"fr_CA": "канадан французийн",
"fr_CH": "швейцарин французийн",
"nds_NL": "лахара саксонийн",
"nl_BE": "фламандийн",
"pt_BR": "бразилин португалихойн",
"pt_PT": "европан португалихойн",
"ro_MD": "молдавийн",
"sw_CD": "суахили (Конго)",
"zh_Hans": "атта цийн",
"zh_Hant": "ламастан цийн"
} }
} }

View File

@ -24,7 +24,6 @@
"ang": "staroangličtina", "ang": "staroangličtina",
"anp": "angika", "anp": "angika",
"ar": "arabština", "ar": "arabština",
"ar_001": "arabština (moderní standardní)",
"arc": "aramejština", "arc": "aramejština",
"arn": "mapudungun", "arn": "mapudungun",
"aro": "araonština", "aro": "araonština",
@ -119,7 +118,6 @@
"dar": "dargština", "dar": "dargština",
"dav": "taita", "dav": "taita",
"de": "němčina", "de": "němčina",
"de_CH": "němčina standardní (Švýcarsko)",
"del": "delawarština", "del": "delawarština",
"den": "slejvština (athabaský jazyk)", "den": "slejvština (athabaský jazyk)",
"dgr": "dogrib", "dgr": "dogrib",
@ -144,12 +142,9 @@
"el": "řečtina", "el": "řečtina",
"elx": "elamitština", "elx": "elamitština",
"en": "angličtina", "en": "angličtina",
"en_GB": "angličtina (Velká Británie)",
"en_US": "angličtina (USA)",
"enm": "angličtina (středověká)", "enm": "angličtina (středověká)",
"eo": "esperanto", "eo": "esperanto",
"es": "španělština", "es": "španělština",
"es_ES": "španělština (Evropa)",
"esu": "jupikština (středoaljašská)", "esu": "jupikština (středoaljašská)",
"et": "estonština", "et": "estonština",
"eu": "baskičtina", "eu": "baskičtina",
@ -376,7 +371,6 @@
"nb": "norština (bokmål)", "nb": "norština (bokmål)",
"nd": "ndebele (Zimbabwe)", "nd": "ndebele (Zimbabwe)",
"nds": "dolnoněmčina", "nds": "dolnoněmčina",
"nds_NL": "dolnosaština",
"ne": "nepálština", "ne": "nepálština",
"new": "névárština", "new": "névárština",
"ng": "ndondština", "ng": "ndondština",
@ -384,7 +378,6 @@
"niu": "niueština", "niu": "niueština",
"njo": "ao (jazyky Nágálandu)", "njo": "ao (jazyky Nágálandu)",
"nl": "nizozemština", "nl": "nizozemština",
"nl_BE": "vlámština",
"nmg": "kwasio", "nmg": "kwasio",
"nn": "norština (nynorsk)", "nn": "norština (nynorsk)",
"nnh": "ngiemboon", "nnh": "ngiemboon",
@ -432,7 +425,6 @@
"pro": "provensálština", "pro": "provensálština",
"ps": "paštština", "ps": "paštština",
"pt": "portugalština", "pt": "portugalština",
"pt_PT": "portugalština (Evropa)",
"qu": "kečuánština", "qu": "kečuánština",
"quc": "kičé", "quc": "kičé",
"qug": "kečuánština (chimborazo)", "qug": "kečuánština (chimborazo)",
@ -444,7 +436,6 @@
"rm": "rétorománština", "rm": "rétorománština",
"rn": "kirundština", "rn": "kirundština",
"ro": "rumunština", "ro": "rumunština",
"ro_MD": "moldavština",
"rof": "rombo", "rof": "rombo",
"rom": "romština", "rom": "romština",
"rtm": "rotumanština", "rtm": "rotumanština",
@ -512,7 +503,6 @@
"sux": "sumerština", "sux": "sumerština",
"sv": "švédština", "sv": "švédština",
"sw": "svahilština", "sw": "svahilština",
"sw_CD": "svahilština (Kongo)",
"swb": "komorština", "swb": "komorština",
"syc": "syrština (klasická)", "syc": "syrština (klasická)",
"syr": "syrština", "syr": "syrština",
@ -601,9 +591,21 @@
"zen": "zenaga", "zen": "zenaga",
"zgh": "tamazight (standardní marocký)", "zgh": "tamazight (standardní marocký)",
"zh": "čínština", "zh": "čínština",
"zh_Hans": "čínština (zjednodušená)",
"zu": "zuluština", "zu": "zuluština",
"zun": "zunijština", "zun": "zunijština",
"zza": "zaza" "zza": "zaza"
},
"LocalizedNames": {
"ar_001": "arabština (moderní standardní)",
"de_CH": "němčina standardní (Švýcarsko)",
"en_GB": "angličtina (Velká Británie)",
"en_US": "angličtina (USA)",
"es_ES": "španělština (Evropa)",
"nds_NL": "dolnosaština",
"nl_BE": "vlámština",
"pt_PT": "portugalština (Evropa)",
"ro_MD": "moldavština",
"sw_CD": "svahilština (Kongo)",
"zh_Hans": "čínština (zjednodušená)"
} }
} }

View File

@ -24,7 +24,6 @@
"ang": "Hen Saesneg", "ang": "Hen Saesneg",
"anp": "Angika", "anp": "Angika",
"ar": "Arabeg", "ar": "Arabeg",
"ar_001": "Arabeg Modern Safonol",
"arc": "Aramaeg", "arc": "Aramaeg",
"arn": "Arawcaneg", "arn": "Arawcaneg",
"aro": "Araonaeg", "aro": "Araonaeg",
@ -41,7 +40,6 @@
"awa": "Awadhi", "awa": "Awadhi",
"ay": "Aymareg", "ay": "Aymareg",
"az": "Aserbaijaneg", "az": "Aserbaijaneg",
"az_Arab": "Aserbaijaneg Deheuol",
"ba": "Bashcorteg", "ba": "Bashcorteg",
"bal": "Balwtsi", "bal": "Balwtsi",
"ban": "Balïeg", "ban": "Balïeg",
@ -101,8 +99,6 @@
"dar": "Dargwa", "dar": "Dargwa",
"dav": "Taita", "dav": "Taita",
"de": "Almaeneg", "de": "Almaeneg",
"de_AT": "Almaeneg Awstria",
"de_CH": "Almaeneg Safonol y Swistir",
"dgr": "Dogrib", "dgr": "Dogrib",
"din": "Dinca", "din": "Dinca",
"dje": "Sarmaeg", "dje": "Sarmaeg",
@ -122,16 +118,9 @@
"el": "Groeg", "el": "Groeg",
"elx": "Elameg", "elx": "Elameg",
"en": "Saesneg", "en": "Saesneg",
"en_AU": "Saesneg Awstralia",
"en_CA": "Saesneg Canada",
"en_GB": "Saesneg Prydain",
"en_US": "Saesneg America",
"enm": "Saesneg Canol", "enm": "Saesneg Canol",
"eo": "Esperanto", "eo": "Esperanto",
"es": "Sbaeneg", "es": "Sbaeneg",
"es_419": "Sbaeneg America Ladin",
"es_ES": "Sbaeneg Ewrop",
"es_MX": "Sbaeneg Mecsico",
"et": "Estoneg", "et": "Estoneg",
"eu": "Basgeg", "eu": "Basgeg",
"ewo": "Ewondo", "ewo": "Ewondo",
@ -146,8 +135,6 @@
"fo": "Ffaröeg", "fo": "Ffaröeg",
"fon": "Fon", "fon": "Fon",
"fr": "Ffrangeg", "fr": "Ffrangeg",
"fr_CA": "Ffrangeg Canada",
"fr_CH": "Ffrangeg y Swistir",
"frc": "Ffrangeg Cajwn", "frc": "Ffrangeg Cajwn",
"frm": "Ffrangeg Canol", "frm": "Ffrangeg Canol",
"fro": "Hen Ffrangeg", "fro": "Hen Ffrangeg",
@ -322,7 +309,6 @@
"nb": "Norwyeg Bokmål", "nb": "Norwyeg Bokmål",
"nd": "Ndebele Gogleddol", "nd": "Ndebele Gogleddol",
"nds": "Almaeneg Isel", "nds": "Almaeneg Isel",
"nds_NL": "Sacsoneg Isel",
"ne": "Nepaleg", "ne": "Nepaleg",
"new": "Newaeg", "new": "Newaeg",
"ng": "Ndonga", "ng": "Ndonga",
@ -330,7 +316,6 @@
"niu": "Niuean", "niu": "Niuean",
"njo": "Ao Naga", "njo": "Ao Naga",
"nl": "Iseldireg", "nl": "Iseldireg",
"nl_BE": "Fflemeg",
"nmg": "Kwasio", "nmg": "Kwasio",
"nn": "Norwyeg Nynorsk", "nn": "Norwyeg Nynorsk",
"nnh": "Ngiemboon", "nnh": "Ngiemboon",
@ -376,8 +361,6 @@
"pro": "Hen Brofensaleg", "pro": "Hen Brofensaleg",
"ps": "Pashto", "ps": "Pashto",
"pt": "Portiwgeeg", "pt": "Portiwgeeg",
"pt_BR": "Portiwgeeg Brasil",
"pt_PT": "Portiwgeeg Ewrop",
"qu": "Quechua", "qu": "Quechua",
"quc": "Kiche", "quc": "Kiche",
"raj": "Rajasthaneg", "raj": "Rajasthaneg",
@ -386,7 +369,6 @@
"rm": "Románsh", "rm": "Románsh",
"rn": "Rwndi", "rn": "Rwndi",
"ro": "Rwmaneg", "ro": "Rwmaneg",
"ro_MD": "Moldofeg",
"rof": "Rombo", "rof": "Rombo",
"rom": "Romani", "rom": "Romani",
"rtm": "Rotumaneg", "rtm": "Rotumaneg",
@ -450,7 +432,6 @@
"sux": "Swmereg", "sux": "Swmereg",
"sv": "Swedeg", "sv": "Swedeg",
"sw": "Swahili", "sw": "Swahili",
"sw_CD": "Swahilir Congo",
"swb": "Comoreg", "swb": "Comoreg",
"syc": "Hen Syrieg", "syc": "Hen Syrieg",
"syr": "Syrieg", "syr": "Syrieg",
@ -526,10 +507,31 @@
"zea": "Zêlandeg", "zea": "Zêlandeg",
"zgh": "Tamaseit Safonol", "zgh": "Tamaseit Safonol",
"zh": "Tsieineeg", "zh": "Tsieineeg",
"zh_Hans": "Tsieineeg Symledig",
"zh_Hant": "Tsieineeg Traddodiadol",
"zu": "Swlw", "zu": "Swlw",
"zun": "Swni", "zun": "Swni",
"zza": "Sasäeg" "zza": "Sasäeg"
},
"LocalizedNames": {
"ar_001": "Arabeg Modern Safonol",
"az_Arab": "Aserbaijaneg Deheuol",
"de_AT": "Almaeneg Awstria",
"de_CH": "Almaeneg Safonol y Swistir",
"en_AU": "Saesneg Awstralia",
"en_CA": "Saesneg Canada",
"en_GB": "Saesneg Prydain",
"en_US": "Saesneg America",
"es_419": "Sbaeneg America Ladin",
"es_ES": "Sbaeneg Ewrop",
"es_MX": "Sbaeneg Mecsico",
"fr_CA": "Ffrangeg Canada",
"fr_CH": "Ffrangeg y Swistir",
"nds_NL": "Sacsoneg Isel",
"nl_BE": "Fflemeg",
"pt_BR": "Portiwgeeg Brasil",
"pt_PT": "Portiwgeeg Ewrop",
"ro_MD": "Moldofeg",
"sw_CD": "Swahilir Congo",
"zh_Hans": "Tsieineeg Symledig",
"zh_Hant": "Tsieineeg Traddodiadol"
} }
} }

View File

@ -21,7 +21,6 @@
"ang": "oldengelsk", "ang": "oldengelsk",
"anp": "angika", "anp": "angika",
"ar": "arabisk", "ar": "arabisk",
"ar_001": "moderne standardarabisk",
"arc": "aramæisk", "arc": "aramæisk",
"arn": "mapudungun", "arn": "mapudungun",
"arp": "arapaho", "arp": "arapaho",
@ -100,8 +99,6 @@
"dar": "dargwa", "dar": "dargwa",
"dav": "taita", "dav": "taita",
"de": "tysk", "de": "tysk",
"de_AT": "østrigsk tysk",
"de_CH": "schweizerhøjtysk",
"del": "delaware", "del": "delaware",
"den": "athapaskisk", "den": "athapaskisk",
"dgr": "dogrib", "dgr": "dogrib",
@ -124,16 +121,9 @@
"el": "græsk", "el": "græsk",
"elx": "elamitisk", "elx": "elamitisk",
"en": "engelsk", "en": "engelsk",
"en_AU": "australsk engelsk",
"en_CA": "canadisk engelsk",
"en_GB": "britisk engelsk",
"en_US": "amerikansk engelsk",
"enm": "middelengelsk", "enm": "middelengelsk",
"eo": "esperanto", "eo": "esperanto",
"es": "spansk", "es": "spansk",
"es_419": "latinamerikansk spansk",
"es_ES": "europæisk spansk",
"es_MX": "mexicansk spansk",
"et": "estisk", "et": "estisk",
"eu": "baskisk", "eu": "baskisk",
"ewo": "ewondo", "ewo": "ewondo",
@ -147,8 +137,6 @@
"fo": "færøsk", "fo": "færøsk",
"fon": "fon", "fon": "fon",
"fr": "fransk", "fr": "fransk",
"fr_CA": "canadisk fransk",
"fr_CH": "schweizisk fransk",
"frc": "cajunfransk", "frc": "cajunfransk",
"frm": "middelfransk", "frm": "middelfransk",
"fro": "oldfransk", "fro": "oldfransk",
@ -340,7 +328,6 @@
"nia": "nias", "nia": "nias",
"niu": "niueansk", "niu": "niueansk",
"nl": "hollandsk", "nl": "hollandsk",
"nl_BE": "flamsk",
"nmg": "kwasio", "nmg": "kwasio",
"nn": "nynorsk", "nn": "nynorsk",
"nnh": "ngiemboon", "nnh": "ngiemboon",
@ -381,8 +368,6 @@
"pro": "oldprovencalsk", "pro": "oldprovencalsk",
"ps": "pashto", "ps": "pashto",
"pt": "portugisisk", "pt": "portugisisk",
"pt_BR": "brasiliansk portugisisk",
"pt_PT": "europæisk portugisisk",
"qu": "quechua", "qu": "quechua",
"quc": "quiché", "quc": "quiché",
"raj": "rajasthani", "raj": "rajasthani",
@ -391,7 +376,6 @@
"rm": "rætoromansk", "rm": "rætoromansk",
"rn": "rundi", "rn": "rundi",
"ro": "rumænsk", "ro": "rumænsk",
"ro_MD": "moldovisk",
"rof": "rombo", "rof": "rombo",
"rom": "romani", "rom": "romani",
"ru": "russisk", "ru": "russisk",
@ -449,7 +433,6 @@
"sux": "sumerisk", "sux": "sumerisk",
"sv": "svensk", "sv": "svensk",
"sw": "swahili", "sw": "swahili",
"sw_CD": "congolesisk swahili",
"swb": "shimaore", "swb": "shimaore",
"syc": "klassisk syrisk", "syc": "klassisk syrisk",
"syr": "syrisk", "syr": "syrisk",
@ -523,10 +506,29 @@
"zen": "zenaga", "zen": "zenaga",
"zgh": "tamazight", "zgh": "tamazight",
"zh": "kinesisk", "zh": "kinesisk",
"zh_Hans": "forenklet kinesisk",
"zh_Hant": "traditionelt kinesisk",
"zu": "zulu", "zu": "zulu",
"zun": "zuni", "zun": "zuni",
"zza": "zaza" "zza": "zaza"
},
"LocalizedNames": {
"ar_001": "moderne standardarabisk",
"de_AT": "østrigsk tysk",
"de_CH": "schweizerhøjtysk",
"en_AU": "australsk engelsk",
"en_CA": "canadisk engelsk",
"en_GB": "britisk engelsk",
"en_US": "amerikansk engelsk",
"es_419": "latinamerikansk spansk",
"es_ES": "europæisk spansk",
"es_MX": "mexicansk spansk",
"fr_CA": "canadisk fransk",
"fr_CH": "schweizisk fransk",
"nl_BE": "flamsk",
"pt_BR": "brasiliansk portugisisk",
"pt_PT": "europæisk portugisisk",
"ro_MD": "moldovisk",
"sw_CD": "congolesisk swahili",
"zh_Hans": "forenklet kinesisk",
"zh_Hant": "traditionelt kinesisk"
} }
} }

View File

@ -24,7 +24,6 @@
"ang": "Altenglisch", "ang": "Altenglisch",
"anp": "Angika", "anp": "Angika",
"ar": "Arabisch", "ar": "Arabisch",
"ar_001": "Modernes Hocharabisch",
"arc": "Aramäisch", "arc": "Aramäisch",
"arn": "Mapudungun", "arn": "Mapudungun",
"aro": "Araona", "aro": "Araona",
@ -118,8 +117,6 @@
"dar": "Darginisch", "dar": "Darginisch",
"dav": "Taita", "dav": "Taita",
"de": "Deutsch", "de": "Deutsch",
"de_AT": "Österreichisches Deutsch",
"de_CH": "Schweizer Hochdeutsch",
"del": "Delaware", "del": "Delaware",
"den": "Slave", "den": "Slave",
"dgr": "Dogrib", "dgr": "Dogrib",
@ -373,7 +370,6 @@
"nb": "Norwegisch Bokmål", "nb": "Norwegisch Bokmål",
"nd": "Nord-Ndebele", "nd": "Nord-Ndebele",
"nds": "Niederdeutsch", "nds": "Niederdeutsch",
"nds_NL": "Niedersächsisch",
"ne": "Nepalesisch", "ne": "Nepalesisch",
"new": "Newari", "new": "Newari",
"ng": "Ndonga", "ng": "Ndonga",
@ -381,7 +377,6 @@
"niu": "Niue", "niu": "Niue",
"njo": "Ao-Naga", "njo": "Ao-Naga",
"nl": "Niederländisch", "nl": "Niederländisch",
"nl_BE": "Flämisch",
"nmg": "Kwasio", "nmg": "Kwasio",
"nn": "Norwegisch Nynorsk", "nn": "Norwegisch Nynorsk",
"nnh": "Ngiemboon", "nnh": "Ngiemboon",
@ -440,7 +435,6 @@
"rm": "Rätoromanisch", "rm": "Rätoromanisch",
"rn": "Rundi", "rn": "Rundi",
"ro": "Rumänisch", "ro": "Rumänisch",
"ro_MD": "Moldauisch",
"rof": "Rombo", "rof": "Rombo",
"rom": "Romani", "rom": "Romani",
"rtm": "Rotumanisch", "rtm": "Rotumanisch",
@ -508,7 +502,6 @@
"sux": "Sumerisch", "sux": "Sumerisch",
"sv": "Schwedisch", "sv": "Schwedisch",
"sw": "Suaheli", "sw": "Suaheli",
"sw_CD": "Kongo-Swahili",
"swb": "Komorisch", "swb": "Komorisch",
"syc": "Altsyrisch", "syc": "Altsyrisch",
"syr": "Syrisch", "syr": "Syrisch",
@ -597,10 +590,19 @@
"zen": "Zenaga", "zen": "Zenaga",
"zgh": "Tamazight", "zgh": "Tamazight",
"zh": "Chinesisch", "zh": "Chinesisch",
"zh_Hans": "Chinesisch (vereinfacht)",
"zh_Hant": "Chinesisch (traditionell)",
"zu": "Zulu", "zu": "Zulu",
"zun": "Zuni", "zun": "Zuni",
"zza": "Zaza" "zza": "Zaza"
},
"LocalizedNames": {
"ar_001": "Modernes Hocharabisch",
"de_AT": "Österreichisches Deutsch",
"de_CH": "Schweizer Hochdeutsch",
"nds_NL": "Niedersächsisch",
"nl_BE": "Flämisch",
"ro_MD": "Moldauisch",
"sw_CD": "Kongo-Swahili",
"zh_Hans": "Chinesisch (vereinfacht)",
"zh_Hant": "Chinesisch (traditionell)"
} }
} }

View File

@ -1,7 +1,6 @@
{ {
"Version": "2.1.47.69", "Version": "2.1.47.69",
"Names": { "Names": {
"ar_001": "modernes Hocharabisch",
"car": "karibische Sprache", "car": "karibische Sprache",
"chb": "Chibcha-Sprache", "chb": "Chibcha-Sprache",
"del": "Delawarisch", "del": "Delawarisch",
@ -14,5 +13,8 @@
"pag": "Pangasinensisch", "pag": "Pangasinensisch",
"sh": "Serbokroatisch", "sh": "Serbokroatisch",
"szl": "Schlesisch" "szl": "Schlesisch"
},
"LocalizedNames": {
"ar_001": "modernes Hocharabisch"
} }
} }

View File

@ -15,5 +15,6 @@
"kmb": "Kimbundu-Sprache", "kmb": "Kimbundu-Sprache",
"mus": "Muskogee-Sprache", "mus": "Muskogee-Sprache",
"prg": "Altpreussisch" "prg": "Altpreussisch"
} },
"LocalizedNames": []
} }

View File

@ -2,5 +2,6 @@
"Version": "2.1.47.69", "Version": "2.1.47.69",
"Names": { "Names": {
"be": "Belarussisch" "be": "Belarussisch"
} },
"LocalizedNames": []
} }

View File

@ -19,20 +19,12 @@
"da": "ཌེ་ནིཤ་ཁ", "da": "ཌེ་ནིཤ་ཁ",
"dak": "ད་ཀོ་ཏ་ཁ", "dak": "ད་ཀོ་ཏ་ཁ",
"de": "ཇཱར་མཱན་ཁ", "de": "ཇཱར་མཱན་ཁ",
"de_AT": "ཨཱོས་ཊྲི་ཡཱན་ཇཱར་མཱན་ཁ",
"de_CH": "སུ་ཡིས་གི་མཐོ་སའི་ཇཱར་མཱན་ཁ",
"dv": "དི་བེ་ཧི་ཁ", "dv": "དི་བེ་ཧི་ཁ",
"dz": "རྫོང་ཁ", "dz": "རྫོང་ཁ",
"el": "གྲིཀ་ཁ", "el": "གྲིཀ་ཁ",
"en": "ཨིང་ལིཤ་ཁ", "en": "ཨིང་ལིཤ་ཁ",
"en_AU": "ཨཱོས་ཊྲེ་ལི་ཡཱན་ཨིང་ལིཤ་ཁ",
"en_CA": "ཀེ་ན་ཌི་ཡཱན་ཨིང་ལིཤ་ཁ",
"en_GB": "བྲི་ཊིཤ་ཨིང་ལིཤ་ཁ",
"en_US": "ཡུ་ཨེས་ཨིང་ལིཤ་ཁ",
"eo": "ཨེས་པ་རཱན་ཏོ་ཁ", "eo": "ཨེས་པ་རཱན་ཏོ་ཁ",
"es": "ཨིས་པེ་ནིཤ་ཁ", "es": "ཨིས་པེ་ནིཤ་ཁ",
"es_419": "ལེ་ཊིན་ཨ་མེ་རི་ཀཱན་གི་ཨིས་པེ་ནིཤ་ཁ",
"es_ES": "ཡུ་རོབ་ཀྱི་ཨིས་པེ་ནིཤ་ཁ",
"et": "ཨེས་ཊོ་ནི་ཡཱན་ཁ", "et": "ཨེས་ཊོ་ནི་ཡཱན་ཁ",
"eu": "བཱསཀ་ཁ", "eu": "བཱསཀ་ཁ",
"fa": "པར་ཤི་ཡཱན་ཁ", "fa": "པར་ཤི་ཡཱན་ཁ",
@ -41,8 +33,6 @@
"fj": "ཕི་ཇི་ཡཱན་ཁ", "fj": "ཕི་ཇི་ཡཱན་ཁ",
"fo": "ཕཱ་རོ་ཨིས་ཁ", "fo": "ཕཱ་རོ་ཨིས་ཁ",
"fr": "ཕྲནཅ་ཁ", "fr": "ཕྲནཅ་ཁ",
"fr_CA": "ཀེ་ན་ཌི་ཡཱན་ཕྲནཅ་ཁ",
"fr_CH": "སུ་ཡིས་ཕྲནཅ་ཁ",
"fy": "ནུབ་ཕྼི་སི་ཡན་ཁ", "fy": "ནུབ་ཕྼི་སི་ཡན་ཁ",
"ga": "ཨཱའི་རིཤ་ཁ", "ga": "ཨཱའི་རིཤ་ཁ",
"gl": "གལ་ཨིས་ཨི་ཡན་ཁ", "gl": "གལ་ཨིས་ཨི་ཡན་ཁ",
@ -90,7 +80,6 @@
"nb": "ནོར་ཝེ་ཇི་ཡཱན་བོཀ་མཱལ་ཁ", "nb": "ནོར་ཝེ་ཇི་ཡཱན་བོཀ་མཱལ་ཁ",
"ne": "ནེ་པཱལི་ཁ", "ne": "ནེ་པཱལི་ཁ",
"nl": "ཌཆ་ཁ", "nl": "ཌཆ་ཁ",
"nl_BE": "ཕྷེལེ་མིཤ་ཁ",
"nn": "ནོར་ཝེ་ཇི་ཡཱན་ནོརསཀ་ཁ", "nn": "ནོར་ཝེ་ཇི་ཡཱན་ནོརསཀ་ཁ",
"no": "ནོར་ཝི་ཇི་ཡན་ཁ", "no": "ནོར་ཝི་ཇི་ཡན་ཁ",
"or": "ཨོ་རི་ཡ་ཁ", "or": "ཨོ་རི་ཡ་ཁ",
@ -98,8 +87,6 @@
"pl": "པོ་ལིཤ་ཁ", "pl": "པོ་ལིཤ་ཁ",
"ps": "པཱཤ་ཏོ་ཁ", "ps": "པཱཤ་ཏོ་ཁ",
"pt": "པོར་ཅུ་གིས་ཁ", "pt": "པོར་ཅུ་གིས་ཁ",
"pt_BR": "བྲ་ཛི་ལི་ཡཱན་པོར་ཅུ་གིས་ཁ",
"pt_PT": "ཨི་བེ་རི་ཡཱན་པོར་ཅུ་གིས་ཁ",
"qu": "ཀྭེ་ཆུ་ཨ་ཁ", "qu": "ཀྭེ་ཆུ་ཨ་ཁ",
"rm": "རོ་མེ་ནིཤ་ཁ", "rm": "རོ་མེ་ནིཤ་ཁ",
"ro": "རོ་མེ་ནི་ཡཱན་ཁ", "ro": "རོ་མེ་ནི་ཡཱན་ཁ",
@ -134,8 +121,23 @@
"xh": "ཞོ་ས་ཁ", "xh": "ཞོ་ས་ཁ",
"yo": "ཡོ་རུ་བ་ཁ", "yo": "ཡོ་རུ་བ་ཁ",
"zh": "རྒྱ་མི་ཁ", "zh": "རྒྱ་མི་ཁ",
"zh_Hans": "རྒྱ་མི་ཁ་འཇམ་སངམ",
"zh_Hant": "སྔ་དུས་ཀྱི་རྒྱ་མི་ཁ",
"zu": "ཟུ་ལུ་ཁ" "zu": "ཟུ་ལུ་ཁ"
},
"LocalizedNames": {
"de_AT": "ཨཱོས་ཊྲི་ཡཱན་ཇཱར་མཱན་ཁ",
"de_CH": "སུ་ཡིས་གི་མཐོ་སའི་ཇཱར་མཱན་ཁ",
"en_AU": "ཨཱོས་ཊྲེ་ལི་ཡཱན་ཨིང་ལིཤ་ཁ",
"en_CA": "ཀེ་ན་ཌི་ཡཱན་ཨིང་ལིཤ་ཁ",
"en_GB": "བྲི་ཊིཤ་ཨིང་ལིཤ་ཁ",
"en_US": "ཡུ་ཨེས་ཨིང་ལིཤ་ཁ",
"es_419": "ལེ་ཊིན་ཨ་མེ་རི་ཀཱན་གི་ཨིས་པེ་ནིཤ་ཁ",
"es_ES": "ཡུ་རོབ་ཀྱི་ཨིས་པེ་ནིཤ་ཁ",
"fr_CA": "ཀེ་ན་ཌི་ཡཱན་ཕྲནཅ་ཁ",
"fr_CH": "སུ་ཡིས་ཕྲནཅ་ཁ",
"nl_BE": "ཕྷེལེ་མིཤ་ཁ",
"pt_BR": "བྲ་ཛི་ལི་ཡཱན་པོར་ཅུ་གིས་ཁ",
"pt_PT": "ཨི་བེ་རི་ཡཱན་པོར་ཅུ་གིས་ཁ",
"zh_Hans": "རྒྱ་མི་ཁ་འཇམ་སངམ",
"zh_Hant": "སྔ་དུས་ཀྱི་རྒྱ་མི་ཁ"
} }
} }

View File

@ -26,8 +26,6 @@
"cy": "walesgbe", "cy": "walesgbe",
"da": "denmarkgbe", "da": "denmarkgbe",
"de": "Germaniagbe", "de": "Germaniagbe",
"de_AT": "Germaniagbe (Austria)",
"de_CH": "Germaniagbe (Switzerland)",
"dv": "divehgbe", "dv": "divehgbe",
"dz": "dzongkhagbe", "dz": "dzongkhagbe",
"ebu": "embugbe", "ebu": "embugbe",
@ -35,15 +33,8 @@
"efi": "efigbe", "efi": "efigbe",
"el": "grisigbe", "el": "grisigbe",
"en": "Yevugbe", "en": "Yevugbe",
"en_AU": "Yevugbe (Australia)",
"en_CA": "Yevugbe (Canada)",
"en_GB": "Yevugbe (Britain)",
"en_US": "Yevugbe (America)",
"eo": "esperantogbe", "eo": "esperantogbe",
"es": "Spanishgbe", "es": "Spanishgbe",
"es_419": "Spanishgbe (Latin America)",
"es_ES": "Spanishgbe (Europe)",
"es_MX": "Spanishgbe (Mexico)",
"et": "estoniagbe", "et": "estoniagbe",
"eu": "basqugbe", "eu": "basqugbe",
"fa": "persiagbe", "fa": "persiagbe",
@ -51,8 +42,6 @@
"fil": "filipingbe", "fil": "filipingbe",
"fj": "fidzigbe", "fj": "fidzigbe",
"fr": "Fransegbe", "fr": "Fransegbe",
"fr_CA": "Fransegbe (Canada)",
"fr_CH": "Fransegbe (Switzerland)",
"ga": "irelanɖgbe", "ga": "irelanɖgbe",
"gl": "galatagbe", "gl": "galatagbe",
"gn": "guarangbe", "gn": "guarangbe",
@ -102,7 +91,6 @@
"nd": "dziehe ndebelegbe", "nd": "dziehe ndebelegbe",
"ne": "nepalgbe", "ne": "nepalgbe",
"nl": "Hollandgbe", "nl": "Hollandgbe",
"nl_BE": "Flemishgbe",
"nn": "nɔweigbe ninɔsk", "nn": "nɔweigbe ninɔsk",
"no": "nɔweigbe", "no": "nɔweigbe",
"nso": "dziehe sothogbe", "nso": "dziehe sothogbe",
@ -113,8 +101,6 @@
"pl": "Polishgbe", "pl": "Polishgbe",
"ps": "pashtogbe", "ps": "pashtogbe",
"pt": "Portuguesegbe", "pt": "Portuguesegbe",
"pt_BR": "Portuguesegbe (Brazil)",
"pt_PT": "Portuguesegbe (Europe)",
"qu": "kwetsuagbe", "qu": "kwetsuagbe",
"rm": "romanshgbe", "rm": "romanshgbe",
"rn": "rundigbe", "rn": "rundigbe",
@ -168,8 +154,24 @@
"yo": "yorubagbe", "yo": "yorubagbe",
"yue": "cantongbe", "yue": "cantongbe",
"zh": "Chinagbe", "zh": "Chinagbe",
"zh_Hans": "tsainagbe",
"zh_Hant": "blema tsainagbe",
"zu": "zulugbe" "zu": "zulugbe"
},
"LocalizedNames": {
"de_AT": "Germaniagbe (Austria)",
"de_CH": "Germaniagbe (Switzerland)",
"en_AU": "Yevugbe (Australia)",
"en_CA": "Yevugbe (Canada)",
"en_GB": "Yevugbe (Britain)",
"en_US": "Yevugbe (America)",
"es_419": "Spanishgbe (Latin America)",
"es_ES": "Spanishgbe (Europe)",
"es_MX": "Spanishgbe (Mexico)",
"fr_CA": "Fransegbe (Canada)",
"fr_CH": "Fransegbe (Switzerland)",
"nl_BE": "Flemishgbe",
"pt_BR": "Portuguesegbe (Brazil)",
"pt_PT": "Portuguesegbe (Europe)",
"zh_Hans": "tsainagbe",
"zh_Hant": "blema tsainagbe"
} }
} }

View File

@ -21,7 +21,6 @@
"ang": "Παλαιά Αγγλικά", "ang": "Παλαιά Αγγλικά",
"anp": "Ανγκικά", "anp": "Ανγκικά",
"ar": "Αραβικά", "ar": "Αραβικά",
"ar_001": "Σύγχρονα Τυπικά Αραβικά",
"arc": "Αραμαϊκά", "arc": "Αραμαϊκά",
"arn": "Αραουκανικά", "arn": "Αραουκανικά",
"arp": "Αραπάχο", "arp": "Αραπάχο",
@ -101,8 +100,6 @@
"dar": "Ντάργκουα", "dar": "Ντάργκουα",
"dav": "Τάιτα", "dav": "Τάιτα",
"de": "Γερμανικά", "de": "Γερμανικά",
"de_AT": "Γερμανικά Αυστρίας",
"de_CH": "Υψηλά Γερμανικά Ελβετίας",
"del": "Ντέλαγουερ", "del": "Ντέλαγουερ",
"den": "Σλαβικά", "den": "Σλαβικά",
"dgr": "Ντόγκριμπ", "dgr": "Ντόγκριμπ",
@ -125,16 +122,9 @@
"el": "Ελληνικά", "el": "Ελληνικά",
"elx": "Ελαμάιτ", "elx": "Ελαμάιτ",
"en": "Αγγλικά", "en": "Αγγλικά",
"en_AU": "Αγγλικά Αυστραλίας",
"en_CA": "Αγγλικά Καναδά",
"en_GB": "Αγγλικά Βρετανίας",
"en_US": "Αγγλικά Αμερικής",
"enm": "Μέσα Αγγλικά", "enm": "Μέσα Αγγλικά",
"eo": "Εσπεράντο", "eo": "Εσπεράντο",
"es": "Ισπανικά", "es": "Ισπανικά",
"es_419": "Ισπανικά Λατινικής Αμερικής",
"es_ES": "Ισπανικά Ευρώπης",
"es_MX": "Ισπανικά Μεξικού",
"et": "Εσθονικά", "et": "Εσθονικά",
"eu": "Βασκικά", "eu": "Βασκικά",
"ewo": "Εγουόντο", "ewo": "Εγουόντο",
@ -148,8 +138,6 @@
"fo": "Φεροϊκά", "fo": "Φεροϊκά",
"fon": "Φον", "fon": "Φον",
"fr": "Γαλλικά", "fr": "Γαλλικά",
"fr_CA": "Γαλλικά Καναδά",
"fr_CH": "Γαλλικά Ελβετίας",
"frc": "Γαλλικά (Λουιζιάνα)", "frc": "Γαλλικά (Λουιζιάνα)",
"frm": "Μέσα Γαλλικά", "frm": "Μέσα Γαλλικά",
"fro": "Παλαιά Γαλλικά", "fro": "Παλαιά Γαλλικά",
@ -331,14 +319,12 @@
"nb": "Νορβηγικά Μποκμάλ", "nb": "Νορβηγικά Μποκμάλ",
"nd": "Βόρεια Ντεμπέλε", "nd": "Βόρεια Ντεμπέλε",
"nds": "Κάτω Γερμανικά", "nds": "Κάτω Γερμανικά",
"nds_NL": "Κάτω Γερμανικά Ολλανδίας",
"ne": "Νεπαλικά", "ne": "Νεπαλικά",
"new": "Νεγουάρι", "new": "Νεγουάρι",
"ng": "Ντόνγκα", "ng": "Ντόνγκα",
"nia": "Νίας", "nia": "Νίας",
"niu": "Νιούε", "niu": "Νιούε",
"nl": "Ολλανδικά", "nl": "Ολλανδικά",
"nl_BE": "Φλαμανδικά",
"nmg": "Κβάσιο", "nmg": "Κβάσιο",
"nn": "Νορβηγικά Νινόρσκ", "nn": "Νορβηγικά Νινόρσκ",
"nnh": "Νγκιεμπούν", "nnh": "Νγκιεμπούν",
@ -379,8 +365,6 @@
"pro": "Παλαιά Προβανσάλ", "pro": "Παλαιά Προβανσάλ",
"ps": "Πάστο", "ps": "Πάστο",
"pt": "Πορτογαλικά", "pt": "Πορτογαλικά",
"pt_BR": "Πορτογαλικά Βραζιλίας",
"pt_PT": "Πορτογαλικά Ευρώπης",
"qu": "Κέτσουα", "qu": "Κέτσουα",
"quc": "Κιτσέ", "quc": "Κιτσέ",
"raj": "Ραζασθάνι", "raj": "Ραζασθάνι",
@ -389,7 +373,6 @@
"rm": "Ρομανικά", "rm": "Ρομανικά",
"rn": "Ρούντι", "rn": "Ρούντι",
"ro": "Ρουμανικά", "ro": "Ρουμανικά",
"ro_MD": "Μολδαβικά",
"rof": "Ρόμπο", "rof": "Ρόμπο",
"rom": "Ρομανί", "rom": "Ρομανί",
"ru": "Ρωσικά", "ru": "Ρωσικά",
@ -447,7 +430,6 @@
"sux": "Σουμερικά", "sux": "Σουμερικά",
"sv": "Σουηδικά", "sv": "Σουηδικά",
"sw": "Σουαχίλι", "sw": "Σουαχίλι",
"sw_CD": "Κονγκό Σουαχίλι",
"swb": "Κομοριανά", "swb": "Κομοριανά",
"syc": "Κλασικά Συριακά", "syc": "Κλασικά Συριακά",
"syr": "Συριακά", "syr": "Συριακά",
@ -521,10 +503,30 @@
"zen": "Ζενάγκα", "zen": "Ζενάγκα",
"zgh": "Τυπικά Ταμαζίτ Μαρόκου", "zgh": "Τυπικά Ταμαζίτ Μαρόκου",
"zh": "Κινεζικά", "zh": "Κινεζικά",
"zh_Hans": "Απλοποιημένα Κινεζικά",
"zh_Hant": "Παραδοσιακά Κινεζικά",
"zu": "Ζουλού", "zu": "Ζουλού",
"zun": "Ζούνι", "zun": "Ζούνι",
"zza": "Ζάζα" "zza": "Ζάζα"
},
"LocalizedNames": {
"ar_001": "Σύγχρονα Τυπικά Αραβικά",
"de_AT": "Γερμανικά Αυστρίας",
"de_CH": "Υψηλά Γερμανικά Ελβετίας",
"en_AU": "Αγγλικά Αυστραλίας",
"en_CA": "Αγγλικά Καναδά",
"en_GB": "Αγγλικά Βρετανίας",
"en_US": "Αγγλικά Αμερικής",
"es_419": "Ισπανικά Λατινικής Αμερικής",
"es_ES": "Ισπανικά Ευρώπης",
"es_MX": "Ισπανικά Μεξικού",
"fr_CA": "Γαλλικά Καναδά",
"fr_CH": "Γαλλικά Ελβετίας",
"nds_NL": "Κάτω Γερμανικά Ολλανδίας",
"nl_BE": "Φλαμανδικά",
"pt_BR": "Πορτογαλικά Βραζιλίας",
"pt_PT": "Πορτογαλικά Ευρώπης",
"ro_MD": "Μολδαβικά",
"sw_CD": "Κονγκό Σουαχίλι",
"zh_Hans": "Απλοποιημένα Κινεζικά",
"zh_Hant": "Παραδοσιακά Κινεζικά"
} }
} }

View File

@ -24,7 +24,6 @@
"ang": "Old English", "ang": "Old English",
"anp": "Angika", "anp": "Angika",
"ar": "Arabic", "ar": "Arabic",
"ar_001": "Modern Standard Arabic",
"arc": "Aramaic", "arc": "Aramaic",
"arn": "Mapuche", "arn": "Mapuche",
"aro": "Araona", "aro": "Araona",
@ -119,8 +118,6 @@
"dar": "Dargwa", "dar": "Dargwa",
"dav": "Taita", "dav": "Taita",
"de": "German", "de": "German",
"de_AT": "Austrian German",
"de_CH": "Swiss High German",
"del": "Delaware", "del": "Delaware",
"den": "Slave", "den": "Slave",
"dgr": "Dogrib", "dgr": "Dogrib",
@ -145,23 +142,15 @@
"el": "Greek", "el": "Greek",
"elx": "Elamite", "elx": "Elamite",
"en": "English", "en": "English",
"en_AU": "Australian English",
"en_CA": "Canadian English",
"en_GB": "British English",
"en_US": "American English",
"enm": "Middle English", "enm": "Middle English",
"eo": "Esperanto", "eo": "Esperanto",
"es": "Spanish", "es": "Spanish",
"es_419": "Latin American Spanish",
"es_ES": "European Spanish",
"es_MX": "Mexican Spanish",
"esu": "Central Yupik", "esu": "Central Yupik",
"et": "Estonian", "et": "Estonian",
"eu": "Basque", "eu": "Basque",
"ewo": "Ewondo", "ewo": "Ewondo",
"ext": "Extremaduran", "ext": "Extremaduran",
"fa": "Persian", "fa": "Persian",
"fa_AF": "Dari",
"fan": "Fang", "fan": "Fang",
"fat": "Fanti", "fat": "Fanti",
"ff": "Fulah", "ff": "Fulah",
@ -172,8 +161,6 @@
"fo": "Faroese", "fo": "Faroese",
"fon": "Fon", "fon": "Fon",
"fr": "French", "fr": "French",
"fr_CA": "Canadian French",
"fr_CH": "Swiss French",
"frc": "Cajun French", "frc": "Cajun French",
"frm": "Middle French", "frm": "Middle French",
"fro": "Old French", "fro": "Old French",
@ -384,7 +371,6 @@
"nb": "Norwegian Bokmål", "nb": "Norwegian Bokmål",
"nd": "North Ndebele", "nd": "North Ndebele",
"nds": "Low German", "nds": "Low German",
"nds_NL": "Low Saxon",
"ne": "Nepali", "ne": "Nepali",
"new": "Newari", "new": "Newari",
"ng": "Ndonga", "ng": "Ndonga",
@ -392,7 +378,6 @@
"niu": "Niuean", "niu": "Niuean",
"njo": "Ao Naga", "njo": "Ao Naga",
"nl": "Dutch", "nl": "Dutch",
"nl_BE": "Flemish",
"nmg": "Kwasio", "nmg": "Kwasio",
"nn": "Norwegian Nynorsk", "nn": "Norwegian Nynorsk",
"nnh": "Ngiemboon", "nnh": "Ngiemboon",
@ -440,8 +425,6 @@
"pro": "Old Provençal", "pro": "Old Provençal",
"ps": "Pashto", "ps": "Pashto",
"pt": "Portuguese", "pt": "Portuguese",
"pt_BR": "Brazilian Portuguese",
"pt_PT": "European Portuguese",
"qu": "Quechua", "qu": "Quechua",
"quc": "Kʼicheʼ", "quc": "Kʼicheʼ",
"qug": "Chimborazo Highland Quichua", "qug": "Chimborazo Highland Quichua",
@ -453,7 +436,6 @@
"rm": "Romansh", "rm": "Romansh",
"rn": "Rundi", "rn": "Rundi",
"ro": "Romanian", "ro": "Romanian",
"ro_MD": "Moldavian",
"rof": "Rombo", "rof": "Rombo",
"rom": "Romany", "rom": "Romany",
"rtm": "Rotuman", "rtm": "Rotuman",
@ -509,7 +491,6 @@
"sog": "Sogdien", "sog": "Sogdien",
"sq": "Albanian", "sq": "Albanian",
"sr": "Serbian", "sr": "Serbian",
"sr_ME": "Montenegrin",
"srn": "Sranan Tongo", "srn": "Sranan Tongo",
"srr": "Serer", "srr": "Serer",
"ss": "Swati", "ss": "Swati",
@ -522,7 +503,6 @@
"sux": "Sumerian", "sux": "Sumerian",
"sv": "Swedish", "sv": "Swedish",
"sw": "Swahili", "sw": "Swahili",
"sw_CD": "Congo Swahili",
"swb": "Comorian", "swb": "Comorian",
"syc": "Classical Syriac", "syc": "Classical Syriac",
"syr": "Syriac", "syr": "Syriac",
@ -611,10 +591,32 @@
"zen": "Zenaga", "zen": "Zenaga",
"zgh": "Standard Moroccan Tamazight", "zgh": "Standard Moroccan Tamazight",
"zh": "Chinese", "zh": "Chinese",
"zh_Hans": "Simplified Chinese",
"zh_Hant": "Traditional Chinese",
"zu": "Zulu", "zu": "Zulu",
"zun": "Zuni", "zun": "Zuni",
"zza": "Zaza" "zza": "Zaza"
},
"LocalizedNames": {
"ar_001": "Modern Standard Arabic",
"de_AT": "Austrian German",
"de_CH": "Swiss High German",
"en_AU": "Australian English",
"en_CA": "Canadian English",
"en_GB": "British English",
"en_US": "American English",
"es_419": "Latin American Spanish",
"es_ES": "European Spanish",
"es_MX": "Mexican Spanish",
"fa_AF": "Dari",
"fr_CA": "Canadian French",
"fr_CH": "Swiss French",
"nds_NL": "Low Saxon",
"nl_BE": "Flemish",
"pt_BR": "Brazilian Portuguese",
"pt_PT": "European Portuguese",
"ro_MD": "Moldavian",
"sr_ME": "Montenegrin",
"sw_CD": "Congo Swahili",
"zh_Hans": "Simplified Chinese",
"zh_Hant": "Traditional Chinese"
} }
} }

View File

@ -2,9 +2,11 @@
"Version": "2.1.48.43", "Version": "2.1.48.43",
"Names": { "Names": {
"bn": "Bengali", "bn": "Bengali",
"en_US": "United States English",
"frc": "frc", "frc": "frc",
"lou": "lou", "lou": "lou"
},
"LocalizedNames": {
"en_US": "United States English",
"ro_MD": "Moldovan" "ro_MD": "Moldovan"
} }
} }

View File

@ -3,7 +3,9 @@
"Names": { "Names": {
"bn": "Bengali", "bn": "Bengali",
"mfe": "Mauritian", "mfe": "Mauritian",
"ro_MD": "Moldovan",
"tvl": "Tuvaluan" "tvl": "Tuvaluan"
},
"LocalizedNames": {
"ro_MD": "Moldovan"
} }
} }

View File

@ -1,6 +1,7 @@
{ {
"Version": "2.1.47.86", "Version": "2.1.47.86",
"Names": { "Names": [],
"LocalizedNames": {
"nds_NL": "West Low German" "nds_NL": "West Low German"
} }
} }

View File

@ -2,5 +2,6 @@
"Version": "2.1.49.14", "Version": "2.1.49.14",
"Names": { "Names": {
"bn": "Bengali" "bn": "Bengali"
} },
"LocalizedNames": []
} }

View File

@ -2,5 +2,6 @@
"Version": "2.1.47.86", "Version": "2.1.47.86",
"Names": { "Names": {
"mi": "Māori" "mi": "Māori"
} },
"LocalizedNames": []
} }

View File

@ -98,8 +98,6 @@
"pl": "pola", "pl": "pola",
"ps": "paŝtoa", "ps": "paŝtoa",
"pt": "portugala", "pt": "portugala",
"pt_BR": "brazilportugala",
"pt_PT": "eŭropportugala",
"qu": "keĉua", "qu": "keĉua",
"rm": "romanĉa", "rm": "romanĉa",
"rn": "burunda", "rn": "burunda",
@ -149,8 +147,12 @@
"yo": "joruba", "yo": "joruba",
"za": "ĝuanga", "za": "ĝuanga",
"zh": "ĉina", "zh": "ĉina",
"zh_Hans": "ĉina simpligita",
"zh_Hant": "ĉina tradicia",
"zu": "zulua" "zu": "zulua"
},
"LocalizedNames": {
"pt_BR": "brazilportugala",
"pt_PT": "eŭropportugala",
"zh_Hans": "ĉina simpligita",
"zh_Hant": "ĉina tradicia"
} }
} }

View File

@ -21,7 +21,6 @@
"ang": "inglés antiguo", "ang": "inglés antiguo",
"anp": "angika", "anp": "angika",
"ar": "árabe", "ar": "árabe",
"ar_001": "árabe estándar moderno",
"arc": "arameo", "arc": "arameo",
"arn": "mapuche", "arn": "mapuche",
"arp": "arapaho", "arp": "arapaho",
@ -100,8 +99,6 @@
"dar": "dargva", "dar": "dargva",
"dav": "taita", "dav": "taita",
"de": "alemán", "de": "alemán",
"de_AT": "alemán austríaco",
"de_CH": "alto alemán suizo",
"del": "delaware", "del": "delaware",
"den": "slave", "den": "slave",
"dgr": "dogrib", "dgr": "dogrib",
@ -124,16 +121,9 @@
"el": "griego", "el": "griego",
"elx": "elamita", "elx": "elamita",
"en": "inglés", "en": "inglés",
"en_AU": "inglés australiano",
"en_CA": "inglés canadiense",
"en_GB": "inglés británico",
"en_US": "inglés estadounidense",
"enm": "inglés medio", "enm": "inglés medio",
"eo": "esperanto", "eo": "esperanto",
"es": "español", "es": "español",
"es_419": "español latinoamericano",
"es_ES": "español de España",
"es_MX": "español de México",
"et": "estonio", "et": "estonio",
"eu": "euskera", "eu": "euskera",
"ewo": "ewondo", "ewo": "ewondo",
@ -147,8 +137,6 @@
"fo": "feroés", "fo": "feroés",
"fon": "fon", "fon": "fon",
"fr": "francés", "fr": "francés",
"fr_CA": "francés canadiense",
"fr_CH": "francés suizo",
"frc": "francés cajún", "frc": "francés cajún",
"frm": "francés medio", "frm": "francés medio",
"fro": "francés antiguo", "fro": "francés antiguo",
@ -334,14 +322,12 @@
"nb": "noruego bokmal", "nb": "noruego bokmal",
"nd": "ndebele septentrional", "nd": "ndebele septentrional",
"nds": "bajo alemán", "nds": "bajo alemán",
"nds_NL": "bajo sajón",
"ne": "nepalí", "ne": "nepalí",
"new": "newari", "new": "newari",
"ng": "ndonga", "ng": "ndonga",
"nia": "nias", "nia": "nias",
"niu": "niueano", "niu": "niueano",
"nl": "neerlandés", "nl": "neerlandés",
"nl_BE": "flamenco",
"nmg": "kwasio", "nmg": "kwasio",
"nn": "noruego nynorsk", "nn": "noruego nynorsk",
"nnh": "ngiemboon", "nnh": "ngiemboon",
@ -382,8 +368,6 @@
"pro": "provenzal antiguo", "pro": "provenzal antiguo",
"ps": "pastún", "ps": "pastún",
"pt": "portugués", "pt": "portugués",
"pt_BR": "portugués de Brasil",
"pt_PT": "portugués de Portugal",
"qu": "quechua", "qu": "quechua",
"quc": "quiché", "quc": "quiché",
"raj": "rajasthani", "raj": "rajasthani",
@ -392,7 +376,6 @@
"rm": "romanche", "rm": "romanche",
"rn": "kirundi", "rn": "kirundi",
"ro": "rumano", "ro": "rumano",
"ro_MD": "moldavo",
"rof": "rombo", "rof": "rombo",
"rom": "romaní", "rom": "romaní",
"ru": "ruso", "ru": "ruso",
@ -450,7 +433,6 @@
"sux": "sumerio", "sux": "sumerio",
"sv": "sueco", "sv": "sueco",
"sw": "suajili", "sw": "suajili",
"sw_CD": "suajili del Congo",
"swb": "comorense", "swb": "comorense",
"syc": "siríaco clásico", "syc": "siríaco clásico",
"syr": "siriaco", "syr": "siriaco",
@ -524,10 +506,30 @@
"zen": "zenaga", "zen": "zenaga",
"zgh": "tamazight estándar marroquí", "zgh": "tamazight estándar marroquí",
"zh": "chino", "zh": "chino",
"zh_Hans": "chino simplificado",
"zh_Hant": "chino tradicional",
"zu": "zulú", "zu": "zulú",
"zun": "zuñi", "zun": "zuñi",
"zza": "zazaki" "zza": "zazaki"
},
"LocalizedNames": {
"ar_001": "árabe estándar moderno",
"de_AT": "alemán austríaco",
"de_CH": "alto alemán suizo",
"en_AU": "inglés australiano",
"en_CA": "inglés canadiense",
"en_GB": "inglés británico",
"en_US": "inglés estadounidense",
"es_419": "español latinoamericano",
"es_ES": "español de España",
"es_MX": "español de México",
"fr_CA": "francés canadiense",
"fr_CH": "francés suizo",
"nds_NL": "bajo sajón",
"nl_BE": "flamenco",
"pt_BR": "portugués de Brasil",
"pt_PT": "portugués de Portugal",
"ro_MD": "moldavo",
"sw_CD": "suajili del Congo",
"zh_Hans": "chino simplificado",
"zh_Hant": "chino tradicional"
} }
} }

View File

@ -25,7 +25,6 @@
"sma": "sami del sur", "sma": "sami del sur",
"st": "sesotho del sur", "st": "sesotho del sur",
"sw": "swahili", "sw": "swahili",
"sw_CD": "swahili (Congo)",
"syr": "siríaco", "syr": "siríaco",
"tet": "tetun", "tet": "tetun",
"tyv": "tuvano", "tyv": "tuvano",
@ -35,5 +34,8 @@
"wuu": "wu", "wuu": "wu",
"xal": "calmuco", "xal": "calmuco",
"zun": "zuni" "zun": "zuni"
},
"LocalizedNames": {
"sw_CD": "swahili (Congo)"
} }
} }

View File

@ -11,9 +11,11 @@
"pa": "punyabí", "pa": "punyabí",
"ss": "siswati", "ss": "siswati",
"sw": "suajili", "sw": "suajili",
"sw_CD": "suajili del Congo",
"tn": "setswana", "tn": "setswana",
"wo": "wolof", "wo": "wolof",
"zgh": "tamazight marroquí estándar" "zgh": "tamazight marroquí estándar"
},
"LocalizedNames": {
"sw_CD": "suajili del Congo"
} }
} }

View File

@ -11,9 +11,11 @@
"pa": "punyabí", "pa": "punyabí",
"ss": "siswati", "ss": "siswati",
"sw": "suajili", "sw": "suajili",
"sw_CD": "suajili del Congo",
"tn": "setswana", "tn": "setswana",
"wo": "wolof", "wo": "wolof",
"zgh": "tamazight marroquí estándar" "zgh": "tamazight marroquí estándar"
},
"LocalizedNames": {
"sw_CD": "suajili del Congo"
} }
} }

View File

@ -11,9 +11,11 @@
"pa": "punyabí", "pa": "punyabí",
"ss": "siswati", "ss": "siswati",
"sw": "suajili", "sw": "suajili",
"sw_CD": "suajili del Congo",
"tn": "setswana", "tn": "setswana",
"wo": "wolof", "wo": "wolof",
"zgh": "tamazight marroquí estándar" "zgh": "tamazight marroquí estándar"
},
"LocalizedNames": {
"sw_CD": "suajili del Congo"
} }
} }

View File

@ -11,9 +11,11 @@
"pa": "punyabí", "pa": "punyabí",
"ss": "siswati", "ss": "siswati",
"sw": "suajili", "sw": "suajili",
"sw_CD": "suajili del Congo",
"tn": "setswana", "tn": "setswana",
"wo": "wolof", "wo": "wolof",
"zgh": "tamazight marroquí estándar" "zgh": "tamazight marroquí estándar"
},
"LocalizedNames": {
"sw_CD": "suajili del Congo"
} }
} }

View File

@ -11,9 +11,11 @@
"pa": "punyabí", "pa": "punyabí",
"ss": "siswati", "ss": "siswati",
"sw": "suajili", "sw": "suajili",
"sw_CD": "suajili del Congo",
"tn": "setswana", "tn": "setswana",
"wo": "wolof", "wo": "wolof",
"zgh": "tamazight marroquí estándar" "zgh": "tamazight marroquí estándar"
},
"LocalizedNames": {
"sw_CD": "suajili del Congo"
} }
} }

Some files were not shown because too many files have changed in this diff Show More