Comments (19)
Expiration
Language issue
Release 2.0 now fetches from the registry (HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProductName
) instead of WMI. This allows faster launching and proper ARM64 support, however seems that Windows doesn't localize this text, therefore causing it to be in English.
I'm afraid that there might be nothing I could do about this as this is beyond my scope.
from winveruwp.
I'll flag this issue as "won't fix" for now, however I'll try to see if there are anything I could do about the matter.
from winveruwp.
Actually looking further, I could workaround that by checking the edition ID and use resource files, however this approach requires translators for existing languages, which I don't know if I would be able to gather our existing translators.
from winveruwp.
OK turns out that this is much harder than I thought as there are many more edition IDs than I expected.
from winveruwp.
并且忘了说了,我记得1.X的版本仍然保留了应用执行别名“WinverUWP.EXE”和一些启动的协议,是否在2.0版本将其移除或者是忘记添加了?
And I forgot to mention that the 1.x version still retains the application execution alias "winveruwp.exe" and some startup protocols. Did you remove it in version 2.0 or forget to add it?
from winveruwp.
并且忘了说了,我记得1.X的版本仍然保留了应用执行别名“WinverUWP.EXE”和一些启动的协议,是否在2.0版本将其移除或者是忘记添加了? And I forgot to mention that the 1.x version still retains the application execution alias "winveruwp.exe" and some startup protocols. Did you remove it in version 2.0 or forget to add it?
Yeah didn't add it.
from winveruwp.
Well doesn't take much to like fix or anything, however the certification part is quite frustrating and it just finished today so wanna take a break from uploading anything to the Store today.
from winveruwp.
好吧,事实证明,这比我想象的要难得多,因为版本ID比我预期的要多得多。
是的,毕竟除了Windows 包括X86,X64,ARM64这三种系统,这三种系统都有着不同的ID版本,所以能够找到所有版本的ID并做到一一对应也是有些麻烦的。
Yes, after all, there are X86,X64 and ARM64 operating systems besides Windows, all of which have different ID versions, so it is a bit of a hassle to find all versions of ids and make a one to one match.
from winveruwp.
好吧,事实证明,这比我想象的要难得多,因为版本ID比我预期的要多得多。
是的,毕竟除了Windows 包括X86,X64,ARM64这三种系统,这三种系统都有着不同的ID版本,所以能够找到所有版本的ID并做到一一对应也是有些麻烦的。 Yes, after all, there are X86,X64 and ARM64 operating systems besides Windows, all of which have different ID versions, so it is a bit of a hassle to find all versions of ids and make a one to one match.
I don't think it makes an effect on the edition IDs though since the architectures don't have their separate editions, however there are still a lot of editions.
from winveruwp.
And it's basically impossible to grasp all editions (and filter out the unnecessary ones) as there has been no up to date list about them.
from winveruwp.
Here's the most up to date list of unfiltered EditionID
s:
Undefined = 0x00000000,
Ultimate = 0x00000001,
HomeBasic = 0x00000002,
HomePremium = 0x00000003,
Enterprise = 0x00000004,
HomeBasicN = 0x00000005,
Business = 0x00000006,
StandardServer = 0x00000007,
DatacenterServer = 0x00000008,
SmallBusinessServer = 0x00000009,
EnterpriseServer = 0x0000000A,
Starter = 0x0000000B,
DatacenterServerCore = 0x0000000C,
StandardServerCore = 0x0000000D,
EnterpriseServerCore = 0x0000000E,
EnterpriseServerIA64 = 0x0000000F,
BusinessN = 0x00000010,
WebServer = 0x00000011,
ClusterServer = 0x00000012,
HomeServer = 0x00000013,
StorageExpressServer = 0x00000014,
StorageStandardServer = 0x00000015,
StorageWorkgroupServer = 0x00000016,
StorageEnterpriseServer = 0x00000017,
ServerForSmallBusiness = 0x00000018,
SmallBusinessServerPremium = 0x00000019,
HomePremiumN = 0x0000001A,
EnterpriseN = 0x0000001B,
UltimateN = 0x0000001C,
WebServerCore = 0x0000001D,
MediumBusinessServerManagement = 0x0000001E,
MediumBusinessServerSecurity = 0x0000001F,
MediumBusinessServerMessaging = 0x00000020,
ServerFoundation = 0x00000021,
HomePremiumServer = 0x00000022,
ServerForSmallBusinessV = 0x00000023,
StandardServerV = 0x00000024,
DatacenterServerV = 0x00000025,
EnterpriseServerV = 0x00000026,
DatacenterServerCoreV = 0x00000027,
StandardServerCoreV = 0x00000028,
EnterpriseServerCoreV = 0x00000029,
HyperV = 0x0000002A,
StorageExpressServerCore = 0x0000002B,
StorageServerStandardCore = 0x0000002C,
StorageWorkgroupServerCore = 0x0000002D,
StorageEnterpriseServerCore = 0x0000002E,
StarterN = 0x0000002F,
Professional = 0x00000030,
ProfessionalN = 0x00000031,
SBSolutionServer = 0x00000032,
ServerForSBSolutions = 0x00000033,
StandardServerSolutions = 0x00000034,
StandardServerSolutionsCore = 0x00000035,
SBSolutionServerEM = 0x00000036,
ServerForSBSolutionsEM = 0x00000037,
SolutionEmbeddedServer = 0x00000038,
SolutionEmbeddedServerCore = 0x00000039,
ProfessionalEmbedded = 0x0000003A,
EssentialBusinessServerMGMT = 0x0000003B,
EssentialBusinessServerADDL = 0x0000003C,
EssentialBusinessServerMGMTSVC = 0x0000003D,
EssentialBusinessServerADDLSVC = 0x0000003E,
SmallBusinessServerPremiumCore = 0x0000003F,
ClusterServerV = 0x00000040,
Embedded = 0x00000041,
StarterE = 0x00000042,
HomeBasicE = 0x00000043,
HomePremiumE = 0x00000044,
ProfessionalE = 0x00000045,
EnterpriseE = 0x00000046,
UltimateE = 0x00000047,
EnterpriseEvaluation = 0x00000048,
Unknown49,
Prerelease = 0x0000004A,
Unknown4B,
MultipointStandardServer = 0x0000004C,
MultipointPremiumServer = 0x0000004D,
Unknown4E = 0x0000004E,
StandardEvaluationServer = 0x0000004F,
DatacenterEvaluationServer = 0x00000050,
PrereleaseARM = 0x00000051,
PrereleaseN = 0x00000052,
Unknown53,
EnterpriseNEvaluation = 0x00000054,
EmbeddedAutomotive = 0x00000055,
EmbeddedIndustryA = 0x00000056,
ThinPC = 0x00000057,
EmbeddedA = 0x00000058,
EmbeddedIndustry = 0x00000059,
EmbeddedE = 0x0000005A,
EmbeddedIndustryE = 0x0000005B,
EmbeddedIndustryAE = 0x0000005C,
Unknown5D,
Unknown5E,
StorageWorkgroupEvaluationServer = 0x0000005F,
StorageStandardEvaluationServer = 0x00000060,
CoreARM = 0x00000061,
CoreN = 0x00000062,
CoreCountrySpecific = 0x00000063,
CoreSingleLanguage = 0x00000064,
Core = 0x00000065,
Unknown66,
ProfessionalWMC = 0x00000067,
MobileCore = 0x00000068,
EmbeddedIndustryEval = 0x00000069,
EmbeddedIndustryEEval = 0x0000006A,
EmbeddedEval = 0x0000006B,
EmbeddedEEval = 0x0000006C,
NanoServer = 0x0000006D,
CloudStorageServer = 0x0000006E,
CoreConnected = 0x0000006F,
ProfessionalStudent = 0x00000070,
CoreConnectedN = 0x00000071,
ProfessionalStudentN = 0x00000072,
CoreConnectedSingleLanguage = 0x00000073,
CoreConnectedCountrySpecific = 0x00000074,
ConnectedCAR = 0x00000075,
IndustryHandheld = 0x00000076,
PPIPro = 0x00000077,
ARM64Server = 0x00000078,
Education = 0x00000079,
EducationN = 0x0000007A,
IoTUAP = 0x0000007B,
CloudHostInfrastructureServer = 0x0000007C,
EnterpriseS = 0x0000007D,
EnterpriseSN = 0x0000007E,
ProfessionalS = 0x0000007F,
ProfessionalSN = 0x00000080,
EnterpriseSEvaluation = 0x00000081,
EnterpriseSNEvaluation = 0x00000082,
Unknown83,
Unknown84,
Unknown85,
Unknown86,
Holographic = 0x00000087,
HolographicBusiness = 0x00000088,
Unknown89 = 0x00000089,
ProSingleLanguage = 0x0000008A,
ProChina = 0x0000008B,
EnterpriseSubscription = 0x0000008C,
EnterpriseSubscriptionN = 0x0000008D,
Unknown8E,
DatacenterNanoServer = 0x0000008F,
StandardNanoServer = 0x00000090,
DatacenterAServerCore = 0x00000091,
StandardAServerCore = 0x00000092,
DatacenterWSServerCore = 0x00000093,
StandardWSServerCore = 0x00000094,
UtilityVM = 0x00000095,
Unknown96,
Unknown97,
Unknown98,
Unknown99,
Unknown9A,
Unknown9B,
Unknown9C,
Unknown9D,
Unknown9E,
DatacenterEvaluationServerCore = 0x0000009F,
StandardEvaluationServerCore = 0x000000A0,
ProWorkstation = 0x000000A1,
ProWorkstationN = 0x000000A2,
UnknownA3,
ProForEducation = 0x000000A4,
ProForEducationN = 0x000000A5,
UnknownA6,
UnknownA7,
AzureServerCore = 0x000000A8,
AzureNanoServer = 0x000000A9,
UnknownAA = 0x000000AA,
EnterpriseG = 0x000000AB,
EnterpriseGN = 0x000000AC,
UnknownAD,
UnknownAE,
ServerRDSH = 0x000000AF,
UnknownB0,
UnknownB1,
Cloud = 0x000000B2,
CloudN = 0x000000B3,
HubOS = 0x000000B4,
UnknownB5,
OneCoreUpdateOS = 0x000000B6,
CloudE = 0x000000B7,
Andromeda = 0x000000B8,
IoTOS = 0x000000B9,
CloudEN = 0x000000BA,
IoTEdgeOS = 0x000000BB,
IoTEnterprise = 0x000000BC,
Lite = 0x000000BD,
UnknownBE,
IoTEnterpriseS = 0x000000BF,
XboxSystemOS = 0x000000C0,
XboxNativeOS = 0x000000C1,
XboxGameOS = 0x000000C2,
XboxERAOS = 0x000000C3,
XboxDurangoHostOS = 0x000000C4,
XboxScarlettHostOS = 0x000000C5,
AzureStackHCIServerCore = 0x00000196,
TurbineServer = 0x00000197
from winveruwp.
@Gaoyifei1011 OK so I found out that I could use winbrand.dll
in an UWP app, which might localize the edition correctly.
I haven't tested it in WACK though, which is a huge deal, because if my app fails WACK, it might be blocked from being uploaded to the Microsoft Store.
Anyway screenshot of the API working (this is code in a separate project as I am not near the PC I used for WinverUWP development) (text in English, but seems to return the same result as 1.x):
from winveruwp.
@Gaoyifei1011 OK so I found out that I could use
winbrand.dll
in an UWP app, which might localize the edition correctly. I haven't tested it in WACK though, which is a huge deal, because if my app fails WACK, it might be blocked from being uploaded to the Microsoft Store.Anyway screenshot of the API working (this is code in a separate project as I am not near the PC I used for WinverUWP development) (text in English, but seems to return the same result as 1.x):
关于这个,我刚才使用Resource Hacker查看了一下,这次估计应该会显示正确的信息了。
I just checked this out using Resource Hacker, and this time it should show the correct information.
在我的电脑中,C:\Windows\system32\zh-cn\shell32.dll.mui中存放了"%WINDOWS_LONG%"变量,也就是你图片中显示的内容,应该在最终的显示中就能够显示出正确的名称了。但是我不太确定这个"%WINDOWS_LONG%"变量是否会在不同的语言下显示正确的名称,所以可能需要测试一下。
On my computer, C:\Windows\system32\zh-cn\shell32.dll.mui has the "%WINDOWS_LONG%" variable, which is the content displayed in your image, and should show the correct name in the final display. But I'm not sure if the "%WINDOWS_LONG%" variable will display the correct name in different languages, so I might need to test it.
并且我发现微软在不同语言下的shell32.dll.mui中已经存放了不同语言的信息,所以我觉得这是一个更好的方法直接使用微软自己定义的信息内容,不需要其他人翻译就能够多语言支持。(这是我个人的一个看法)
And I found that Microsoft has stored information of different languages in shell32.dll.mui in different languages, so I think it is a better way to directly use the information content defined by Microsoft itself, which can be supported in multiple languages without translation by others. (This is my personal opinion)
from winveruwp.
The only major hiccup now is whether WACK and MS Store would allow me to use this stuff, since this DLL isn't present in any API sets.
from winveruwp.
@Gaoyifei1011 unfortunately using winbrand.dll
causes the app to fail WACK.
from winveruwp.
Another status update: I worked around that fail by just using LoadLibraryW
and GetProcAddress
instead of DllImport
.
from winveruwp.
And it's basically impossible to grasp all editions (and filter out the unnecessary ones) as there has been no up to date list about them.
不仅如此,当微软又发布了一个更新的,且从未见过的操作系统ID时,这个应用就不能及时的显示出操作系统的具体信息了。
Not only that, but when Microsoft released an updated, never-before-seen operating system ID, the application failed to display operating system information in a timely manner.
from winveruwp.
@Gaoyifei1011 unfortunately using
winbrand.dll
causes the app to fail WACK.
额......这是一个很糟糕的结果。
e... This is a very bad result.
from winveruwp.
@Gaoyifei1011 unfortunately using
winbrand.dll
causes the app to fail WACK.额......这是一个很糟糕的结果。 e... This is a very bad result.
- WACK is pretty much an essential test for all UWP apps waiting for Store submissions, as it determines whether you can submit your app to the Microsoft Store. While some tests aren't actually used, there are still tests they will check your app against. If the app fails one of those, the package fails certification.
- Managed to workaround it anyway
Another status update: I worked around that fail by just using LoadLibraryW and GetProcAddress instead of DllImport.
from winveruwp.
Related Issues (12)
- Aesthetic issues, Organization, License Terms link and MS Store HOT 10
- hope to upgrade Windows sdk version HOT 1
- Questions about pull requests and more HOT 2
- Questions about pull requests and more
- Experience field returns nothing on stable builds (2.0) HOT 9
- Special information about Windows specifications HOT 4
- Some Suggestions HOT 5
- Wrong language HOT 4
- Allow to copy only the Windows version HOT 4
- Calling translators! HOT 11
- Problems encountered after version 1.1 upgrade and hope to be improved in the future HOT 12
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from winveruwp.