Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[제안] Windows Sandbox Language settings #148

Open
SJang1 opened this issue Dec 30, 2023 · 5 comments
Open

[제안] Windows Sandbox Language settings #148

SJang1 opened this issue Dec 30, 2023 · 5 comments
Assignees
Labels
개선 새로운 기능 요청이나 개선 건의 사항입니다.
Milestone

Comments

@SJang1
Copy link

SJang1 commented Dec 30, 2023

제안해주시는 기능이 소프트웨어로 인해 발생한 문제 때문인가요? 그렇다면 자세히 알려주세요.
영어를 잘 못하는 한국인 입장에서 (특히 ASTX 설치 시) Sandbox 기본 언어 설정이 영어라 불편할 수 있습니다.

어떻게 개선한다면 좋을까요?
Windows Sandbox 기본 언어를 한국어로 설정하고, 타 언어로 바꿀 수 있는 여지를 남겨두는 설정을 제시합니다.

다른 대안이 있을까요?
특별한 대안이 없을 듯 합니다.

@SJang1 SJang1 added the 개선 새로운 기능 요청이나 개선 건의 사항입니다. label Dec 30, 2023
@sleeping-player
Copy link

이거 관련한 조치가 필요한 플러그인이 있습니다.
대법원 전자소송에서 쓰는 Papyrus라는 플러그인이 Visual C++ Redistributable(아 단어 길다...) Runtime 설치하는데
얘가 오류를 일으킵니다.
근데 이거 일반적으로 로케일 그런거 오류잖아요...

@rkttu
Copy link
Member

rkttu commented Jan 19, 2024

샌드박스 안에서 구동되는 OS의 기본 언어 설정 변경 등은 샌드박스 VHDX 이미지 자체를 변경해야 하는 것으로 보입니다. 샌드박스가 뜬 이후에 설정을 변경하는 것들 가운데에서는 샌드박스 자체를 재부팅시켜야 하는 설정들도 있는데, 이런 종류의 설정 값들은 샌드박스가 재부팅을 지원하지 않거나, Windows 11 최신 빌드에서만 재부팅이 지원되기 때문에 일반적인 설정으로 넣을 수가 없습니다.

관련해서 내용을 찾아본 바로는 아래 2개 웹 페이지에서 소개하는 방법으로 샌드박스 OS 이미지를 커스터마이징할 수 있는 것으로 보입니다.

기술적 가능성과 별개로 식탁보에서 샌드박스 OS 이미지를 커스터마이징하는 기능을 추가하는 것은 현재로서는 계획에 없는 부분입니다. 그러나 OS 로캘 설정으로 인한 불편함이 크다면, 정식 기능이 아닌 보조 도구나 스크립트의 형태로 제공할 수 있는 방안이 있는지 검토해보겠습니다.

@rkttu
Copy link
Member

rkttu commented Feb 1, 2024

@sleeping-player 표시 언어를 바꾸는 것과는 별개로, 한글이 깨지는 문제를 수정하기 위하여 #176 이슈를 만들었습니다.

@rkttu rkttu added this to TableCloth Apr 5, 2024
@rkttu rkttu added this to the 1.15.0 milestone Apr 5, 2024
@comadot1
Copy link

서피스 프로8 사용자입니다.
Windows 11 Pro for Workstations 22H2 22621.3296 사용하고 있으며
Windows Sandbox 설치시 기본 영문으로 됩니다.

그래서 위 안내한 방법대로 했더니 한글로 변경되었습니다.
영문으로 되신분들은 위 링크 참조해서 한글로 변경해보시기 바랍니다.

간단히 할 수 있도록 배치파일 첨부드립니다.
단 GUID는 사용자 마다 다르니 수정해서 사용해주세요~


@echo Off
Title Reg Converter v1.2 & Color 1A
cd %systemroot%\system32
call :IsAdmin

reg load HKLM\TEMPHIVE C:\ProgramData\Microsoft\Windows\Containers\BaseImages\be7c4d55-fe5c-42c1-8572-ca74ce9b47a6\BaseLayer\Files\Users\WDAGUtilityAccount\ntuser.dat

Reg.exe add "HKLM\TEMPHIVE\Control Panel\Desktop" /v "PreviousPreferredUILanguages" /t REG_MULTI_SZ /d "ko-KR" /f
Reg.exe add "HKLM\TEMPHIVE\Control Panel\Desktop" /v "PreferredUILanguagesPending" /t REG_MULTI_SZ /d "ko-KR" /f
Reg.exe add "HKLM\TEMPHIVE\Control Panel\International" /v "Locale" /t REG_SZ /d "00000412" /f
Reg.exe add "HKLM\TEMPHIVE\Control Panel\International" /v "LocaleName" /t REG_SZ /d "ko-KR" /f
Reg.exe add "HKLM\TEMPHIVE\Control Panel\International" /v "s1159" /t REG_SZ /d "오전" /f
Reg.exe add "HKLM\TEMPHIVE\Control Panel\International" /v "s2359" /t REG_SZ /d "오후" /f
Reg.exe add "HKLM\TEMPHIVE\Control Panel\International" /v "sCurrency" /t REG_SZ /d "\" /f
Reg.exe add "HKLM\TEMPHIVE\Control Panel\International" /v "sDate" /t REG_SZ /d "-" /f
Reg.exe add "HKLM\TEMPHIVE\Control Panel\International" /v "sDecimal" /t REG_SZ /d "." /f
Reg.exe add "HKLM\TEMPHIVE\Control Panel\International" /v "sGrouping" /t REG_SZ /d "3;0" /f
Reg.exe add "HKLM\TEMPHIVE\Control Panel\International" /v "sLanguage" /t REG_SZ /d "KOR" /f
Reg.exe add "HKLM\TEMPHIVE\Control Panel\International" /v "sList" /t REG_SZ /d "," /f
Reg.exe add "HKLM\TEMPHIVE\Control Panel\International" /v "sLongDate" /t REG_SZ /d "yyyy'년' M'월' d'일' dddd" /f
Reg.exe add "HKLM\TEMPHIVE\Control Panel\International" /v "sMonDecimalSep" /t REG_SZ /d "." /f
Reg.exe add "HKLM\TEMPHIVE\Control Panel\International" /v "sMonGrouping" /t REG_SZ /d "3;0" /f
Reg.exe add "HKLM\TEMPHIVE\Control Panel\International" /v "sMonThousandSep" /t REG_SZ /d "," /f
Reg.exe add "HKLM\TEMPHIVE\Control Panel\International" /v "sNativeDigits" /t REG_SZ /d "0123456789" /f
Reg.exe add "HKLM\TEMPHIVE\Control Panel\International" /v "sNegativeSign" /t REG_SZ /d "-" /f
Reg.exe add "HKLM\TEMPHIVE\Control Panel\International" /v "sPositiveSign" /t REG_SZ /d "" /f
Reg.exe add "HKLM\TEMPHIVE\Control Panel\International" /v "sShortDate" /t REG_SZ /d "yyyy-MM-dd" /f
Reg.exe add "HKLM\TEMPHIVE\Control Panel\International" /v "sThousand" /t REG_SZ /d "," /f
Reg.exe add "HKLM\TEMPHIVE\Control Panel\International" /v "sTime" /t REG_SZ /d ":" /f
Reg.exe add "HKLM\TEMPHIVE\Control Panel\International" /v "sTimeFormat" /t REG_SZ /d "tt h:mm:ss" /f
Reg.exe add "HKLM\TEMPHIVE\Control Panel\International" /v "sShortTime" /t REG_SZ /d "tt h:mm" /f
Reg.exe add "HKLM\TEMPHIVE\Control Panel\International" /v "sYearMonth" /t REG_SZ /d "yyyy'년' M'월'" /f
Reg.exe add "HKLM\TEMPHIVE\Control Panel\International" /v "iCalendarType" /t REG_SZ /d "1" /f
Reg.exe add "HKLM\TEMPHIVE\Control Panel\International" /v "iCountry" /t REG_SZ /d "82" /f
Reg.exe add "HKLM\TEMPHIVE\Control Panel\International" /v "iCurrDigits" /t REG_SZ /d "0" /f
Reg.exe add "HKLM\TEMPHIVE\Control Panel\International" /v "iCurrency" /t REG_SZ /d "0" /f
Reg.exe add "HKLM\TEMPHIVE\Control Panel\International" /v "iDate" /t REG_SZ /d "2" /f
Reg.exe add "HKLM\TEMPHIVE\Control Panel\International" /v "iDigits" /t REG_SZ /d "2" /f
Reg.exe add "HKLM\TEMPHIVE\Control Panel\International" /v "NumShape" /t REG_SZ /d "1" /f
Reg.exe add "HKLM\TEMPHIVE\Control Panel\International" /v "iFirstDayOfWeek" /t REG_SZ /d "6" /f
Reg.exe add "HKLM\TEMPHIVE\Control Panel\International" /v "iFirstWeekOfYear" /t REG_SZ /d "0" /f
Reg.exe add "HKLM\TEMPHIVE\Control Panel\International" /v "iLZero" /t REG_SZ /d "1" /f
Reg.exe add "HKLM\TEMPHIVE\Control Panel\International" /v "iMeasure" /t REG_SZ /d "0" /f
Reg.exe add "HKLM\TEMPHIVE\Control Panel\International" /v "iNegCurr" /t REG_SZ /d "1" /f
Reg.exe add "HKLM\TEMPHIVE\Control Panel\International" /v "iNegNumber" /t REG_SZ /d "1" /f
Reg.exe add "HKLM\TEMPHIVE\Control Panel\International" /v "iPaperSize" /t REG_SZ /d "9" /f
Reg.exe add "HKLM\TEMPHIVE\Control Panel\International" /v "iTime" /t REG_SZ /d "0" /f
Reg.exe add "HKLM\TEMPHIVE\Control Panel\International" /v "iTimePrefix" /t REG_SZ /d "1" /f
Reg.exe add "HKLM\TEMPHIVE\Control Panel\International" /v "iTLZero" /t REG_SZ /d "0" /f
Reg.exe add "HKLM\TEMPHIVE\Control Panel\International\Geo" /v "Nation" /t REG_SZ /d "134" /f
Reg.exe add "HKLM\TEMPHIVE\Control Panel\International\Geo" /v "Name" /t REG_SZ /d "KR" /f
Reg.exe add "HKLM\TEMPHIVE\Control Panel\International\User Profile" /v "Languages" /t REG_MULTI_SZ /d "ko" /f

reg unload HKLM\TEMPHIVE

Exit

:IsAdmin
Reg.exe query "HKU\S-1-5-19\Environment"
If Not %ERRORLEVEL% EQU 0 (
Cls & Echo You must have administrator rights to continue ...
Pause & Exit
)
Cls
goto:eof

@rkttu
Copy link
Member

rkttu commented Apr 12, 2024

@comadot1 스크립트를 손수 작성하고 공유해주셔서 감사합니다. 👍

다만 위의 스크립트를 사용하실 때 주의하실 점이 있으니, 사용하기 전 반드시 아래 사항을 숙지해주시기 바랍니다.

  • Windows Sandbox 이미지를 잘못 수정하여 사용할 경우 Windows Sandbox 기능에 오류가 발생할 수 있습니다.
  • 이 스크립트에서 제안하는 방법은 메인 컴퓨터 레지스트리에 Sandbox OS 내부의 레지스트리 하이브를 임시로 불러오는 것입니다. 만약 스크립트 오류 등의 이유로 레지스트리 언로드가 제대로 이루어지지 않으면 메인 컴퓨터 레지스트리 하이브에 쓰레기 데이터가 남을 수 있습니다.
  • 또한 위의 스크립트가 어떤 동작을 수행하는지 정확한 이해가 없다면 사용하지 않는 것을 권장합니다.

작성해주신 스크립트에 관해서도 몇 가지 피드백을 드립니다. 주로 리팩터링 관련 의견입니다.!

  • GUID 값을 자동으로 찾지 못하는 부분은 PowerShell 스크립트로 만들 경우 해결이 가능한 부분입니다.
  • 파일 경로에서 C:\ 부분은 %SYSTEMDRIVE% 환경 변수로, C:\ProgramData 부분은 %PROGRAMDATA% 환경 변수로, C:\Windows 부분은 %WINDIR% 환경 변수로 치환해두어 C 드라이브가 아닌 다른 드라이브에 Windows OS를 설치한 경우까지 범용적으로 커버할 수 있습니다.
  • 배치 파일에서도 환경 변수를 대입하여 반복되는 부분은 쉽게 치환이 가능합니다. SET 명령을 이용하도록 배치 파일을 리팩토링하시면 좋지 않을까 생각합니다.
  • 배치 파일에서 S-1-5-19 SID 사용자에 대한 하이브 쿼리를 실행하는 방법으로 현재 배치 파일을 실행하는 컨텍스트가 관리자 컨텍스트인지 (권한 상승이 필요없는 컨텍스트인지) 점검하는 부분이 있는데, 혹시 아래 코드로 바꿔보시는 것은 어떨지 의견드려봅니다. (net session 명령어 자체가 관리자 권한을 필요로 하는 명령어입니다.)
      net session >nul 2>&1
      if %errorLevel% == 0 (
          echo Success: Administrative permissions confirmed.
      ) else (
          echo Failure: Current permissions inadequate.
      )
  • 좀 더 많은 분들이 사용하실 수 있도록 GitHub GIST에 올려보시는 것은 어떠실까요?

@rkttu rkttu moved this to Todo in TableCloth Project Nov 30, 2024
@rkttu rkttu moved this from Todo to Backlog in TableCloth Project Nov 30, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
개선 새로운 기능 요청이나 개선 건의 사항입니다.
Projects
Status: Backlog
Status: No status
Development

No branches or pull requests

4 participants