Browse Source

spanish localization

pull/2377/head
Luis Pignataro 7 years ago
parent
commit
5b8a051800
  1. 4
      framework/src/Volo.Abp.Localization/Volo.Abp.Localization.csproj
  2. 34
      framework/src/Volo.Abp.Localization/Volo/Abp/Localization/Resources/AbpValidation/es.json
  3. 4
      framework/src/Volo.Abp.UI.Navigation/Volo.Abp.UI.Navigation.csproj
  4. 2
      framework/src/Volo.Abp.UI.Navigation/Volo/Abp/Ui/Navigation/Localization/Resource/en.json
  5. 6
      framework/src/Volo.Abp.UI.Navigation/Volo/Abp/Ui/Navigation/Localization/Resource/es.json
  6. 58
      framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/es.json
  7. 4
      framework/src/Volo.Abp.UI/Volo.Abp.UI.csproj
  8. 7
      framework/test/Volo.Abp.Localization.Tests/Volo.Abp.Localization.Tests.csproj
  9. 66
      framework/test/Volo.Abp.Localization.Tests/Volo/Abp/Localization/AbpLocalization_Tests.cs
  10. 7
      framework/test/Volo.Abp.Localization.Tests/Volo/Abp/Localization/TestResources/Base/CountryNames/es.json
  11. 7
      framework/test/Volo.Abp.Localization.Tests/Volo/Abp/Localization/TestResources/Base/Validation/es.json
  12. 11
      framework/test/Volo.Abp.Localization.Tests/Volo/Abp/Localization/TestResources/Source/es.json
  13. 6
      framework/test/Volo.Abp.Localization.Tests/Volo/Abp/Localization/TestResources/SourceExt/es.json

4
framework/src/Volo.Abp.Localization/Volo.Abp.Localization.csproj

@ -17,6 +17,10 @@
<EmbeddedResource Include="Volo\Abp\Localization\Resources\**\*.json" />
</ItemGroup>
<ItemGroup>
<None Remove="Volo\Abp\Localization\Resources\AbpValidation\es.json" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="Newtonsoft.Json" Version="12.0.2" />
</ItemGroup>

34
framework/src/Volo.Abp.Localization/Volo/Abp/Localization/Resources/AbpValidation/es.json

@ -0,0 +1,34 @@
{
"culture": "es",
"texts": {
"'{0}' and '{1}' do not match.": "'{0} \" y \"{1} \" no coinciden.",
"The {0} field is not a valid credit card number.": "{0} no es un número de tarjeta de crédito.",
"{0} is not valid.": "{0} no es válido.",
"The {0} field is not a valid e-mail address.": "{0} no es una dirección de correo electrónico válida.",
"The {0} field only accepts files with the following extensions: {1}": "{0} campo sólo acepta archivos con las siguientes extensiones: {1}",
"The field {0} must be a string or array type with a maximum length of '{1}'.": "El campo {0} debe ser una cadena o un array con una longitud máxima de '{1}'.",
"The field {0} must be a string or array type with a minimum length of '{1}'.": "El campo {0} debe ser una cadena o un array con una longitud mínima de '{1}'.",
"The {0} field is not a valid phone number.": "{0} no es un número de teléfono válido.",
"The field {0} must be between {1} and {2}.": "El campo {0} debe ser entre {1} y {2}.",
"The field {0} must match the regular expression '{1}'.": "El campo {0} debe coincidir con la expresión regular '{1}'.",
"The {0} field is required.": "La {0} campo es obligatorio.",
"The field {0} must be a string with a maximum length of {1}.": "El campo {0} debe ser una cadena con una longitud máxima de {1}.",
"The field {0} must be a string with a minimum length of {2} and a maximum length of {1}.": "El campo {0} debe ser una cadena con una longitud mínima de {2} y una longitud máxima de {1}.",
"The {0} field is not a valid fully-qualified http, https, or ftp URL.": "El campo {0} no es una dirección URL válida http, https o ftp.",
"The field {0} is invalid.": "El campo {0} no es válido.",
"ThisFieldIsNotAValidCreditCardNumber.": "Este campo no es un número de tarjeta de crédito.",
"ThisFieldIsNotValid.": "Este campo no es válido.",
"ThisFieldIsNotAValidEmailAddress.": "Este campo no es una dirección de correo electrónico válida.",
"ThisFieldOnlyAcceptsFilesWithTheFollowingExtensions:{0}": "Este campo sólo acepta archivos con las siguientes extensiones: {0}",
"ThisFieldMustBeAStringOrArrayTypeWithAMaximumLengthoOf{0}": "Este campo debe ser una cadena o un array con una longitud máxima de '{0}'.",
"ThisFieldMustBeAStringOrArrayTypeWithAMinimumLengthOf{0}": "Este campo debe ser una cadena o un array con una longitud mínima de '{0}'.",
"ThisFieldIsNotAValidPhoneNumber.": "Este campo no es un número de teléfono válido.",
"ThisFieldMustBeBetween{0}And{1}": "Este campo debe tener un valor entre {0} y {1}.",
"ThisFieldMustMatchTheRegularExpression{0}": "Este campo debe coincidir con la expresión regular '{0}'.",
"ThisFieldIsRequired.": "Este campo es obligatorio.",
"ThisFieldMustBeAStringWithAMaximumLengthOf{0}": "Este campo debe ser una cadena de caracteres con una longitud máxima de {0}.",
"ThisFieldMustBeAStringWithAMinimumLengthOf{1}AndAMaximumLengthOf{0}": "Este campo debe ser una cadena de caracteres con una longitud mínima de {1} y una longitud máxima de {0}.",
"ThisFieldIsNotAValidFullyQualifiedHttpHttpsOrFtpUrl": "Este campo no es una dirección URL válida http, https o ftp.",
"ThisFieldIsInvalid.": "Este campo no es válido."
}
}

4
framework/src/Volo.Abp.UI.Navigation/Volo.Abp.UI.Navigation.csproj

@ -18,6 +18,10 @@
<Content Remove="Volo\Abp\Ui\Navigation\Localization\Resource\*.json" />
</ItemGroup>
<ItemGroup>
<None Remove="Volo\Abp\Ui\Navigation\Localization\Resource\es.json" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\Volo.Abp.UI\Volo.Abp.UI.csproj" />
</ItemGroup>

2
framework/src/Volo.Abp.UI.Navigation/Volo/Abp/Ui/Navigation/Localization/Resource/en.json

@ -1,6 +1,6 @@
{
"culture": "en",
"texts": {
"Menu:Administration": "Administration"
"Menu:Administration": "Administración"
}
}

6
framework/src/Volo.Abp.UI.Navigation/Volo/Abp/Ui/Navigation/Localization/Resource/es.json

@ -0,0 +1,6 @@
{
"culture": "en",
"texts": {
"Menu:Administration": "Administration"
}
}

58
framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/es.json

@ -0,0 +1,58 @@
{
"culture": "en",
"texts": {
"InternalServerErrorMessage": "Ocurrió un error interno en su pedido!",
"ValidationErrorMessage": "Su pedido no es válido!",
"ValidationNarrativeErrorMessageTitle": "Los siguientes errores se encontraton durante la validación.",
"DefaultErrorMessage": "Ocurrió un error!",
"DefaultErrorMessageDetail": "El servidor no envió el detalle del error.",
"DefaultErrorMessage401": "Usted no ha iniciado sessión!",
"DefaultErrorMessage401Detail": "Debe iniciar sessión para ejecutar esta operación.",
"DefaultErrorMessage403": "Usted no está autorizado!",
"DefaultErrorMessage403Detail": "Usted no puede hacer esta operación!",
"DefaultErrorMessage404": "No se encontró el recurso!",
"DefaultErrorMessage404Detail": "El recurso solicitado no se encontró en el servidor!",
"EntityNotFoundErrorMessage": "No hay una entidad {0} con el id = {1}!",
"Error": "Error",
"AreYouSure": "¿Está seguro?",
"Cancel": "Cancelar",
"Yes": "Si",
"No": "No",
"Close": "Cerrar",
"Save": "Guardar",
"SavingWithThreeDot": "Guardando...",
"Actions": "Acciones",
"Delete": "Eliminar",
"Edit": "Editar",
"Refresh": "Refrescar",
"ProcessingWithThreeDot": "Procesando...",
"LoadingWithThreeDot": "Cargando...",
"Welcome": "Bienvenido",
"Login": "Iniciar session",
"Register": "Registrarse",
"Logout": "Cerrar sessión",
"Submit": "Enviar",
"Back": "Atrás",
"PagerSearch": "Buscar",
"PagerNext": "Siguiente",
"PagerPrevious": "Anterior",
"PagerFirst": "Primero",
"PagerLast": "Último",
"PagerInfo": "Mostrando desde _START_ hasta _END_ total _TOTAL_",
"PagerInfoEmpty": "Mostrando desde 0 hasta 0 de 0 registros",
"PagerInfoFiltered": "(filtrado de un total de _MAX_ registros)",
"NoDataAvailableInDatatable": "No hay datos",
"PagerShowMenuEntries": "Mostrar _MENU_ registros",
"DatatableActionDropdownDefaultText": "Acciones",
"ChangePassword": "Cambiar contraseña",
"PersonalInfo": "My perfil",
"AreYouSureYouWantToCancelEditingWarningMessage": "Tiene cambios sin guardar.",
"UnhandledException": "Excepción no controlada!",
"401Message": "No autorizado",
"403Message": "Prohibido",
"404Message": "La página no existe",
"500Message": "Error interno del servidor",
"GoHomePage": "Ir a la página principal",
"GoBack": "Atras"
}
}

4
framework/src/Volo.Abp.UI/Volo.Abp.UI.csproj

@ -17,6 +17,10 @@
<EmbeddedResource Include="Localization\**\*.json" />
<Content Remove="Localization\**\*.json" />
</ItemGroup>
<ItemGroup>
<None Remove="Localization\Resources\AbpUi\es.json" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\Volo.Abp.Localization\Volo.Abp.Localization.csproj" />

7
framework/test/Volo.Abp.Localization.Tests/Volo.Abp.Localization.Tests.csproj

@ -11,6 +11,13 @@
<EmbeddedResource Include="Volo\Abp\Localization\**\*.json" />
</ItemGroup>
<ItemGroup>
<None Remove="Volo\Abp\Localization\TestResources\Base\CountryNames\es.json" />
<None Remove="Volo\Abp\Localization\TestResources\Base\Validation\es.json" />
<None Remove="Volo\Abp\Localization\TestResources\SourceExt\es.json" />
<None Remove="Volo\Abp\Localization\TestResources\Source\es.json" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\AbpTestBase\AbpTestBase.csproj" />
<ProjectReference Include="..\..\src\Volo.Abp.Localization\Volo.Abp.Localization.csproj" />

66
framework/test/Volo.Abp.Localization.Tests/Volo/Abp/Localization/AbpLocalization_Tests.cs

@ -66,6 +66,12 @@ namespace Volo.Abp.Localization
{
_localizer["Car"].Value.ShouldBe("Auto");
}
using (AbpCultureHelper.Use("es"))
{
_localizer["Car"].Value.ShouldBe("Auto");
}
}
[Fact]
@ -85,6 +91,12 @@ namespace Volo.Abp.Localization
{
_localizer["SeeYou"].Value.ShouldBe("Ci vediamo");
}
using (AbpCultureHelper.Use("es"))
{
_localizer["SeeYou"].Value.ShouldBe("Nos vemos");
}
}
[Fact]
@ -102,6 +114,15 @@ namespace Volo.Abp.Localization
{
_localizer["USA"].Value.ShouldBe("Amerika Birleşik Devletleri"); //Inherited from CountryNames/tr.json
}
using (AbpCultureHelper.Use("es"))
{
_localizer["USA"].Value.ShouldBe("Estados unidos de America"); //Inherited from CountryNames/es.json
_localizer["ThisFieldIsRequired"].Value.ShouldBe("El campo no puede estar vacío"); //Inherited from Validation/es.json
_localizer.GetAllStrings().ShouldContain(ls => ls.Name == "USA");
}
}
[Fact]
@ -111,6 +132,13 @@ namespace Volo.Abp.Localization
{
_localizer["MaxLenghtErrorMessage", 42].Value.ShouldBe("This field's length can be maximum of '42' chars"); //Overriden in Source/en.json
}
using (AbpCultureHelper.Use("es"))
{
_localizer["MaxLenghtErrorMessage", 42].Value.ShouldBe("El campo puede tener un máximo de '42' caracteres"); //Overriden in Source/es.json
}
}
[Fact]
@ -121,6 +149,10 @@ namespace Volo.Abp.Localization
_localizer.WithCulture(CultureInfo.GetCultureInfo("tr"))["Car"].Value.ShouldBe("Araba");
_localizer.WithCulture(CultureInfo.GetCultureInfo("tr"))["CarPlural"].Value.ShouldBe("Araba");
_localizer.WithCulture(CultureInfo.GetCultureInfo("es"))["Car"].Value.ShouldBe("Auto");
_localizer.WithCulture(CultureInfo.GetCultureInfo("es"))["CarPlural"].Value.ShouldBe("Autos");
}
[Fact]
@ -142,6 +174,24 @@ namespace Volo.Abp.Localization
ls.ResourceNotFound == false
);
}
using (AbpCultureHelper.Use("es"))
{
var localizedStrings = _localizer.GetAllStrings(true).ToList();
localizedStrings.ShouldContain(
ls => ls.Name == "FortyTwo" &&
ls.Value == "Cuarenta y dos" &&
ls.ResourceNotFound == false
);
localizedStrings.ShouldContain(
ls => ls.Name == "Universe" &&
ls.Value == "Universo" &&
ls.ResourceNotFound == false
);
}
}
[Fact]
@ -161,6 +211,22 @@ namespace Volo.Abp.Localization
ls.ResourceNotFound == false
);
}
using (AbpCultureHelper.Use("es"))
{
var localizedStrings = _localizer.GetAllStrings(false).ToList();
localizedStrings.ShouldNotContain(
ls => ls.Name == "FortyTwo"
);
localizedStrings.ShouldContain(
ls => ls.Name == "Universe" &&
ls.Value == "Universo" &&
ls.ResourceNotFound == false
);
}
}
[Fact]

7
framework/test/Volo.Abp.Localization.Tests/Volo/Abp/Localization/TestResources/Base/CountryNames/es.json

@ -0,0 +1,7 @@
{
"culture": "es",
"texts": {
"USA": "Estados unidos de América",
"Brazil": "Brasil"
}
}

7
framework/test/Volo.Abp.Localization.Tests/Volo/Abp/Localization/TestResources/Base/Validation/es.json

@ -0,0 +1,7 @@
{
"culture": "es",
"texts": {
"ThisFieldIsRequired": "El campo no puede estar vacío",
"MaxLenghtErrorMessage": "El campo puede tener un máximo de '{0}' caracteres"
}
}

11
framework/test/Volo.Abp.Localization.Tests/Volo/Abp/Localization/TestResources/Source/es.json

@ -0,0 +1,11 @@
{
"culture": "es",
"texts": {
"Hello <b>{0}</b>.": "Hola <b>{0}</b>.",
"Car": "Auto",
"CarPlural": "Autos",
"MaxLenghtErrorMessage": "El campo puede tener un máximo de '{0}' caracteres",
"Universe": "Universo",
"FortyTwo": "Curenta y dos"
}
}

6
framework/test/Volo.Abp.Localization.Tests/Volo/Abp/Localization/TestResources/SourceExt/es.json

@ -0,0 +1,6 @@
{
"culture": "es",
"texts": {
"SeeYou": "Nos vemos"
}
}
Loading…
Cancel
Save