Настройка языка и региональных настроек в контейнере Docker Windows - PullRequest
0 голосов
/ 30 сентября 2019

Я создаю Docker-контейнер на основе базового образа mcr.microsoft.com/dotnet/framework/runtime:4.8.

Для этого изображения установлено значение en_US, что означает, что для всех настроек языка и региона Windows, а также для местоположения по умолчанию задано значение США.

Что мне нужно сделать, это изменить это на en_GB и изменить местоположение на United Kindom для пользователя по умолчанию, потому что у меня есть приложение .Net, которое зависит от сторонней библиотеки, которая использует этовыводить данные в Excel. Однако ничто из того, что я пробовал, похоже, пока не может изменить настройки языка и региона.

То, что я пробовал до сих пор:

  1. Попытка использовать intl.cpl Международные настройки для импорта настроек и обновления пользователя по умолчанию:
# Set Locale and language 
& $env:SystemRoot\System32\control.exe "intl.cpl,,/f:`"UKRegion.xml`""

# Set Languages/culture
Set-Culture en-GB

Содержимое UKRegion.xml:

<gs:GlobalizationServices xmlns:gs="urn:longhornGlobalizationUnattend">
    <!--User List-->
    <gs:UserList>
        <gs:User UserID="Current" CopySettingsToDefaultUserAcct="true" CopySettingsToSystemAcct="true"/> 
    </gs:UserList>

    <!-- user locale -->
    <gs:UserLocale> 
        <gs:Locale Name="en-GB" SetAsCurrent="true"/> 
    </gs:UserLocale>

    <!-- system locale -->
    <gs:SystemLocale Name="en-GB"/>
    <!-- GeoID -->

    <gs:LocationPreferences>
        <gs:GeoID Value="242"/>
    </gs:LocationPreferences>

    <gs:MUILanguagePreferences>
        <gs:MUILanguage Value="en-GB"/>
        <gs:MUIFallback Value="en-US"/>
    </gs:MUILanguagePreferences>

    <!-- input preferences -->
    <gs:InputPreferences>
        <!--en-GB-->
        <gs:InputLanguageID Action="add" ID="0809:00000809" Default="true"/> 
    </gs:InputPreferences>
</gs:GlobalizationServices>
Установка значений перед запуском приложения в сценарии powershell:
Set-WinSystemLocale -SystemLocale en-GB
Set-WinHomeLocation -GeoId 242
Set-WinUserLanguageList -LanguageList (New-WinUserLanguageList -Language en-GB) -Force
Set-Location -Path "C:\\AppFolder"
.\AppExe.exe

После настройки контейнера и присоединения я вижу, что Get-WinHomeLocation обновлено, Get-WinUserLanguageList показываетen_GB в качестве опции, однако язык по умолчанию для окон от Get-WinSystemLocale по-прежнему возвращает en-US

Я также рассмотрел вопрос создания собственного базового образа из базового образа Windows Server Core en-GB и запуска платформыустановка, которую Microsoft запускает для создания образа среды выполнения Framework 4.8, но Microsoft, похоже, не публикует базовый образ en-GB!

Кто-нибудь еще сталкивался с этим? Как вы решили это? Любые другие предложения?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...