feat(i18n): 剩余15页全量接入中英(登录/注册/扫码/绑定/佩戴/扫描/治疗/订阅/帮助等)
- 3 个并行 agent 各管 5 页,互不重叠命名空间 - 全 App 18 页均 i18n.bind,22 命名空间/400 键中英对齐 - 动态文案(时长/天数/价格/区域)JS 内 i18n.t 计算;区域标签复用 common.regions
这个提交包含在:
@@ -1,9 +1,10 @@
|
||||
var api = require('../../utils/api')
|
||||
var i18n = require('../../i18n/index')
|
||||
|
||||
Page({
|
||||
data: {
|
||||
statusBarHeight: 44,
|
||||
planName: '年卡会员',
|
||||
planName: '',
|
||||
expiryDate: ''
|
||||
},
|
||||
|
||||
@@ -15,33 +16,56 @@ Page({
|
||||
})
|
||||
},
|
||||
|
||||
onShow: function () {
|
||||
i18n.bind(this)
|
||||
this.render()
|
||||
},
|
||||
|
||||
// Recompute locale-dependent display strings from stored raw values.
|
||||
render: function () {
|
||||
this.setData({
|
||||
planName: this.planNameFor(this._plan),
|
||||
expiryDate: this._expireTime ? this.formatDate(this._expireTime) : ''
|
||||
})
|
||||
},
|
||||
|
||||
planNameFor: function (plan) {
|
||||
if (plan === 'trial') return i18n.t('subSuccess.planTrial')
|
||||
if (plan === 'monthly') return i18n.t('subSuccess.planMonthly')
|
||||
if (plan === 'yearly') return i18n.t('subSuccess.planYearly')
|
||||
return i18n.t('subSuccess.planDefault')
|
||||
},
|
||||
|
||||
formatDate: function (raw) {
|
||||
var date = new Date(raw)
|
||||
var y = date.getFullYear()
|
||||
var m = ('0' + (date.getMonth() + 1)).slice(-2)
|
||||
var d = ('0' + date.getDate()).slice(-2)
|
||||
if (i18n.getLocale() === 'en') return y + '-' + m + '-' + d
|
||||
return y + '年' + m + '月' + d + '日'
|
||||
},
|
||||
|
||||
onLoad: function (options) {
|
||||
var self = this
|
||||
var app = getApp()
|
||||
self.setData({ statusBarHeight: app.globalData.statusBarHeight })
|
||||
|
||||
var planMap = { yearly: '年卡会员', monthly: '月卡会员', trial: '试用会员' }
|
||||
var plan = options.plan || 'yearly'
|
||||
self.setData({ planName: planMap[plan] || '会员' })
|
||||
self._plan = plan
|
||||
|
||||
// Fetch actual subscription expiry from server instead of computing client-side
|
||||
api.getSubscription().then(function (res) {
|
||||
if (res && res.expire_time) {
|
||||
var date = new Date(res.expire_time)
|
||||
var y = date.getFullYear()
|
||||
var m = ('0' + (date.getMonth() + 1)).slice(-2)
|
||||
var d = ('0' + date.getDate()).slice(-2)
|
||||
self.setData({ expiryDate: y + '年' + m + '月' + d + '日' })
|
||||
self._expireTime = res.expire_time
|
||||
}
|
||||
self.render()
|
||||
}).catch(function () {
|
||||
// Fallback: compute from current date if server call fails
|
||||
var durationMap = { yearly: 365, monthly: 30, trial: 7 }
|
||||
var now = new Date()
|
||||
now.setDate(now.getDate() + (durationMap[plan] || 365))
|
||||
var y = now.getFullYear()
|
||||
var m = ('0' + (now.getMonth() + 1)).slice(-2)
|
||||
var d = ('0' + now.getDate()).slice(-2)
|
||||
self.setData({ expiryDate: y + '年' + m + '月' + d + '日' })
|
||||
self._expireTime = now.getTime()
|
||||
self.render()
|
||||
})
|
||||
},
|
||||
|
||||
|
||||
在新工单中引用
屏蔽一个用户