L10n.cs 1.4 KB

1234567891011121314151617181920212223242526272829303132
  1. using System;
  2. namespace TeamAAS.Localization
  3. {
  4. /// <summary>
  5. /// C# 代码侧的翻译入口(非 XAML)。
  6. /// 界面文案用 <see cref="T"/> / <see cref="F"/>,会被构建扫描器收集进语言包;
  7. /// 日志/通知等文案一律用 <see cref="LogText"/>,不进语言包。
  8. /// </summary>
  9. public static class L10n
  10. {
  11. /// <summary>翻译一条界面文案(原文即语言包 key)。</summary>
  12. public static string T(string originalText) => GlobalLocalizationManager.Instance.Translate(originalText);
  13. /// <summary>
  14. /// 翻译带变量的模板文案。模板里用 {0} {1} 占位,
  15. /// 例如 F("执行完成: {0},耗时 {1}ms", result, ms)。
  16. /// 英文语序与中文不同,必须整句做模板,禁止"前缀文本 + 变量"拼接。
  17. /// </summary>
  18. public static string F(string formatText, params object[] args)
  19. => string.Format(GlobalLocalizationManager.Instance.Translate(formatText), args);
  20. }
  21. /// <summary>
  22. /// 日志/通知文本专用入口:刻意不做翻译、不进语言包(key 不随界面翻译维护)。
  23. /// 写日志时用 LogText.Raw("请先选择供料器") 标记意图,扫描器不会收集。
  24. /// </summary>
  25. public static class LogText
  26. {
  27. public static string Raw(string text) => text;
  28. }
  29. }