feat: change some translate (#13568)

This commit is contained in:
2026-08-17 13:58:53 +08:00
committed by GitHub
parent 5ac7c80881
commit b1eff2a893
14 changed files with 45 additions and 14 deletions

View File

@@ -443,7 +443,7 @@ UpdatePortFirewallReload: "Failed to reload the firewall, {{ .err }}, manually r
# mobile app
ErrVerifyToken: 'Token verification failed. Reset and scan again.'
ErrInvalidToken: 'Invalid token. Reset and scan again.'
ErrExpiredToken: 'Token expired. Reset and scan again.'
ErrExpiredToken: 'QR code is no longer valid. Generate a new one and scan again.'
# command export
Name: "Name"

View File

@@ -443,7 +443,7 @@ UpdatePortFirewallReload: "Fallo al recargar el firewall, {{ .err }}, recargue e
# aplicación móvil
ErrVerifyToken: 'Error al verificar el token, por favor restablezca y escanee de nuevo.'
ErrInvalidToken: 'Token inválido, por favor restablezca y escanee de nuevo.'
ErrExpiredToken: 'El token ha expirado, por favor restablezca y escanee de nuevo.'
ErrExpiredToken: 'El código QR ya no es válido. Genere uno nuevo y vuelva a escanearlo.'
# exportación de comandos
Name: "Nombre"

View File

@@ -443,7 +443,7 @@ UpdatePortFirewallReload: "بارگذاری مجدد دیواره آتش نام
# برنامه موبایل
ErrVerifyToken: 'تأیید توکن ناموفق بود. بازنشانی کرده و دوباره اسکن کنید.'
ErrInvalidToken: 'توکن نامعتبر است. بازنشانی کرده و دوباره اسکن کنید.'
ErrExpiredToken: 'توکن منقضی شده است. بازنشانی کرده و دوباره اسکن کنید.'
ErrExpiredToken: 'کد QR دیگر معتبر نیست. یک کد جدید ایجاد و دوباره اسکن کنید.'
# خروجی فرمان
Name: "نام"

View File

@@ -443,7 +443,7 @@ UpdatePortFirewallReload: "ファイアウォールのリロードに失敗し
# モバイルアプリ
ErrVerifyToken: 'トークンの検証エラーです。リセット後、再度QRコードをスキャンしてください。'
ErrInvalidToken: '無効なトークンです。リセット後、再度QRコードをスキャンしてください。'
ErrExpiredToken: 'トークンの有効期限が切れました。リセット後、再度QRコードをスキャンしてください。'
ErrExpiredToken: 'QRコードが無効になりました。再生成してからもう一度スキャンしてください。'
# コマンドエクスポート
Name: "名前"

View File

@@ -443,7 +443,7 @@ UpdatePortFirewallReload: "방화벽 다시 로드 실패 {{ .err }}, 방화벽
# 모바일 앱
ErrVerifyToken: '토큰 검증 오류가 발생했습니다. 재설정 후 다시 스캔해 주세요.'
ErrInvalidToken: '유효하지 않은 토큰입니다. 재설정 후 다시 스캔해 주세요.'
ErrExpiredToken: '토큰이 만료되었습니다. 재설정 후 다시 스캔해 주세요.'
ErrExpiredToken: 'QR 코드가 더 이상 유효하지 않습니다. 새로 생성한 후 다시 스캔해 주세요.'
# 명령 내보내기
Name: "이름"

View File

@@ -443,7 +443,7 @@ UpdatePortFirewallReload: "ໂຫຼດໄຟຣ໌ວໍຄືນໃໝ່ບ
# mobile app
ErrVerifyToken: 'ການກວດສອບໂທເຄັນລົ້ມເຫຼວ. ກະລຸນາຕັ້ງຄ່າຄືນໃໝ່ແລ້ວສະແກນອີກຄັ້ງ.'
ErrInvalidToken: 'ໂທເຄັນບໍ່ຖືກຕ້ອງ. ກະລຸນາຕັ້ງຄ່າຄືນໃໝ່ແລ້ວສະແກນອີກຄັ້ງ.'
ErrExpiredToken: 'ໂທເຄັນໝົດອາຍຸແລ້ວ. ກະລຸນາຕັ້ງຄ່າຄືນໃໝ່ແລ້ວສະແກນອີກຄັ້ງ.'
ErrExpiredToken: 'ລະຫັດ QR ໃຊ້ບໍ່ໄດ້ແລ້ວ. ກະລຸນາສ້າງໃໝ່ແລ້ວສະແກນອີກຄັ້ງ.'
# command export
Name: "ຊື່"

View File

@@ -443,7 +443,7 @@ UpdatePortFirewallReload: "Gagal memuat semula firewall, {{ .err }}, sila muat s
# aplikasi mudah alih
ErrVerifyToken: "Ralat pengesahan token, sila tetapkan semula dan imbas semula"
ErrInvalidToken: "Token tidak sah, sila tetapkan semula dan imbas semula"
ErrExpiredToken: "Token telah tamat tempoh, sila tetapkan semula dan imbas semula"
ErrExpiredToken: 'Kod QR tidak lagi sah. Jana kod baharu dan imbas semula.'
# eksport perintah
Name: "Nama"

View File

@@ -443,7 +443,7 @@ UpdatePortFirewallReload: "Falha ao recarregar o firewall, {{ .err }}, por favor
# aplicativo móvel
ErrVerifyToken: 'Erro de verificação do token, por favor, reinicie e escaneie novamente.'
ErrInvalidToken: 'Token inválido, por favor, reinicie e escaneie novamente.'
ErrExpiredToken: 'O token expirou, por favor, reinicie e escaneie novamente.'
ErrExpiredToken: 'O código QR não é mais válido. Gere um novo e escaneie novamente.'
# exportação de comandos
Name: "Nome"

View File

@@ -443,7 +443,7 @@ UpdatePortFirewallReload: "Не удалось перезагрузить фае
# мобильное приложение
ErrVerifyToken: 'шибка проверки токена, пожалуйста, сбросьте и отсканируйте снова.'
ErrInvalidToken: 'Неверный токен, пожалуйста, сбросьте и отсканируйте снова.'
ErrExpiredToken: 'Токен истек, пожалуйста, сбросьте и отсканируйте снова.'
ErrExpiredToken: 'QR-код недействителен. Создайте новый и отсканируйте его снова.'
# экспорт команд
Name: "Название"

View File

@@ -443,7 +443,7 @@ UpdatePortFirewallReload: "Güvenlik duvarını yeniden yükleme başarısız, {
# mobil uygulama
ErrVerifyToken: 'Token doğrulama hatası, lütfen sıfırlayın ve tekrar tarayın.'
ErrInvalidToken: 'Geçersiz token, lütfen sıfırlayın ve tekrar tarayın.'
ErrExpiredToken: 'Token süresi dolmuş, lütfen sıfırlayın ve tekrar tarayın.'
ErrExpiredToken: 'QR kodu artık geçerli değil. Yeni bir kod oluşturup tekrar tarayın.'
# komut dışa aktarma
Name: "Ad"

View File

@@ -443,7 +443,7 @@ UpdatePortFirewallReload: "防火牆重載失敗,{{ .err }},請您手動重
# 行動端
ErrVerifyToken: '令牌驗證錯誤,請重設後再次掃碼'
ErrInvalidToken: '無效的令牌,請重設後再次掃碼'
ErrExpiredToken: '令牌過期,請重設後再次掃碼'
ErrExpiredToken: '二維碼已失效,請重新產生後再次掃碼'
# 命令匯出
Name: "名稱"

View File

@@ -443,7 +443,7 @@ UpdatePortFirewallReload: "防火墙重载失败,{{ .err }},请您手动重
# 移动端
ErrVerifyToken: '令牌验证错误,请重置后再次扫码'
ErrInvalidToken: '无效的令牌,请重置后再次扫码'
ErrExpiredToken: '令牌过期,请重置后再次扫码'
ErrExpiredToken: '二维码已失效,请重新生成后再次扫码'
# 命令导出
Name: "名称"

View File

@@ -5,6 +5,8 @@ import (
"time"
)
const maxIDGenerationAttempts = 32
type Item[T any] struct {
Value T
ExpiresAt time.Time
@@ -30,15 +32,41 @@ func New[T any](ttl time.Duration, maxEntries int, newID func() string) *Store[T
}
func (s *Store[T]) Set(value T) string {
return s.set(value, true)
}
func (s *Store[T]) TrySet(value T) string {
return s.set(value, false)
}
func (s *Store[T]) set(value T, evictOldest bool) string {
s.mu.Lock()
defer s.mu.Unlock()
s.cleanupExpiredLocked()
itemID := ""
for range maxIDGenerationAttempts {
candidate := s.newID()
if candidate == "" {
continue
}
if _, exists := s.items[candidate]; exists {
continue
}
itemID = candidate
break
}
if itemID == "" {
return ""
}
if len(s.items) >= s.maxEntries {
if !evictOldest {
return ""
}
s.removeOldestLocked()
}
itemID := s.newID()
s.items[itemID] = Item[T]{
Value: value,
ExpiresAt: s.now().Add(s.ttl),

View File

@@ -194,7 +194,10 @@ function buildVisibleMenu(menu: RouteRecordRaw, showSet: Set<string>): RouteReco
const visibleChildren = children
.map((item) => {
if ((item.name === 'Upage' || item.name === 'XApp') && (isIntl.value || (isEE.value && !isAdmin.value))) {
if (item.name === 'Upage' && (isIntl.value || (isEE.value && !isAdmin.value))) {
return null;
}
if (item.name === 'XApp' && isIntl.value) {
return null;
}
return buildVisibleMenu(item, showSet);