Tony 1 месяц назад
Родитель
Сommit
e26a761178

+ 1 - 1
lib/app/constants/configs.dart

@@ -13,7 +13,7 @@ class Configs {
   static var websiteUrl = "https:/www.znomo.com";
 
   // 内核使用
-  static const String appName = 'NOMO VPN';
+  static const String appName = 'Nomo VPN';
   // api使用
   static const String productCode = "nomo";
 }

+ 1 - 1
lib/app/modules/home/views/home_view.dart

@@ -608,7 +608,7 @@ class HomeView extends BaseView<HomeController> {
                                     // 位置信息
                                     Expanded(
                                       child: Text(
-                                        '${location.code} - ${location.name}',
+                                        location.name ?? '',
                                         style: TextStyle(
                                           fontSize: 14.sp,
                                           fontWeight: FontWeight.w500,

+ 3 - 2
lib/app/modules/node/controllers/node_controller.dart

@@ -1,5 +1,6 @@
 import 'package:flutter/material.dart';
 import 'package:get/get.dart';
+import '../../../../config/translations/strings_enum.dart';
 import '../../../constants/iconfont/iconfont.dart';
 import '../../../controllers/api_controller.dart';
 import '../../../controllers/core_controller.dart';
@@ -63,13 +64,13 @@ class NodeController extends GetxController {
 
     // 添加 Normal tab
     if (groups?.normal != null && groups!.normal!.list?.isNotEmpty == true) {
-      tabs.add('All');
+      tabs.add(Strings.tabAll.tr);
     }
 
     // 添加 Streaming tab
     if (groups?.streaming != null &&
         groups!.streaming!.list?.isNotEmpty == true) {
-      tabs.add('Streaming');
+      tabs.add(Strings.tabStreaming.tr);
     }
 
     tabTextList = tabs;

+ 2 - 2
lib/app/modules/subscription/controllers/subscription_controller.dart

@@ -200,8 +200,8 @@ class SubscriptionController extends GetxController {
     if (selectedPlan?.payoutType == 'default') {
       await LoadingDialog.show(
         context: Get.context!,
-        loadingText: 'Purchasing...',
-        successText: 'Purchase successful',
+        loadingText: Strings.purchasing.tr,
+        successText: Strings.purchaseSuccess.tr,
         onRequest: () async {
           // 执行你的异步请求
           await apiController.subscribe({

+ 3 - 0
lib/config/theme/ix_theme.dart

@@ -1,3 +1,5 @@
+import 'dart:io';
+
 import 'package:flutter/material.dart';
 import '../../app/data/sp/ix_sp.dart';
 import 'theme_extensions/theme_extension.dart';
@@ -9,6 +11,7 @@ import 'light_theme_colors.dart';
 class IXTheme {
   static getThemeData({required bool isLight}) {
     return ThemeData(
+      fontFamilyFallback: Platform.isWindows ? ["Microsoft YaHei"] : [],
       // main color (app bar,tabs..etc)
       primaryColor: isLight
           ? LightThemeColors.primaryColor

+ 11 - 3
lib/config/translations/strings_enum.dart

@@ -95,7 +95,7 @@ class Strings {
 
   // subscription page
   static const String subscription = 'Subscription';
-  static const String currentSubscription = 'Current subscription';
+  static const String currentSubscription = 'Current Plan';
   static const String upgradeToPremium = 'Upgrade to Premium';
   static const String activatePreCode = 'Activate Pre Code';
   static const String preCodeHint =
@@ -136,7 +136,7 @@ class Strings {
   static const String sorry = 'Sorry';
   static const String unableToLoadData = 'Unable to load data';
   static const String dueLawsAndRegulations =
-      'Due to local laws and regulations, \nNOMOVPN services are not available in \nyour current region.';
+      'Due to local laws and regulations, \nNomo VPN services are not available in \nyour current region.';
 
   // more pages
   static const String sendPreCodeToEmail = 'Send Pre Code to Email';
@@ -314,7 +314,7 @@ class Strings {
   static const String loginButton = 'Log In';
   static const String loginDescription =
       'After a successful login, your free trial will be applied, and the remaining membership will be synced to your account for use across all linked devices.';
-  static const String signup = 'Sign up to NOMO';
+  static const String signup = 'Sign up to Nomo VPN';
   static const String signupButton = 'Sign Up';
   static const String signupDescription =
       'After registration, your free trial will be deducted, and other membership time shifts to your account for multi-device use.';
@@ -518,4 +518,12 @@ class Strings {
   // 错误页面
   static const String pageNotFound = 'pageNotFound';
   static const String backToHome = 'backToHome';
+
+  // 临时购买对话框
+  static const String purchasing = 'Purchasing...';
+  static const String purchaseSuccess = 'Purchase successful';
+
+  // 分组Tab
+  static const String tabAll = 'All';
+  static const String tabStreaming = 'Streaming';
 }

+ 17 - 9
lib/config/translations/zh_CN/zh_cn_translation.dart

@@ -22,7 +22,7 @@ Map<String, String> zhCN = {
   Strings.refresh: '重新加载',
   Strings.unableToConnectNetwork: '请检查您的网络连接',
   Strings.unableToConnectServer: '服务器暂时不可用,请稍后再试',
-  Strings.regionRestricted: '由于当地法律法规限制,Nomo 服务在您所在地区不可用',
+  Strings.regionRestricted: '由于当地法律法规限制,Nomo VPN服务在您所在地区不可用',
   Strings.updateNow: '立即更新',
   Strings.newVersionAvailable: '新版本可用',
 
@@ -95,7 +95,7 @@ Map<String, String> zhCN = {
 
   // subscription page
   Strings.subscription: '购买/订阅',
-  Strings.currentSubscription: '当前订阅',
+  Strings.currentSubscription: '当前套餐',
   Strings.upgradeToPremium: '升级至会员',
   Strings.activatePreCode: '启用 Pre Code',
   Strings.preCodeHint: '如果您有 Pre code,请输入以领取您的 Pre 权益',
@@ -106,7 +106,7 @@ Map<String, String> zhCN = {
   Strings.yourNewPlanBeginsRightAway: '您的新套餐将立即开启',
   Strings.anyUnusedAmountFromYourOldPlan: '您的旧套餐中未使用的金额将添加到新套餐中',
   Strings.youllGetExtraDays: '将根据您的剩余余额折算为额外时长',
-  Strings.premiumsIncluded: 'Premium 权益',
+  Strings.premiumsIncluded: '会员权益',
   Strings.unlockAllFreeLocations: '解锁所有免费节点',
   Strings.unlockSmartMode: '解锁智能模式',
   Strings.unlockMultiHopMode: '解锁多跳模式',
@@ -130,7 +130,7 @@ Map<String, String> zhCN = {
   // country restricted
   Strings.sorry: '抱歉',
   Strings.unableToLoadData: '无法加载数据',
-  Strings.dueLawsAndRegulations: '由于当地法律法规,\nNOMOVPN 服务在您目前所在地区\n不可用。',
+  Strings.dueLawsAndRegulations: '由于当地法律法规,\nNomo VPN服务在您目前所在地区\n不可用。',
 
   // more pages
   Strings.sendPreCodeToEmail: '将 Pre Code 发送至电子邮件',
@@ -177,7 +177,7 @@ Map<String, String> zhCN = {
   Strings.deviceAuthorizedMessage: '新设备已成功授权',
   Strings.relieveDevice: '解绑设备',
   Strings.relieveDeviceMessage: '您确定要解绑',
-  Strings.relieveDeviceLoseAccess: '此设备将失去 Premium 访问权限。',
+  Strings.relieveDeviceLoseAccess: '此设备将失去会员访问权限。',
   Strings.deviceRelieved: '设备已解绑',
   Strings.deviceRelievedMessage: '已从已授权设备中移除',
   Strings.currentDevice: '当前设备',
@@ -244,7 +244,7 @@ Map<String, String> zhCN = {
   Strings.login: '登录',
   Strings.loginButton: '登录',
   Strings.loginDescription: '登录后,您的试用时长不会被清除,将同步到您的注册账号中',
-  Strings.signup: '注册 NOMO',
+  Strings.signup: '注册 Nomo VPN',
   Strings.signupButton: '注册',
   Strings.signupDescription: '注册后,您的试用时长不会被清除,将同步到您的注册账号中',
   Strings.username: '用户名',
@@ -267,7 +267,7 @@ Map<String, String> zhCN = {
   Strings.configureAuthorizedDevices: '配置已授权设备...',
   Strings.authorizeUpTo4DevicesAsPremium:
       '最多授权 @max 台设备为 Premium(@current/@max)',
-  Strings.youCanAuthorizeOtherDevices: '您可以授权其他设备为 Premium 用户(@current/@max)',
+  Strings.youCanAuthorizeOtherDevices: '您可以授权其他设备为会员用户(@current/@max)',
 
   // Pre Code page
   Strings.preCodeInfoMessage: 'Pre Code 是您的高级用户凭证。\n使用它来启用权益或在其他设备上\n同步您的账户。',
@@ -379,11 +379,11 @@ Map<String, String> zhCN = {
   Strings.bindingAccountEmailProtectsPreRights: '会员绑定到注册账号后,可在其它设备上登录并共享会员权益',
   Strings.associatedInterests: '绑定会员权益',
   Strings.associatedInterestsDesc:
-      '1. 在该设备上新注册Nomo帐号后,当前设备上的会员权益,将自动转移到您的注册帐号\n2. 您的会员帐号,可在其它设备上登录共享会员权益',
+      '1. 在该设备上新注册Nomo VPN帐号后,当前设备上的会员权益,将自动转移到您的注册帐号\n2. 您的会员帐号,可在其它设备上登录共享会员权益',
   Strings.notNow: '暂不',
 
   // VPN Error Messages
-  Strings.vpnConnectionTimeoutError: '连接超时,请重试或切换连接节点',
+  Strings.vpnConnectionTimeoutError: '连接超时,请重试或切换节点连接',
   Strings.vpnNoNodeError: '无可用节点',
   Strings.vpnInitError: 'VPN服务初始化失败',
   Strings.vpnKillError: 'VPN服务已被终止',
@@ -475,4 +475,12 @@ Map<String, String> zhCN = {
   // 错误页面
   Strings.pageNotFound: '页面不存在或已被移除',
   Strings.backToHome: '返回首页',
+
+  // 临时购买对话框
+  Strings.purchasing: '正在购买...',
+  Strings.purchaseSuccess: '购买成功',
+
+  // 分组Tab
+  Strings.tabAll: '所有',
+  Strings.tabStreaming: '流媒体',
 };

+ 0 - 2
lib/utils/api_statistics.dart

@@ -2,14 +2,12 @@ import 'dart:async';
 import 'dart:collection';
 import 'dart:convert';
 import 'dart:io';
-import 'package:get/get.dart';
 import 'package:path_provider/path_provider.dart';
 import 'package:uuid/uuid.dart';
 
 import '../app/api/core/api_core_paths.dart';
 import '../app/constants/configs.dart';
 import '../app/constants/enums.dart';
-import '../app/controllers/api_controller.dart';
 import '../app/data/sp/ix_sp.dart';
 import 'log/logger.dart';
 

+ 1 - 1
windows/runner/main.cpp

@@ -8,7 +8,7 @@
 #include "dump.h"
 
 #define APP_MUTEX_NAME L"nomo_win.mutex"
-#define APP_WINDOW_NAME L"NOMO"
+#define APP_WINDOW_NAME L"Nomo VPN"
 
 UINT (*MyGetDpiForWindow) (HWND) = [] (HWND) { return 96u; };
 int (*MyGetSystemMetricsForDpi) (int, UINT) = [] (int nIndex, UINT) { return GetSystemMetrics(nIndex); };