Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

249
Views
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 answers
Answer question

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 Report

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!