Skip to content

Commit

Permalink
Merge pull request #423 from xoascf/load-parent-locale
Browse files Browse the repository at this point in the history
Fallback to parent language for missing translations and update Spanish locale
  • Loading branch information
Maplespe authored Dec 2, 2024
2 parents 0e3ecc9 + 5f44094 commit 44b5ded
Show file tree
Hide file tree
Showing 5 changed files with 33 additions and 16 deletions.
14 changes: 10 additions & 4 deletions DWMBlurGlass/Helper/Helper.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -87,14 +87,20 @@ namespace MDWMBlurGlass
return str;
}

std::wstring GetSystemLocalName()
std::pair<std::wstring, std::wstring> GetSystemLocaleAndParent()
{
WCHAR langName[LOCALE_NAME_MAX_LENGTH];
if (GetLocaleInfoEx(LOCALE_NAME_USER_DEFAULT, LOCALE_SNAME, langName, LOCALE_NAME_MAX_LENGTH))
if (GetLocaleInfoEx(LOCALE_NAME_USER_DEFAULT, LOCALE_SNAME, langName, LOCALE_NAME_MAX_LENGTH))
{
return langName;
std::wstring locale = langName;
auto pos = locale.find(L'-');
if (pos != std::wstring::npos)
{
return { locale, std::wstring(locale.substr(0, pos)) };
}
return { locale, locale };
}
return L"en-US";
return { L"en-US", L"en" };
}

std::wstring hrToStr(HRESULT hr)
Expand Down
2 changes: 1 addition & 1 deletion DWMBlurGlass/Helper/Helper.h
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ namespace MDWMBlurGlass

extern std::wstring ReadFileSting(std::wstring_view filePath);

extern std::wstring GetSystemLocalName();
std::pair<std::wstring, std::wstring> GetSystemLocaleAndParent();

extern bool InstallScheduledTasks(std::wstring& errinfo);

Expand Down
14 changes: 10 additions & 4 deletions DWMBlurGlass/MainWindow.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -38,13 +38,19 @@ namespace MDWMBlurGlass
if (!LoadDefualtUIStyle(ui))
return false;

if (!LoadLanguageString(ui, GetSystemLocalName(), true))
auto [locale, parentLocale] = GetSystemLocaleAndParent();
if (!LoadLanguageString(ui, locale, true))
{
if (!LoadLanguageString(ui, L"en-US", true))
return false;
if (!LoadLanguageString(ui, parentLocale, true))
{
if (!LoadLanguageString(ui, L"en-US", true))
return false;
}
}
else if(GetSystemLocalName() != L"en-US")
else if (locale != L"en-US")
{
LoadLanguageString(ui, L"en-US", true, false);
}

const HWND hWnd = (HWND)ctx->Base()->GetWindowHandle();
//SetWindowLongW(hWnd, GWL_STYLE, GetWindowLongW(hWnd, GWL_STYLE) & ~(WS_MAXIMIZEBOX | WS_SIZEBOX));
Expand Down
4 changes: 3 additions & 1 deletion DWMBlurGlass/winmain.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -40,8 +40,10 @@ int APIENTRY wWinMain(_In_ HINSTANCE hInstance,
return 0;
#endif

auto [locale, parentLocale] = MDWMBlurGlass::GetSystemLocaleAndParent();

if (!MDWMBlurGlass::LoadLanguageFileList()
|| (!MDWMBlurGlass::LoadBaseLanguageString(MDWMBlurGlass::GetSystemLocalName())
|| (!MDWMBlurGlass::LoadBaseLanguageString(locale) && !MDWMBlurGlass::LoadBaseLanguageString(parentLocale)
&& !MDWMBlurGlass::LoadBaseLanguageString(L"en-US")))
{
MessageBoxW(nullptr, L"初始化失败: 没有有效的语言文件 (Initialization failed: No valid language file).", L"error", MB_ICONERROR);
Expand Down
15 changes: 9 additions & 6 deletions Languagefiles/es-ES.xml → Languagefiles/es.xml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<lang local="es-ES" author="Amaro Martínez (xoascf)">
<lang local="es" author="Amaro Martínez (xoascf)">
<inituifail0>¡Error al inicializar la biblioteca MiaoUI!\nMensaje de error: </inituifail0>
<inituifail1>¡Error al crear el contexto de ventana!</inituifail1>
<inituifail2>¡Error al inicializar la ventana!</inituifail2>
Expand Down Expand Up @@ -28,12 +28,13 @@
<loadfail>¡Error al cargar el componente!\nMensaje de error: </loadfail>
<saveconfig>Guardar configuración</saveconfig>
<effectset>Configuración de efectos</effectset>
<blurvalue>Radio de desenfoque (global):</blurvalue>
<applyglobal>Redefinir efecto Mica establecido mediante DWMAPI (Win 11)</applyglobal>
<blurvalue>Radio de desenfoque global:</blurvalue>
<overrideDwmapi>Redefinir efecto de DWMAPI (Win 11)</overrideDwmapi>
<extendborder>Extender efectos a bordes (Win 10)</extendborder>
<reflection>Habilitar efecto de reflejo Aero</reflection>
<reflectiontip>(OldBlur sólo para Win 10)</reflectiontip>
<oldBtnSize>Restaurar tamaño de botones de barra de título (estilo de Win 7)</oldBtnSize>
<titlebtnGlow>Habilitar brillo de botones de barra de título (estilo de Win 7)</titlebtnGlow>
<cmodelight>Colores de modo claro</cmodelight>
<cmodedark>Colores de modo oscuro</cmodedark>
<blendcolor>Color fusión de barra de título (activa):</blendcolor>
Expand All @@ -43,11 +44,11 @@
<preview>Vista previa</preview>
<sampletitle>Ejemplo de título de ventana (activa)</sampletitle>
<blurmethod>Método de desenfoque:</blurmethod>
<methodcustom>[Recomendado] Implementación personalizada de desenfoque que usa \nCVisual (DWM) y Windows.UI.Composition (dcomp) para lograr efectos \nde fondo personalizados, puede personalizar la mayoría de los parámetros, \nno sólo puede obtener la máxima eficiencia, sino también la mejor \napariencia y mayor estabilidad. Sin embargo, la compatibilidad no es tan \nbuena ya que puede fallar después de una importante actualización de \nWindows y deberá esperar una nueva versión del programa.</methodcustom>
<methodaccent>[No recomendado] Usa la implementación interna de desenfoque de DWM \nsin eliminar (clase AccentBlurBehind) para aplicar el efecto de desenfoque, \npuede personalizar algunos de los parámetros, pero es ineficiente y \nmenos estable. Puede funcionar normalmente en la mayoría de los \nsistemas, generalmente, una actualización del sistema no lo romperá.</methodaccent>
<methodcustom>[Recomendado] Implementación personalizada de desenfoque que usa \nCVisual (DWM) y Windows.UI.Composition (dcomp) para lograr efectos \nde fondo personalizados, puede personalizar la mayoría de los\nparámetros, no sólo puede obtener la máxima eficiencia, sino también \nla mejor apariencia y mayor estabilidad. Sin embargo, la compatibilidad \nno es tan buena ya que puede fallar después de una importante \nactualización de Windows y deberá esperar una nueva versión del \nprograma.</methodcustom>
<methodaccent>[No recomendado] Usa la implementación interna de desenfoque de \nDWM sin eliminar (clase AccentBlurBehind) para aplicar el efecto de \ndesenfoque, puede personalizar algunos de los parámetros, pero es \nineficiente y menos estable. Puede funcionar normalmente en la mayoría \nde los sistemas, generalmente, una actualización del sistema no lo \nromperá.</methodaccent>
<methoddwmapi>Usa DWMAPI documentado para aplicar el efecto SystemBackdrop \nlimitado, como Acrylic, Mica, no puede personalizar estos parámetros \nen absoluto. Aunque tenga alta eficiencia y mejor estabilidad, puede \nromper la apariencia de algunos programas y sólo está disponible \nen Windows 11 22H2 o superior.</methoddwmapi>
<effecttype>Tipo de efecto:</effecttype>
<blurvaluetitle>Radio de desenfoque (sólo barra de título):</blurvaluetitle>
<blurvaluetitle>Radio de desenfoque (barra de título):</blurvaluetitle>
<luminosity>Opacidad de luminosidad:</luminosity>
<colorBalance>ColorBalance:</colorBalance>
<blurBalance>BlurBalance:</blurBalance>
Expand All @@ -58,6 +59,8 @@
<useaccentcolor>Usar color de énfasis para redefinir configuración de color</useaccentcolor>
<glassIntensity>Opacidad de textura de reflejo Aero:</glassIntensity>
<overrideAccent>Redefinir efecto AccentBlur</overrideAccent>
<scaleOptimizer>Habilitar optimización de renderizado de desenfoque</scaleOptimizer>
<disableOnBattery>Deshabilitar efecto en modo de ahorro de energía</disableOnBattery>
<symbolfile>Archivos de símbolos:</symbolfile>
<download>Descargar</download>
<symtip>Los archivos de símbolos (pdb) son archivos que registran información \nde depuración sobre un programa. Dado que los sistemas varían de una \nversión a otra, debe descargar los archivos de símbolos desde el servidor \nde Microsoft. Si actualiza su sistema, es posible que deba descargar los \narchivos de símbolos nuevamente.</symtip>
Expand Down

0 comments on commit 44b5ded

Please sign in to comment.