Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

251
Vistas
La localización no funciona creando la aplicación en modo de lanzamiento con docker-compose (Docker para Linux) en VS2017

Estoy desarrollando una aplicación en el núcleo de Asp.net que utiliza algunas traducciones según el idioma del usuario.

En mi controlador, intento cargar el mensaje de error desde un archivo .resx. Tengo varios dependiendo del idioma:

 Translations.nl.resx Translations.en.resx Translations.fr.resx Translations.resx (default)

He configurado esto en Startup.cs agregando lo siguiente:

 services.AddLocalization();

Y en el constructor de mi controlador he agregado:

 IStringLocalizer<Translations> localizer

Si construyo mi aplicación en la máquina local en modo Depurar o Liberar, mis traducciones funcionan como se esperaba. También funciona si construyo la aplicación con docker-compose pero en modo de depuración.

Si construyo mi aplicación con docker-compose en modo de lanzamiento, no puedo encontrar la traducción esperada.

Mi Dockerfile se ve así:

 FROM microsoft/dotnet:2.1-aspnetcore-runtime AS base WORKDIR /app EXPOSE 60604 EXPOSE 44327 FROM microsoft/dotnet:2.1-sdk AS build WORKDIR /src COPY MemberDataApi/NuGet.linux.config . COPY MemberDataApi/MemberDataApi.csproj MemberDataApi/ VOLUME /nuget/myrepo/ COPY MemberDataApi/NugetPackage/ /nuget/myrepo/ RUN dotnet restore MemberDataApi/MemberDataApi.csproj COPY . . WORKDIR /src/MemberDataApi RUN dotnet build MemberDataApi.csproj -c Release -o /app --no-restore FROM build AS publish RUN dotnet publish MemberDataApi.csproj -c Release -o /app --no-restore FROM base AS final WORKDIR /app COPY --from=publish /app . ENTRYPOINT ["dotnet", "MemberDataApi.dll"]

¿Alguien puede ayudarme con esto? Cualquier idea de lo que falta en el contenedor o lo que está mal

over 4 years ago · Santiago Trujillo
2 Respuestas
Responde la pregunta

0

Tuve el mismo problema y pasé horas tratando de arreglar algo que no estaba roto porque todo funcionaba perfectamente bien localmente y pensé que se debía a la contenedorización.

En realidad, tuve que agregar esas líneas en mi método Configurar (aplicación IApplicationBuilder, entorno IWebHostEnvironment) en Startup.cs:

 var supportedCultures = new string[] { "en-US", "fr-FR" }; app.UseRequestLocalization(options => options .AddSupportedCultures(supportedCultures) .AddSupportedUICultures(supportedCultures) .SetDefaultCulture("fr-FR") );

Debe precisar qué culturas puede manejar su aplicación.

Puedes encontrar más aquí .

over 4 years ago · Santiago Trujillo Denunciar

0

Tuvimos el mismo problema. Siempre funciona en mi máquina con Windows, pero no funciona en el servidor Linux después de la implementación. Resulta que tuvimos que incluir ambos:

 .AddSupportedCultures(supportedCultures); .AddSupportedUICultures(supportedCultures);
over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda