Compare commits

..

4 commits

Author SHA1 Message Date
Miheichev Aleksandr Sergeevich
d818270ece
Merge 8500012609 into fce86e1434 2026-03-31 17:46:12 +00:00
Miheichev Aleksandr Sergeevich
8500012609 i18n(ru): complete and improve Russian localization
Translate 9 previously untranslated strings and improve 104 existing
translations in ResUI.ru.resx for accuracy, consistency and
naturalness.

New translations:
- TbCustomDnsRay, TbCustomDnsSingbox — custom DNS labels
- TbIcmpRoutingPolicy, TbInsecureConcurrency, TbLegacyProtect, TbUot
- TbUsername, menuEditFormat, menuEditPaste

Key improvements:
- Unify "перезагрузка" → "перезапуск" for app restart context
- Fix grammar: missing spaces before parentheses, hyphen in
  "по умолчанию", capitalization
- Restore lost parts of original strings (Enter hint, restart notes,
  process in auto-sort list)
- Fix incorrect translations: "системные узлы" → "системный файл
  hosts", "PublicKey" → "Открытый ключ", "Режим VPN" → "Включить TUN"
- Improve naturalness: "Обнулить" → "Сбросить", "Просмотр" → "Обзор",
  "Содействие" → "Продвижение"
- Align checkbox labels to infinitive form per Russian UI conventions
- Standardize terminology across all proxy, routing, DNS settings

15 universal technical abbreviations (LAN, UUID, MTU, TLS, ALPN, SNI,
FakeIP, Bootstrap DNS, etc.) intentionally kept as-is.
2026-03-31 20:45:39 +03:00
DHR60
fce86e1434
Finalmask check (#9024)
Some checks are pending
release Linux / build (Release) (push) Waiting to run
release Linux / deb (push) Blocked by required conditions
release Linux / rpm (push) Blocked by required conditions
release macOS / build (Release) (push) Waiting to run
release Windows desktop (Avalonia UI) / build (Release) (push) Waiting to run
release Windows / build (Release) (push) Waiting to run
2026-03-31 19:33:25 +08:00
DHR60
70003e8a81
Report node validator result (#9025) 2026-03-31 19:30:11 +08:00
3 changed files with 19 additions and 4 deletions

View file

@ -1,3 +1,5 @@
using System.ComponentModel.DataAnnotations;
namespace ServiceLib.Handler.Builder;
public record CoreConfigContextBuilderResult(CoreConfigContext Context, NodeValidatorResult ValidatorResult)
@ -309,6 +311,11 @@ public class CoreConfigContextBuilder
}
var nodeValidatorResult = NodeValidator.Validate(node, context.RunCoreType);
var msgs = new List<string>([.. nodeValidatorResult.Errors, .. nodeValidatorResult.Warnings]);
if (msgs.Count > 0)
{
Logging.SaveLog($"{node.Remarks}: {string.Join("; ", msgs)}");
}
if (!nodeValidatorResult.Success)
{
return nodeValidatorResult;

View file

@ -143,11 +143,19 @@ public class NodeValidator
if (item.Network == nameof(ETransport.xhttp) && !item.Extra.IsNullOrEmpty())
{
if (JsonUtils.ParseJson(item.Extra) is null)
if (JsonUtils.ParseJson(item.Extra) is not JsonObject)
{
v.Error(string.Format(ResUI.MsgInvalidProperty, "XHTTP Extra"));
}
}
if (!item.Finalmask.IsNullOrEmpty())
{
if (JsonUtils.ParseJson(item.Finalmask) is not JsonObject)
{
v.Error(string.Format(ResUI.MsgInvalidProperty, "Finalmask"));
}
}
}
private static string? ValidateSingboxTransport(EConfigType configType, string net)

View file

@ -943,7 +943,7 @@
<value>Шрифт (требуется перезапуск)</value>
</data>
<data name="TbSettingsCurrentFontFamilyTip" xml:space="preserve">
<value>Скопируйте файл шрифта TTF/TTC в каталог gui Fonts и заново откройте окно настроек</value>
<value>Скопируйте файл шрифта TTF/TTC в каталог guiFonts и заново откройте окно настроек</value>
</data>
<data name="TbSettingsSocksPortTip" xml:space="preserve">
<value>PAC-порт = +3; Xray API порт = +4; mihomo API порт = +5;</value>
@ -1117,7 +1117,7 @@
<value>Пользовательский набор правил для sing-box</value>
</data>
<data name="NeedRebootTips" xml:space="preserve">
<value>Операция успешна. Нажмите в меню настроек для перезапуска приложения.</value>
<value>Операция успешна. Закройте приложение, нажав «Выход» в меню трея, и запустите его заново</value>
</data>
<data name="menuOpenTheFileLocation" xml:space="preserve">
<value>Открыть место хранения</value>
@ -1698,4 +1698,4 @@
<data name="TbLegacyProtect" xml:space="preserve">
<value>Устаревшая защита TUN (Legacy Protect)</value>
</data>
</root>
</root>