国际化方法配置

This commit is contained in:
qf
2023-05-18 16:44:00 +08:00
parent ca8e33ce2d
commit 38e12aa6bf
38 changed files with 952 additions and 600 deletions

View File

@@ -2,13 +2,13 @@ const productUrl = 'https://api.pekolive.com'; // 正式环境
const testUrl = 'https://beta.api.pekolive.com'; // 测试环境
function render (templateId, templateData, target) {
function render(templateId, templateData, target) {
var html = template(templateId, templateData);
target.innerHTML += html;
}
var tranUrl = 'https://api.pekolive.com';
function dateFormat (date, fmt) {
function dateFormat(date, fmt) {
date = new Date(date);
var o = {
'M+': date.getMonth() + 1,
@@ -19,7 +19,7 @@ function dateFormat (date, fmt) {
};
// 补全0
function padLeftZero (str) {
function padLeftZero(str) {
return ('00' + str).substr(str.length);
}
@@ -40,7 +40,7 @@ function dateFormat (date, fmt) {
return fmt;
}
function convert (_url) {
function convert(_url) {
var patt = /\d+/;
var num = _url.match(patt);
var rs = {};
@@ -65,7 +65,7 @@ function convert (_url) {
// }
// 根据域名适配环境
function EnvCheck () {
function EnvCheck() {
if (window.location.href) {
var _url = window.location.href;
var res = _url.match(/uat/);
@@ -84,7 +84,7 @@ function EnvCheck () {
// 根据域名判断 正式环境(含www)/测试环境(含beta), 并返回所需url前缀
// written by zxfxiong
function getUrlPrefix () {
function getUrlPrefix() {
if (!EnvCheck()) return undefined;
return EnvCheck() === 'live' ? productUrl : testUrl;
}
@@ -92,7 +92,7 @@ function getUrlPrefix () {
// 根据域名判断是本地打开还是服务器打开
function locateJudge () {
function locateJudge() {
if (window.location.href) {
var _url = window.location.href;
var res = _url.match(/test|localhost/);
@@ -105,7 +105,7 @@ function locateJudge () {
}
// 获取地址栏参数
function getQueryString () {
function getQueryString() {
var _url = location.search;
var theRequest = new Object();
if (_url.indexOf('?') != -1) {
@@ -119,7 +119,7 @@ function getQueryString () {
}
// 判断浏览器内核,手机类型
function checkVersion () {
function checkVersion() {
var u = navigator.userAgent,
app = navigator.appVersion;
return {
@@ -141,7 +141,7 @@ function checkVersion () {
}
// 图片预加载
function preloadImage (obj) {
function preloadImage(obj) {
console.log(obj)
var loadLength = 0,
newImages = [];
@@ -159,7 +159,7 @@ function preloadImage (obj) {
}
// 判断是否在App内
function isApp () {
function isApp() {
var androidBol = false;
var osBol = false;
if (window.androidJsObj && typeof window.androidJsObj === 'object') {
@@ -173,7 +173,7 @@ function isApp () {
}
function UrlSearch () {
function UrlSearch() {
var name, value;
var str = location.href;
var num = str.indexOf("?")
@@ -190,7 +190,7 @@ function UrlSearch () {
return value;
}
function erbanMask (channel, tags, params) {
function erbanMask(channel, tags, params) {
//此函数用于一般的轻寻底层面罩
var browser = checkVersion();
var env = EnvCheck();
@@ -236,7 +236,7 @@ function erbanMask (channel, tags, params) {
}
}
function wxConfig () {
function wxConfig() {
var wxurl = encodeURIComponent(location.href.split('#')[0]);
var data = "url=" + wxurl;
console.log(data);
@@ -266,11 +266,11 @@ function wxConfig () {
})
}
function refreshWeb () {
function refreshWeb() {
window.location.href = window.location.href;
}
function shareInfo (urlMsg) {
function shareInfo(urlMsg) {
if (urlMsg) {
var env = EnvCheck();
if (env == 'test') {
@@ -281,7 +281,7 @@ function shareInfo (urlMsg) {
}
}
function initNav (obj) {
function initNav(obj) {
if ($.isEmptyObject(obj)) {
return;
}
@@ -442,7 +442,7 @@ var $Loading = {
};
var requestBaseUrl = locateJudge();
// ajax
function request (type, option) {
function request(type, option) {
return $.ajax({
type: type,
url: requestBaseUrl + option.url,
@@ -462,11 +462,11 @@ function request (type, option) {
})
}
// ajax get
function getJSON (option) {
function getJSON(option) {
request('get', option)
}
// ajax post
function postJSON (option) {
function postJSON(option) {
request('post', option);
}
@@ -523,7 +523,7 @@ const methodsFromClient = {
// 全局获取并配置公共参数
// written by zxfxiong
const pubInfo = {};
function getInfoFromClient () {
function getInfoFromClient() {
const browser = checkVersion();
if (browser.app) {
console.log('从客户端获取了用户信息设备信息此信息来源common2.js');
@@ -557,18 +557,82 @@ function getInfoFromClient () {
};
}
};
// 设定语言 fuzzy模糊查询客户端返回的语言
const languageMap = [
{ name: '简体中文', code: 'zh', fuzzy: ['zh', 'zh-Hans', 'zh-'] },
{ name: '繁体中文', code: 'zh', fuzzy: ['zh', 'zh-Hant', 'zh-'] },
{ name: '英语', code: 'en', fuzzy: ['en'] },
{ name: '阿拉伯语', code: 'ar', fuzzy: ['ar','ar-'] },
{ name: '印尼语', code: 'id', fuzzy: ['id', 'in', 'id-', 'in-'] },
{ name: '土耳其语', code: 'tr', fuzzy: ['tr','tr-'] },
];
// 判断当前语言环境
function getLanguageCode(language) {
if (language) {
// language = language.toLowerCase();
for (const item of languageMap) {
// if (item.fuzzy.indexOf(language) !=-1) {
// return item.code;
// }
for (const list of item.fuzzy) {
if (language.indexOf(list) != -1) {
return item.code;
}
}
}
} else {
return 'zh'; // 旧版本返回默认语言
}
}
// 判断国际化参数路径
function fuzzyMatchUpdateQueryStringParameterFun() {
const browser = checkVersion();
if (browser.app) {
if (browser.android) {
console.log('and deviceInfo', JSON.parse(pubInfo.deviceInfo));
let langCode = getLanguageCode(JSON.parse(pubInfo.deviceInfo)["accept-language"]);
history.replaceState(null, null, updateQueryStringParameter(window.location.href, 'lang', langCode));
} else {
setTimeout(function () {
console.log('ios deviceInfo', pubInfo.deviceInfo);
let langCode = getLanguageCode(pubInfo.deviceInfo["accept-language"]);
history.replaceState(null, null, updateQueryStringParameter(window.location.href, 'lang', langCode));
}, 30)
}
} else {
let langCode = getLanguageCode();
history.replaceState(null, null, updateQueryStringParameter(window.location.href, 'lang', langCode));
}
}
// 获取整条url
function updateQueryStringParameter(uri, key, value) {
if (!value) {
return uri;
}
var re = new RegExp("([?&])" + key + "=.*?(&|$)", "i");
var separator = uri.indexOf('?') !== -1 ? "&" : "?";
if (uri.match(re)) {
return uri.replace(re, '$1' + key + "=" + value + '$2');
}
else {
return uri + separator + key + "=" + value;
}
}
// 繁体字转换方法
// fontConvert(true);//调用字体转换函数
// setTimeout(function () {
fontConvert(true);//调用字体转换函数
// fontConvert(true);//调用字体转换函数
// }, 1000)
function fontConvert (fontConvertBool) {
function SconvertT () {//简体转换繁体
function fontConvert(fontConvertBool) {
function SconvertT() {//简体转换繁体
document.head.innerHTML = s2t(document.head.innerHTML);
document.body.innerHTML = s2t(document.body.innerHTML);
// document.body.innerHTML
}
function TconvertS () {//繁体转换简体
function TconvertS() {//繁体转换简体
document.head.innerHTML = t2s(document.head.innerHTML);
document.body.innerHTML = t2s(document.body.innerHTML);
}
@@ -579,7 +643,7 @@ function fontConvert (fontConvertBool) {
}
//功能:转换对象,使用递归,逐层剥到文本;
function transformContent (switcherId, fobj) {
function transformContent(switcherId, fobj) {
if (typeof (fobj) == "object") {
var obj = fobj.childNodes
} else {
@@ -613,12 +677,12 @@ function fontConvert (fontConvertBool) {
}
}
//功能:转换指定字符串;
function transformText (txt, isFt) {
function transformText(txt, isFt) {
if (txt == null || txt == "") return ""
if (parseInt(isFt)) { return s2t(txt) } else { return t2s(txt) }
}
//功能:简体字符转为繁体字符;
function s2t (cc) {
function s2t(cc) {
var str = '', ss = jtpy(), tt = ftpy();
for (var i = 0; i < cc.length; i++) {
var c = cc.charAt(i);
@@ -628,7 +692,7 @@ function fontConvert (fontConvertBool) {
return str;
}
//功能:繁体字符转为简体字符;
function t2s (cc) {
function t2s(cc) {
var str = '', ss = jtpy(), tt = ftpy();
for (var i = 0; i < cc.length; i++) {
var c = cc.charAt(i);
@@ -637,14 +701,14 @@ function fontConvert (fontConvertBool) {
}
return str;
}
function jtpy () {
function jtpy() {
return '号隐爱的魔力之旅週金币榜皑蔼碍翱袄奥坝罢摆败颁办绊帮绑镑谤剥饱宝报鲍辈贝钡狈备惫绷笔毕毙闭边编贬变辩辫鼈瘪濒滨宾摈饼拨钵铂驳卜补参蚕残惭惨灿苍舱仓沧厕侧册测层诧搀掺蝉馋谗缠铲産阐颤场尝长偿肠厂畅钞车彻尘陈衬撑称惩诚骋痴迟驰耻齿炽冲虫宠畴踌筹绸丑橱厨锄雏础储触处传疮闯创锤纯绰辞词赐聪葱囱从丛凑窜错达带贷担单郸掸胆惮诞弹当挡党荡档捣岛祷导盗灯邓敌涤递缔点垫电淀钓调迭谍迭钉顶锭订东动栋冻斗犊独读赌镀锻断缎兑队对吨顿钝夺鹅额讹恶饿儿尔饵贰发罚阀珐矾钒烦范贩饭访纺飞废费纷坟奋愤粪丰枫锋风疯冯缝讽凤肤辐抚辅赋複负讣妇缚该钙盖干赶秆赣冈刚钢纲岗皋镐搁鸽阁铬个给龚宫巩贡鈎沟构购够蛊顾剐关观馆惯贯广规硅归龟闺轨诡柜贵刽辊滚锅国过骇韩汉阂鹤贺横轰鸿红后壶护沪户哗华画划话怀坏欢环还缓换唤痪焕涣黄谎挥辉毁贿秽会烩彙讳诲绘荤浑伙获货祸击机积饥讥鸡绩缉极辑级挤几蓟剂济计记际继纪夹荚颊贾钾价驾歼监坚笺间艰缄茧检碱硷拣捡简俭减荐槛鉴践贱见键舰剑饯渐溅涧浆蒋桨奖讲酱胶浇骄娇搅铰矫侥脚饺缴绞轿较秸阶节茎惊经颈静镜径痉竞淨纠厩旧驹举据锯惧剧鹃绢杰洁结诫届紧锦仅谨进晋烬尽劲荆觉决诀绝钧军骏开凯颗壳课垦恳抠库裤夸块侩宽矿旷况亏岿窥馈溃扩阔蜡腊莱来赖蓝栏拦篮阑兰澜谰揽览懒缆烂滥捞劳涝乐镭垒类泪篱离里鲤礼丽厉励砾曆沥隶俩联莲连镰怜涟帘敛脸链恋炼练粮凉两辆谅疗辽镣猎临邻鳞凛赁龄铃凌灵岭领馏刘龙聋咙笼垄拢陇楼娄搂篓芦卢颅庐炉掳卤虏鲁赂禄录陆驴吕铝侣屡缕虑滤绿峦挛孪滦乱抡轮伦仑沦纶论萝罗逻锣箩骡骆络妈玛码蚂马骂吗买麦卖迈脉瞒馒蛮满谩猫锚铆贸么霉没镁门闷们锰梦谜弥觅绵缅庙灭悯闽鸣铭谬谋亩钠纳难挠脑恼闹馁腻撵捻酿鸟聂齧镊镍柠狞甯拧泞钮纽脓浓农疟诺欧鸥殴呕沤盘庞国爱赔喷鹏骗飘频贫苹凭评泼颇扑铺朴谱脐齐骑岂啓气弃讫牵扦釺铅迁签谦钱钳潜浅谴堑枪呛牆蔷强抢锹桥乔侨翘窍窃钦亲轻氢倾顷请庆琼穷趋区躯驱龋颧权劝却鹊让饶扰绕热韧认纫荣绒软锐闰润洒萨鳃赛伞丧骚扫涩杀纱筛晒闪陝赡缮伤赏烧绍赊摄慑设绅审婶肾渗声绳胜圣师狮湿诗尸时蚀实识驶势释饰视试寿兽枢输书赎属术树竖数帅双谁税顺说硕烁丝饲耸怂颂讼诵擞苏诉肃虽绥岁孙损笋缩琐锁獭挞抬摊贪瘫滩坛谭谈歎汤烫涛縧腾誊锑题体屉条贴铁厅听烃铜统头图涂团颓蜕脱鸵驮驼椭洼袜弯湾顽万网韦违围爲潍维苇伟僞纬谓卫温闻纹稳问瓮挝蜗涡窝呜钨乌诬无芜吴坞雾务误锡牺袭习铣戏细虾辖峡侠狭厦锨鲜纤咸贤衔闲显险现献县馅羡宪线厢镶乡详响项萧销晓啸蝎协挟携胁谐写泻谢锌衅兴汹鏽绣虚嘘须许绪续轩悬选癣绚学勳询寻驯训讯逊压鸦鸭哑亚讶阉烟盐严顔阎豔厌砚彦谚验鸯杨扬疡阳痒养样瑶摇尧遥窑谣药爷页业叶医铱颐遗仪彝蚁艺亿忆义诣议谊译异绎荫阴银饮樱婴鹰应缨莹萤营荧蝇颖哟拥佣痈踊咏涌优忧邮铀犹游诱舆鱼渔娱与屿语吁御狱誉预驭鸳渊辕园员圆缘远愿约跃钥岳粤悦阅云郧匀陨运蕴酝晕韵杂灾载攒暂赞赃髒凿枣灶责择则泽贼赠扎札轧铡闸诈斋债毡盏斩辗崭栈战绽张涨帐账胀赵蛰辙锗这贞针侦诊镇阵挣睁狰帧郑证织职执纸挚掷帜质锺终种肿衆诌轴皱昼骤猪诸诛烛瞩嘱贮铸筑驻专砖转赚桩庄装妆壮状锥赘坠缀谆浊兹资渍踪综总纵邹诅组鑽緻钟么为隻凶准启闆裡雳馀鍊洩并';
}
function ftpy () {
function ftpy() {
return '號隱愛的魔力之旅週金幣榜皚藹礙翺襖奧壩罷擺敗頒辦絆幫綁鎊謗剝飽寶報鮑輩貝鋇狽備憊繃筆畢斃閉邊編貶變辯辮鼈癟瀕濱賓擯餅撥缽鉑駁蔔補參蠶殘慚慘燦蒼艙倉滄廁側冊測層詫攙摻蟬饞讒纏鏟産闡顫場嘗長償腸廠暢鈔車徹塵陳襯撐稱懲誠騁癡遲馳恥齒熾沖蟲寵疇躊籌綢醜櫥廚鋤雛礎儲觸處傳瘡闖創錘純綽辭詞賜聰蔥囪從叢湊竄錯達帶貸擔單鄲撣膽憚誕彈當擋黨蕩檔搗島禱導盜燈鄧敵滌遞締點墊電澱釣調疊諜疊釘頂錠訂東動棟凍鬥犢獨讀賭鍍鍛斷緞兌隊對噸頓鈍奪鵝額訛惡餓兒爾餌貳發罰閥琺礬釩煩範販飯訪紡飛廢費紛墳奮憤糞豐楓鋒風瘋馮縫諷鳳膚輻撫輔賦複負訃婦縛該鈣蓋幹趕稈贛岡剛鋼綱崗臯鎬擱鴿閣鉻個給龔宮鞏貢鈎溝構購夠蠱顧剮關觀館慣貫廣規矽歸龜閨軌詭櫃貴劊輥滾鍋國過駭韓漢閡鶴賀橫轟鴻紅後壺護滬戶嘩華畫劃話懷壞歡環還緩換喚瘓煥渙黃謊揮輝毀賄穢會燴彙諱誨繪葷渾夥獲貨禍擊機積饑譏雞績緝極輯級擠幾薊劑濟計記際繼紀夾莢頰賈鉀價駕殲監堅箋間艱緘繭檢堿鹼揀撿簡儉減薦檻鑒踐賤見鍵艦劍餞漸濺澗漿蔣槳獎講醬膠澆驕嬌攪鉸矯僥腳餃繳絞轎較稭階節莖驚經頸靜鏡徑痙競淨糾廄舊駒舉據鋸懼劇鵑絹傑潔結誡屆緊錦僅謹進晉燼盡勁荊覺決訣絕鈞軍駿開凱顆殼課墾懇摳庫褲誇塊儈寬礦曠況虧巋窺饋潰擴闊蠟臘萊來賴藍欄攔籃闌蘭瀾讕攬覽懶纜爛濫撈勞澇樂鐳壘類淚籬離裏鯉禮麗厲勵礫曆瀝隸倆聯蓮連鐮憐漣簾斂臉鏈戀煉練糧涼兩輛諒療遼鐐獵臨鄰鱗凜賃齡鈴淩靈嶺領餾劉龍聾嚨籠壟攏隴樓婁摟簍蘆盧顱廬爐擄鹵虜魯賂祿錄陸驢呂鋁侶屢縷慮濾綠巒攣孿灤亂掄輪倫侖淪綸論蘿羅邏鑼籮騾駱絡媽瑪碼螞馬罵嗎買麥賣邁脈瞞饅蠻滿謾貓錨鉚貿麼黴沒鎂門悶們錳夢謎彌覓綿緬廟滅憫閩鳴銘謬謀畝鈉納難撓腦惱鬧餒膩攆撚釀鳥聶齧鑷鎳檸獰寧擰濘鈕紐膿濃農瘧諾歐鷗毆嘔漚盤龐國愛賠噴鵬騙飄頻貧蘋憑評潑頗撲鋪樸譜臍齊騎豈啓氣棄訖牽扡釺鉛遷簽謙錢鉗潛淺譴塹槍嗆牆薔強搶鍬橋喬僑翹竅竊欽親輕氫傾頃請慶瓊窮趨區軀驅齲顴權勸卻鵲讓饒擾繞熱韌認紉榮絨軟銳閏潤灑薩鰓賽傘喪騷掃澀殺紗篩曬閃陝贍繕傷賞燒紹賒攝懾設紳審嬸腎滲聲繩勝聖師獅濕詩屍時蝕實識駛勢釋飾視試壽獸樞輸書贖屬術樹豎數帥雙誰稅順說碩爍絲飼聳慫頌訟誦擻蘇訴肅雖綏歲孫損筍縮瑣鎖獺撻擡攤貪癱灘壇譚談歎湯燙濤縧騰謄銻題體屜條貼鐵廳聽烴銅統頭圖塗團頹蛻脫鴕馱駝橢窪襪彎灣頑萬網韋違圍爲濰維葦偉僞緯謂衛溫聞紋穩問甕撾蝸渦窩嗚鎢烏誣無蕪吳塢霧務誤錫犧襲習銑戲細蝦轄峽俠狹廈鍁鮮纖鹹賢銜閑顯險現獻縣餡羨憲線廂鑲鄉詳響項蕭銷曉嘯蠍協挾攜脅諧寫瀉謝鋅釁興洶鏽繡虛噓須許緒續軒懸選癬絢學勳詢尋馴訓訊遜壓鴉鴨啞亞訝閹煙鹽嚴顔閻豔厭硯彥諺驗鴦楊揚瘍陽癢養樣瑤搖堯遙窯謠藥爺頁業葉醫銥頤遺儀彜蟻藝億憶義詣議誼譯異繹蔭陰銀飲櫻嬰鷹應纓瑩螢營熒蠅穎喲擁傭癰踴詠湧優憂郵鈾猶遊誘輿魚漁娛與嶼語籲禦獄譽預馭鴛淵轅園員圓緣遠願約躍鑰嶽粵悅閱雲鄖勻隕運蘊醞暈韻雜災載攢暫贊贓髒鑿棗竈責擇則澤賊贈紮劄軋鍘閘詐齋債氈盞斬輾嶄棧戰綻張漲帳賬脹趙蟄轍鍺這貞針偵診鎮陣掙睜猙幀鄭證織職執紙摯擲幟質鍾終種腫衆謅軸皺晝驟豬諸誅燭矚囑貯鑄築駐專磚轉賺樁莊裝妝壯狀錐贅墜綴諄濁茲資漬蹤綜總縱鄒詛組鑽緻鐘麼為隻兇準啟闆裡靂餘鍊洩並';
}
//功能:获取指定名称的 Cookie 值;
function readCookie (name) {
function readCookie(name) {
var value = "";
if (document.cookie.length > 0) {
var prefix = name + "=";
@@ -659,7 +723,7 @@ function fontConvert (fontConvertBool) {
return value;
}
//功能:设置指定名称的 Cookie 值;
function writeCookie (name, value, days) {
function writeCookie(name, value, days) {
var argv = writeCookie.arguments;
var argc = writeCookie.arguments.length;
var days = (argc > 2) ? argv[2] : null;
@@ -676,7 +740,7 @@ function fontConvert (fontConvertBool) {
// isDefaultFt 当前文档默认是否为繁体中文;
// delay 页面加载后的转换延迟时间,单位毫秒;
// 使用的 Cookie 变量名称isCurrentFt
function initPageLanguage (switcherId, isDefaultFt, delay) {
function initPageLanguage(switcherId, isDefaultFt, delay) {
isDefaultFt = isDefaultFt ? "1" : "0";
var switcherObj = document.getElementById(switcherId)
isCurrentFt = readCookie("isCurrentFt")
@@ -702,17 +766,17 @@ function fontConvert (fontConvertBool) {
//initPageLanguage("switcher_link", false, 50);
}
// 封装数值超过最大数位处理单位
function unitProcessing (val, num, toFixeds, text) { //值 以什么为单位 保留几位小数 单位后最w
function unitProcessing(val, num, toFixeds, text) { //值 以什么为单位 保留几位小数 单位后最w
return val > num ? (Math.floor(val / 1000) / 10).toFixed(toFixeds) + text : val;
}
// 封装 在ios环境中 配置公共参数的回调函数
// 配合 methodsFromClient[infoName].ios 方法
// written by zxfxiong
function getMessage (key, value) {
function getMessage(key, value) {
pubInfo[key] = value;
}
function objToParam (a) {
function objToParam(a) {
var s = [],
rbracket = /\[\]$/,
isArray = function (obj) {
@@ -758,7 +822,7 @@ function objToParam (a) {
// 封装 jquery 请求
// written by zxfxiong
function networkRequest (reqObj = {}, type) {
function networkRequest(reqObj = {}, type) {
// 关于reqObj内部参数与 调用原生$.ajax()时传参一致
// 调用该函数前:须保证事先调用了 getInfoFromClient()
if (typeof pubInfo.deviceInfo === 'string') {

View File

@@ -0,0 +1,55 @@
/**
* 初始化当前语言
*/
function initLocalLang () {
const lang = localStorage.getItem('lang')
// if (lang === 'zh' || window.location.href.match('=zh-CN')) {
// console.log("langHandler" + '简体')
// // 将 zh-CN.js中的对象langZhCN设置到window.lang中
// window.lang = langZh-CN
// window.lang.code = 'zh-CN'
// window.lang.defaults = false
// } else
if (lang === 'zh' || window.location.href.match('=zh')) {
console.log("langHandler" + '繁体')
window.lang = langZh
window.lang.code = 'zh'
window.lang.defaults = false
} else if (lang === 'ar' || window.location.href.match('=ar')) {
// 阿拉伯
console.log("langHandler" + '阿拉伯')
window.lang = langAr
window.lang.code = 'ar'
window.lang.defaults = false
} else if (lang === 'en' || window.location.href.match('=en')) {
// 英语
console.log("langHandler" + '英语')
window.lang = langEn
window.lang.code = 'en'
window.lang.defaults = false
} else if (lang === 'id' || window.location.href.match('=id')) {
// 印度尼西亚
console.log("langHandler" + '印尼')
window.lang = langId
window.lang.code = 'Id'
window.lang.defaults = false
}else if (lang === 'tr' || window.location.href.match('=tr')) {
// 土耳其
console.log("langHandler" + '土耳其')
window.lang = langTr
window.lang.code = 'Tr'
window.lang.defaults = false
} else {
console.log("langHandler" + '默认')
window.lang = langZh
window.lang.code = null
window.lang.defaults = true
}
window.lang.replace = (Lang, defaultText) => {
if (Lang) {
return Lang
}
return defaultText
}
}

View File

@@ -1,358 +1,319 @@
@charset "UTF-8";
body,
html {
height: 100%;
background: #F3F5FA;
}
body .logingActive,
html .logingActive {
position: fixed;
left: 50%;
top: 50%;
transform: translate(-50%, -50%);
width: 100%;
height: 1rem;
line-height: 1rem;
font-size: 0.48rem;
text-align: center;
border-radius: 0.1333333333rem;
color: #fff;
background: rgba(0, 0, 0, 0.6);
z-index: 999;
padding: 0 0.2rem;
display: none;
}
body .wx_skip,
html .wx_skip {
position: fixed;
left: 0;
top: 0;
bottom: 0;
right: 0;
background: rgba(0, 0, 0, 0.8);
z-index: 9999999999;
display: none;
}
body .wx_skip img,
html .wx_skip img {
width: 80%;
height: 5.373333rem;
position: absolute;
left: 50%;
top: 5%;
transform: translateX(-50%);
}
body .header,
html .header {
width: 100%;
height: 6.6666666667rem;
background: #000;
margin: 0 auto;
background: linear-gradient(180deg, #F2E0FF 0%, #FAF7FE 100%);
}
body .header .header_top,
html .header .header_top {
width: 100%;
height: 1.1733333333rem;
line-height: 1.1733333333rem;
box-sizing: border-box;
padding: 0 0.4rem;
display: flex;
justify-content: space-between;
}
body .header .header_top .header_top_left,
html .header .header_top .header_top_left {
min-width: 4rem;
height: 100%;
position: relative;
margin-left: 0.8rem;
}
body .header .header_top .header_top_left img,
html .header .header_top .header_top_left img {
position: absolute;
width: 0.8rem;
height: 0.8rem;
top: 50%;
transform: translateY(-50%);
left: -0.9333333333rem;
}
body .header .header_top .header_top_left b,
html .header .header_top .header_top_left b {
color: #333;
font-size: 0.48rem;
}
body .header .header_top .header_top_right,
html .header .header_top .header_top_right {
min-width: 0.6666666667rem;
height: 100%;
position: relative;
}
body .header .header_top .header_top_right img,
html .header .header_top .header_top_right img {
position: absolute;
width: 0.5866666667rem;
height: 0.5866666667rem;
top: 50%;
transform: translateY(-50%);
left: -0.72rem;
}
body .header .header_top .header_top_right b,
html .header .header_top .header_top_right b {
color: #1F1A4E;
font-size: 0.3733333333rem;
}
body .header .user,
html .header .user {
background: #FFFFFF;
outline: none;
border: none;
width: 8.9333333333rem;
height: 0.8533333333rem;
border-radius: 0.8533333333rem;
margin: 0.5333333333rem auto 0;
display: block;
box-sizing: border-box;
padding: 0 0.1333333333rem;
font-size: 0.4rem;
padding: 0rem 0.4rem;
}
body .pay_method,
html .pay_method {
width: 9.2rem;
min-height: 3rem;
background: #fff;
box-shadow: 0px 0px 0.3733333333rem 0px rgba(0, 0, 0, 0.1);
margin: -3.5rem auto 0;
border-radius: 0.1333333333rem;
box-sizing: border-box;
padding: 0.3733333333rem 0.2666666667rem;
}
body .pay_method p,
html .pay_method p {
font-size: 0.3733333333rem;
color: #999;
width: 100%;
height: 0.8rem;
}
body .pay_method .methodBox,
html .pay_method .methodBox {
display: flex;
flex-wrap: wrap;
}
body .pay_method .methods,
html .pay_method .methods {
width: 30%;
min-height: 2.5rem;
display: flex;
flex-wrap: wrap;
padding-left: 0.285rem;
margin-bottom: 0.1rem;
}
body .pay_method .methods span,
html .pay_method .methods span {
float: left;
display: block;
width: 2.5rem;
height: 1.7333333333rem;
background: #F0F5F6;
border-radius: 0.16rem;
position: relative;
margin-bottom: 1rem;
margin-right: 0.3rem;
box-sizing: border-box;
}
body .pay_method .methods span img,
html .pay_method .methods span img {
position: absolute;
left: 50%;
top: 50%;
transform: translate(-50%, -50%);
width: 1.8rem;
height: 1.5rem;
border-radius: 50%;
overflow: hidden;
}
body .pay_method .methods span p,
html .pay_method .methods span p {
color: #B3B3C3;
font-size: 0.32rem;
width: 100%;
text-align: center;
position: absolute;
left: 0;
top: 1.9rem;
}
body .pay_method .methods .active,
html .pay_method .methods .active {
background: url(../images/jvxing.png) no-repeat;
background-size: 100% 100%;
}
body .pay_method .methods .active p,
html .pay_method .methods .active p {
color: #9168FA;
}
body .pay_number,
html .pay_number {
width: 9.2rem;
min-height: 8.3333333333rem;
background: #fff;
box-shadow: 0px 0px 0.3733333333rem 0px rgba(0, 0, 0, 0.1);
margin: 0.5333333333rem auto 1.3333333333rem;
padding: 0.2666666667rem 0.2666666667rem;
box-sizing: border-box;
border-radius: 0.1333333333rem;
}
body .pay_number p,
html .pay_number p {
width: 100%;
height: 0.8rem;
color: #999;
font-size: 0.3733333333rem;
}
body .pay_number .number,
html .pay_number .number {
width: 100%;
display: flex;
justify-content: space-between;
flex-wrap: wrap;
}
body .pay_number .number span,
html .pay_number .number span {
display: block;
width: 4.1866666667rem;
height: 2.24rem;
background: #F0F5F6;
border-radius: 0.16rem;
position: relative;
margin-bottom: 0.5333333333rem;
}
body .pay_number .number span b,
html .pay_number .number span b {
position: absolute;
color: #333;
font-size: 0.4533333333rem;
left: 0.2666666667rem;
top: 0.2666666667rem;
}
body .pay_number .number span i,
html .pay_number .number span i {
position: absolute;
color: #333;
font-size: 0.32rem;
right: 0.2666666667rem;
bottom: 0.2666666667rem;
font-style: normal;
}
body .pay_number .number .active,
html .pay_number .number .active {
background: url(../images/active.png) no-repeat;
background-size: 100% 100%;
}
body .pay_number .but1,
html .pay_number .but1 {
color: #B3B3C3;
font-size: 0.4266666667rem;
width: 8.1066666667rem;
height: 1.2266666667rem;
border-radius: 1.4933333333rem;
line-height: 1.2266666667rem;
margin: 0 auto;
text-align: center;
background: #E6E6F0;
}
body .pay_number .but2,
html .pay_number .but2 {
color: #fff;
font-size: 0.4266666667rem;
width: 8.1066666667rem;
height: 1.2266666667rem;
border-radius: 1.4933333333rem;
line-height: 1.2266666667rem;
margin: 0 auto;
text-align: center;
background: linear-gradient(255deg, #CC66FF 1%, #9CB3FF 52%, #13E2F5 100%);
display: none;
}
body .pop_up,
html .pop_up {
position: fixed;
left: 0;
top: 0;
bottom: 0;
right: 0;
background: rgba(0, 0, 0, 0.6);
z-index: 99;
display: none;
}
body .pop_up .pop_up_in,
html .pop_up .pop_up_in {
position: absolute;
left: 50%;
top: 50%;
transform: translate(-50%, -50%);
width: 8rem;
min-height: 2.933333rem;
background: #fff;
border-radius: 0.32rem;
text-align: center;
font-size: 0.4266666667rem;
color: #333;
}
body .pop_up .pop_up_in b,
html .pop_up .pop_up_in b {
width: 100%;
height: 1.5466666667rem;
line-height: 1.5466666667rem;
}
body .pop_up .pop_up_in p,
html .pop_up .pop_up_in p {
width: 100%;
height: 1.0666666667rem;
line-height: 1.0666666667rem;
border-top: 1px solid #ccc;
}
body .stance,
html .stance {
position: fixed;
left: 0;
top: 0;
bottom: 0;
right: 0;
background: #fff;
z-index: 999;
display: none;
}
body .stance .picture,
html .stance .picture {
width: 8rem;
height: 8rem;
background: url(../images/null.png) no-repeat;
background-size: 100% 100%;
position: absolute;
left: 50%;
top: 40%;
transform: translate(-50%, -50%);
position: relative;
}
body .stance .picture span,
html .stance .picture span {
font-size: 0.64rem;
color: #999999;
position: absolute;
left: 50%;
bottom: -1.5rem;
transform: translateX(-56%);
width: 100%;
white-space: nowrap;
}
input::-webkit-input-placeholder {
/* placeholder颜色 */
color: #929198;
/* placeholder字体大小 */
font-size: 0.32rem;
/* placeholder位置 */
text-align: center;
}
/*# sourceMappingURL=index.css.map */
@charset "UTF-8";
body,
html {
height: 100%;
background: #F3F5FA; }
body .logingActive,
html .logingActive {
position: fixed;
left: 50%;
top: 50%;
transform: translate(-50%, -50%);
width: 100%;
height: 1rem;
line-height: 1rem;
font-size: 0.48rem;
text-align: center;
border-radius: 0.1333333333rem;
color: #fff;
background: rgba(0, 0, 0, 0.6);
z-index: 999;
padding: 0 0.2rem;
display: none; }
body .wx_skip,
html .wx_skip {
position: fixed;
left: 0;
top: 0;
bottom: 0;
right: 0;
background: rgba(0, 0, 0, 0.8);
z-index: 9999999999;
display: none; }
body .wx_skip img,
html .wx_skip img {
width: 80%;
height: 5.373333rem;
position: absolute;
left: 50%;
top: 5%;
transform: translateX(-50%); }
body .header,
html .header {
width: 100%;
height: 6.6666666667rem;
background: #000;
margin: 0 auto;
background: linear-gradient(180deg, #F2E0FF 0%, #FAF7FE 100%); }
body .header .header_top,
html .header .header_top {
width: 100%;
height: 1.1733333333rem;
line-height: 1.1733333333rem;
box-sizing: border-box;
padding: 0 0.4rem;
display: flex;
justify-content: space-between; }
body .header .header_top .header_top_left,
html .header .header_top .header_top_left {
min-width: 4rem;
height: 100%;
position: relative;
margin-left: 0.8rem; }
body .header .header_top .header_top_left img,
html .header .header_top .header_top_left img {
position: absolute;
width: 0.8rem;
height: 0.8rem;
top: 50%;
transform: translateY(-50%);
left: -0.9333333333rem; }
body .header .header_top .header_top_left b,
html .header .header_top .header_top_left b {
color: #333;
font-size: 0.48rem; }
body .header .header_top .header_top_right,
html .header .header_top .header_top_right {
min-width: 0.6666666667rem;
height: 100%;
position: relative; }
body .header .header_top .header_top_right img,
html .header .header_top .header_top_right img {
position: absolute;
width: 0.5866666667rem;
height: 0.5866666667rem;
top: 50%;
transform: translateY(-50%);
left: -0.72rem; }
body .header .header_top .header_top_right b,
html .header .header_top .header_top_right b {
color: #1F1A4E;
font-size: 0.3733333333rem; }
body .header .user,
html .header .user {
background: #FFFFFF;
outline: none;
border: none;
width: 8.9333333333rem;
height: 0.8533333333rem;
border-radius: 0.8533333333rem;
margin: 0.5333333333rem auto 0;
display: block;
box-sizing: border-box;
padding: 0 0.1333333333rem;
font-size: 0.4rem;
padding: 0rem 0.4rem; }
body .pay_method,
html .pay_method {
width: 9.2rem;
min-height: 3rem;
background: #fff;
box-shadow: 0px 0px 0.3733333333rem 0px rgba(0, 0, 0, 0.1);
margin: -3.5rem auto 0;
border-radius: 0.1333333333rem;
box-sizing: border-box;
padding: 0.3733333333rem 0.2666666667rem; }
body .pay_method p,
html .pay_method p {
font-size: 0.3733333333rem;
color: #999;
width: 100%;
height: 0.8rem; }
body .pay_method .methodBox,
html .pay_method .methodBox {
display: flex;
flex-wrap: wrap; }
body .pay_method .methods,
html .pay_method .methods {
width: 30%;
min-height: 2.5rem;
display: flex;
flex-wrap: wrap;
padding-left: 0.285rem;
margin-bottom: 0.1rem; }
body .pay_method .methods span,
html .pay_method .methods span {
float: left;
display: block;
width: 2.5rem;
height: 1.7333333333rem;
background: #F0F5F6;
border-radius: 0.16rem;
position: relative;
margin-bottom: 1rem;
margin-right: 0.3rem;
box-sizing: border-box; }
body .pay_method .methods span img,
html .pay_method .methods span img {
position: absolute;
left: 50%;
top: 50%;
transform: translate(-50%, -50%);
width: 1.5rem;
height: 1.5rem;
border-radius: 50%;
overflow: hidden; }
body .pay_method .methods span p,
html .pay_method .methods span p {
color: #B3B3C3;
font-size: 0.32rem;
width: 100%;
text-align: center;
position: absolute;
left: 0;
top: 1.9rem; }
body .pay_method .methods .active,
html .pay_method .methods .active {
background: url(../images/jvxing.png) no-repeat;
background-size: 100% 100%; }
body .pay_method .methods .active p,
html .pay_method .methods .active p {
color: #9168FA; }
body .pay_number,
html .pay_number {
width: 9.2rem;
min-height: 8.3333333333rem;
background: #fff;
box-shadow: 0px 0px 0.3733333333rem 0px rgba(0, 0, 0, 0.1);
margin: 0.5333333333rem auto 1.3333333333rem;
padding: 0.2666666667rem 0.2666666667rem;
box-sizing: border-box;
border-radius: 0.1333333333rem; }
body .pay_number p,
html .pay_number p {
width: 100%;
height: 0.8rem;
color: #999;
font-size: 0.3733333333rem; }
body .pay_number .number,
html .pay_number .number {
width: 100%;
display: flex;
justify-content: space-between;
flex-wrap: wrap; }
body .pay_number .number span,
html .pay_number .number span {
display: block;
width: 4.1866666667rem;
height: 2.24rem;
background: #F0F5F6;
border-radius: 0.16rem;
position: relative;
margin-bottom: 0.5333333333rem; }
body .pay_number .number span b,
html .pay_number .number span b {
position: absolute;
color: #333;
font-size: 0.4533333333rem;
left: 0.2666666667rem;
top: 0.2666666667rem; }
body .pay_number .number span i,
html .pay_number .number span i {
position: absolute;
color: #333;
font-size: 0.32rem;
right: 0.2666666667rem;
bottom: 0.2666666667rem;
font-style: normal; }
body .pay_number .number .active,
html .pay_number .number .active {
background: url(../images/active.png) no-repeat;
background-size: 100% 100%; }
body .pay_number .but1,
html .pay_number .but1 {
color: #B3B3C3;
font-size: 0.4266666667rem;
width: 8.1066666667rem;
height: 1.2266666667rem;
border-radius: 1.4933333333rem;
line-height: 1.2266666667rem;
margin: 0 auto;
text-align: center;
background: #E6E6F0; }
body .pay_number .but2,
html .pay_number .but2 {
color: #fff;
font-size: 0.4266666667rem;
width: 8.1066666667rem;
height: 1.2266666667rem;
border-radius: 1.4933333333rem;
line-height: 1.2266666667rem;
margin: 0 auto;
text-align: center;
background: linear-gradient(255deg, #CC66FF 1%, #9CB3FF 52%, #13E2F5 100%);
display: none; }
body .pop_up,
html .pop_up {
position: fixed;
left: 0;
top: 0;
bottom: 0;
right: 0;
background: rgba(0, 0, 0, 0.6);
z-index: 99;
display: none; }
body .pop_up .pop_up_in,
html .pop_up .pop_up_in {
position: absolute;
left: 50%;
top: 50%;
transform: translate(-50%, -50%);
width: 8rem;
min-height: 2.933333rem;
background: #fff;
border-radius: 0.32rem;
text-align: center;
font-size: 0.4266666667rem;
color: #333; }
body .pop_up .pop_up_in b,
html .pop_up .pop_up_in b {
width: 100%;
height: 1.5466666667rem;
line-height: 1.5466666667rem; }
body .pop_up .pop_up_in p,
html .pop_up .pop_up_in p {
width: 100%;
height: 1.0666666667rem;
line-height: 1.0666666667rem;
border-top: 1px solid #ccc; }
body .stance,
html .stance {
position: fixed;
left: 0;
top: 0;
bottom: 0;
right: 0;
background: #fff;
z-index: 999;
display: none; }
body .stance .picture,
html .stance .picture {
width: 8rem;
height: 8rem;
background: url(../images/null.png) no-repeat;
background-size: 100% 100%;
position: absolute;
left: 50%;
top: 40%;
transform: translate(-50%, -50%);
position: relative; }
body .stance .picture span,
html .stance .picture span {
font-size: 0.64rem;
color: #999999;
position: absolute;
left: 50%;
bottom: -1.5rem;
transform: translateX(-56%);
width: 100%;
white-space: nowrap; }
input::-webkit-input-placeholder {
/* placeholder颜色 */
color: #929198;
/* placeholder字体大小 */
font-size: 0.32rem;
/* placeholder位置 */
text-align: center; }
/*# sourceMappingURL=index.css.map */

View File

@@ -176,7 +176,7 @@ html {
left: 50%;
top: 50%;
transform: translate(-50%, -50%);
width: 1.8rem;
width: 1.5rem;
height: 1.5rem;
border-radius: 50%;
overflow: hidden;

View File

@@ -94,6 +94,12 @@
<script src="../../common/js/pingpp.js"></script>
<script src="../../common/js/common2.js?v=8.0"></script>
<script src="../../common/js/layer.js"></script>
<script src="./local/zh.js"></script>
<script src="./local/en.js"></script>
<script src="./local/ar.js"></script>
<script src="./local/id.js"></script>
<script src="./local/tr.js"></script>
<script src="../../common/local/langHandler.js"></script>
<script src="./js/index.js?v=1.2"></script>
</body>

View File

@@ -19,11 +19,14 @@ let uid;
let modeOfPayment = false;//判断是否有选择支付方式
let paymentAmount = false;//判断是否有选择付款金额
var deviceId;//型号ID
$(function () {
if (EnvCheck() == 'test') {//degBug
new VConsole();
}
getInfoFromClient();//请求依赖
// 判断语言
fuzzyMatchUpdateQueryStringParameterFun();
setTimeout(function () {
listChargeAreaInfo();
if (browser.app) {
@@ -33,8 +36,28 @@ $(function () {
$('.but1').hide();
$('.but2').show();
}
// 初始化国际化
initLocalLang();
// 进行文本替换
translateFun();
}, 100)
function get_param (param) {
function translateFun() {
const langReplace = window.lang.replace;
const localLang = window.lang;
$('#pay_title').text(langReplace(localLang.demoModule.pay_title));
$('#pay_header_t_l').text(langReplace(localLang.demoModule.pay_header_t_l));
$('#pay_user_id').attr('placeholder', langReplace(localLang.demoModule.placeholder));
$('#pay_method_p').text(langReplace(localLang.demoModule.pay_method_p));
$('#pay_number_sd').text(langReplace(localLang.demoModule.pay_number_sd));
$('.but1').text(langReplace(localLang.demoModule.but));
$('.but2').text(langReplace(localLang.demoModule.but));
$('#pop_up_in_b').text(langReplace(localLang.demoModule.pop_up_in_b));
$('#pay_stance_picture').text(langReplace(localLang.demoModule.pay_stance_picture));
}
function get_param(param) {
var query = location.search.substring(1).split('&');
for (var i = 0; i < query.length; i++) {
var kv = query[i].split('=');
@@ -66,7 +89,7 @@ $(function () {
} else {
$('.wx_skip').hide();
}
function getChargePageInfoForH5 (countryCode) {
function getChargePageInfoForH5(countryCode) {
deviceId = get_param('deviceId')
channelType = get_param('channelType');
let is_CN = countryCode == "CN" ? true : false;
@@ -119,10 +142,12 @@ $(function () {
$('.but2').off();
$('.but2').on('click', function () {
console.log(countryCode)
const langReplace = window.lang.replace;
const localLang = window.lang;
if (modeOfPayment == false) {
logingFun("請選擇儲值方式")//''
logingFun(langReplace(localLang.demoModule.pay_method_p))//''
} else if (paymentAmount == false) {
logingFun("請選擇您的儲值金額")//''
logingFun(langReplace(localLang.demoModule.pay_number_sd))//''
} else {
console.log(countryCode)
networkRequest({
@@ -132,7 +157,7 @@ $(function () {
success: function (res) {
if (res.code == 200) {
console.log(res)
$('.logingActive').text("請稍等");//""
$('.logingActive').text(langReplace(localLang.demoModule.logingActive));//""
$('.logingActive').show();
window.location.href = res.data.payInfo.mweb_url;
} else {
@@ -149,7 +174,7 @@ $(function () {
}
});
}
function listChargeAreaInfo () {
function listChargeAreaInfo() {
networkRequest({
type: 'GET',
url: urlPrefix + '/charge/listChargeAreaInfo',
@@ -208,11 +233,11 @@ $(function () {
$('.pop_up').show();
});
$('.pop_up').click(function(){
$('.pop_up').click(function () {
$('.pop_up').hide();
})
function coloursFun (index, type) {
function coloursFun(index, type) {
$('.pay_number .number span').remove();
var str = '';
console.log(arr[type]);
@@ -254,7 +279,7 @@ $(function () {
}
}
})
function isNumber (string) {
function isNumber(string) {
var r = string.match(/^[0-9]*$/);
if (r == null) {
return true
@@ -262,14 +287,14 @@ $(function () {
return false
}
}
function logingFun (res) {
function logingFun(res) {
$('.logingActive').text(res.message == undefined ? res : res.message);
$('.logingActive').show();
setTimeout(function () {
$('.logingActive').hide();
}, 1500)
}
function ifCNFun () {
function ifCNFun() {
var envChecks;
const url = window.location.href;
console.log(url)
@@ -279,7 +304,7 @@ $(function () {
return envChecks === 'live' ? urlProduct : urlTest;
}
})
function updateQueryStringParameter (uri, key, value) {
function updateQueryStringParameter(uri, key, value) {
if (!value) {
return uri;
}

View File

@@ -1,21 +1,20 @@
// 阿拉伯
langAr = {
// 模块
demoModule: {
wx_skip_img: './images/wx_skip_en.png',
// 国际化内容对应的数据项:
pay_title: `recharge`,
pay_header_t_l: `HABU Recharge Center`,
pay_header_t_r: `Taiwan`,
pay_method_p: `Please select a recharge method:`,
pay_number_sd: `Please select your recharge amount:`,
pay_but: `Pay now`,
pop_up_in_b: `Please select a recharge area`,
pop_up_in_p1: `Taiwan`,
pop_up_in_p2: `China`,
pay_stance_picture: `The recharge service is about to open, please be patient`,
wait_a_minute: 'Please wait',
gold_id: 'gold coins',
pay_user_id: 'Please enter your HABU account ID',
// 國際化內容對應的數據項:
loading: '加載中',
network: '網絡錯誤,請退出重進',
open_app: '請在app內打開',
// ===============index============
pay_title:'充值',
pay_header_t_l:'peko儲值中心',
pay_method_p:'请选择儲值方式',
placeholder:'請輸入peko賬號ID',
pay_number_sd:'請選擇您的儲值金額',
but:'立即支付',
pop_up_in_b:'請選擇儲值地區',
pay_stance_picture:'儲值服務即將開放,請耐心等待',
logingActive:'請稍等',
}
}

View File

@@ -2,20 +2,20 @@
langEn = {
// 模块
demoModule: {
wx_skip_img: './images/wx_skip_en.png',
// 国际化内容对应的数据项:
pay_title: `recharge`,
pay_header_t_l: `HABU Recharge Center`,
pay_header_t_r: `Taiwan`,
pay_method_p: `Please select a recharge method:`,
pay_number_sd: `Please select your recharge amount:`,
pay_but: `Pay now`,
pop_up_in_b: `Please select a recharge area`,
pop_up_in_p1: `Taiwan`,
pop_up_in_p2: `China`,
pay_stance_picture: `The recharge service is about to open, please be patient`,
wait_a_minute: 'Please wait',
gold_id: 'gold coins',
pay_user_id: 'Please enter your HABU account ID',
// 國際化內容對應的數據項:
loading: 'loading...',
network: 'Network error, please exit and retry',
open_app: 'Please open it in app',
// ===============index============
pay_title:'Pay',
pay_header_t_l:'peko storage Center',
pay_method_p:'Please select the store value mode',
placeholder:'Please enter the peko account ID',
pay_number_sd:'Please select your stored value amount',
but:'immediate payment',
pop_up_in_b:'Please select the store area',
pay_stance_picture:'Store value service will be opened soon, please wait patiently',
logingActive:'Wait for a moment, please',
}
}

View File

@@ -0,0 +1,20 @@
// 印尼语
langId = {
demoModule: {
// 國際化內容對應的數據項:
loading: '加載中',
network: '網絡錯誤,請退出重進',
open_app: '請在app內打開',
// ===============index============
pay_title:'充值',
pay_header_t_l:'peko儲值中心',
pay_method_p:'请选择儲值方式',
placeholder:'請輸入peko賬號ID',
pay_number_sd:'請選擇您的儲值金額',
but:'立即支付',
pop_up_in_b:'請選擇儲值地區',
pay_stance_picture:'儲值服務即將開放,請耐心等待',
logingActive:'請稍等',
}
}

View File

@@ -1,21 +0,0 @@
// 印尼语
langIn = {
// 模块
demoModule: {
wx_skip_img: './images/wx_skip_en.png',
// 国际化内容对应的数据项:
pay_title: `recharge`,
pay_header_t_l: `HABU Recharge Center`,
pay_header_t_r: `Taiwan`,
pay_method_p: `Please select a recharge method:`,
pay_number_sd: `Please select your recharge amount:`,
pay_but: `Pay now`,
pop_up_in_b: `Please select a recharge area`,
pop_up_in_p1: `Taiwan`,
pop_up_in_p2: `China`,
pay_stance_picture: `The recharge service is about to open, please be patient`,
wait_a_minute: 'Please wait',
gold_id: 'gold coins',
pay_user_id: 'Please enter your HABU account ID',
}
}

View File

@@ -0,0 +1,20 @@
// 土耳其语
langTr = {
demoModule: {
// 國際化內容對應的數據項:
loading: '加載中',
network: '網絡錯誤,請退出重進',
open_app: '請在app內打開',
// ===============index============
pay_title:'充值',
pay_header_t_l:'peko儲值中心',
pay_method_p:'请选择儲值方式',
placeholder:'請輸入peko賬號ID',
pay_number_sd:'請選擇您的儲值金額',
but:'立即支付',
pop_up_in_b:'請選擇儲值地區',
pay_stance_picture:'儲值服務即將開放,請耐心等待',
logingActive:'請稍等',
}
}

View File

@@ -1,21 +0,0 @@
// 简体中文
langZhCN = {
// 模块
demoModule: {
wx_skip_img: './images/wx_skip_en.png',
// 国际化内容对应的数据项:
pay_title: `recharge`,
pay_header_t_l: `HABU Recharge Center`,
pay_header_t_r: `Taiwan`,
pay_method_p: `Please select a recharge method:`,
pay_number_sd: `Please select your recharge amount:`,
pay_but: `Pay now`,
pop_up_in_b: `Please select a recharge area`,
pop_up_in_p1: `Taiwan`,
pop_up_in_p2: `China`,
pay_stance_picture: `The recharge service is about to open, please be patient`,
wait_a_minute: 'Please wait',
gold_id: 'gold coins',
pay_user_id: 'Please enter your HABU account ID',
}
}

View File

@@ -1,21 +0,0 @@
// 繁体中文
langZhTW = {
// 模块
demoModule: {
wx_skip_img: './images/wx_skip_en.png',
// 国际化内容对应的数据项:
pay_title: `recharge`,
pay_header_t_l: `HABU Recharge Center`,
pay_header_t_r: `Taiwan`,
pay_method_p: `Please select a recharge method:`,
pay_number_sd: `Please select your recharge amount:`,
pay_but: `Pay now`,
pop_up_in_b: `Please select a recharge area`,
pop_up_in_p1: `Taiwan`,
pop_up_in_p2: `China`,
pay_stance_picture: `The recharge service is about to open, please be patient`,
wait_a_minute: 'Please wait',
gold_id: 'gold coins',
pay_user_id: 'Please enter your HABU account ID',
}
}

View File

@@ -0,0 +1,21 @@
// 繁体中文
langZh = {
// 模塊
demoModule: {
// 國際化內容對應的數據項:
loading: '加載中',
network: '網絡錯誤,請退出重進',
open_app: '請在app內打開',
// ===============index============
pay_title:'充值',
pay_header_t_l:'peko儲值中心',
pay_method_p:'请选择儲值方式',
placeholder:'請輸入peko賬號ID',
pay_number_sd:'請選擇您的儲值金額',
but:'立即支付',
pop_up_in_b:'請選擇儲值地區',
pay_stance_picture:'儲值服務即將開放,請耐心等待',
logingActive:'請稍等',
}
}

View File

@@ -86,10 +86,10 @@ module.exports = {
// test: /\.(js|vue)$/,
// loader: 'language-tw-loader',
// },
{
test:/\.(js|vue)$/,
loader:'language-hk-loader'
}
// {
// test:/\.(js|vue)$/,
// loader:'language-hk-loader'
// }
]
},
node: {

View File

@@ -22,8 +22,8 @@ module.exports = {
}},
// Various Dev Server settings
host: '127.0.0.1', // can be overwritten by process.env.HOST
// host: '192.168.3.153', // can be overwritten by process.env.HOST
// host: '127.0.0.1', // can be overwritten by process.env.HOST
host: '192.168.8.153', // can be overwritten by process.env.HOST
// host: '192.168.9.200', // can be overwritten by process.env.HOST
port: 8080, // can be overwritten by process.env.PORT, if port is in use, a free one will be determined
autoOpenBrowser: false,

View File

@@ -5946,16 +5946,6 @@
"is-buffer": "^1.1.5"
}
},
"language-hk-loader": {
"version": "1.0.1",
"resolved": "https://registry.npmmirror.com/language-hk-loader/-/language-hk-loader-1.0.1.tgz",
"integrity": "sha512-OmOLx119bkmabkQYn4GvxzMrnp2PAxX6lhHkMwqyaHA6Casi6SyO5uhst1+svPJcR+kA7r8d7H3ri97N1JKXng=="
},
"language-tw-loader": {
"version": "1.0.3",
"resolved": "https://registry.npmmirror.com/language-tw-loader/-/language-tw-loader-1.0.3.tgz",
"integrity": "sha512-fA+6+Dn2IQUBN8QAfVO6ek+flzqdUmPvbKYDNXE/64invrDWIzJiXjv2PB2++F06lKxSso/B9clHUHN9jhx0gg=="
},
"last-call-webpack-plugin": {
"version": "2.1.2",
"resolved": "https://registry.npm.taobao.org/last-call-webpack-plugin/download/last-call-webpack-plugin-2.1.2.tgz",
@@ -12327,6 +12317,11 @@
"integrity": "sha1-UylVzB6yCKPZkLOp+acFdGV+CPI=",
"dev": true
},
"vue-i18n": {
"version": "8.28.2",
"resolved": "https://registry.npmmirror.com/vue-i18n/-/vue-i18n-8.28.2.tgz",
"integrity": "sha512-C5GZjs1tYlAqjwymaaCPDjCyGo10ajUphiwA922jKt9n7KPpqR7oM1PCwYzhB/E7+nT3wfdG3oRre5raIT1rKA=="
},
"vue-lazyload": {
"version": "1.2.3",
"resolved": "https://registry.npm.taobao.org/vue-lazyload/download/vue-lazyload-1.2.3.tgz?cache=0&sync_timestamp=1568801961628&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fvue-lazyload%2Fdownload%2Fvue-lazyload-1.2.3.tgz",

View File

@@ -14,8 +14,6 @@
"crypto-js": "^4.0.0",
"fastclick": "^1.0.6",
"jsencrypt": "^3.0.0-rc.1",
"language-hk-loader": "^1.0.1",
"language-tw-loader": "^1.0.3",
"lib-flexible": "^0.3.2",
"node-sass": "^4.13.0",
"postcss-pxtorem": "^5.1.1",
@@ -28,6 +26,7 @@
"vconsole": "^3.3.4",
"vue": "^2.5.2",
"vue-awesome-swiper": "^4.1.1",
"vue-i18n": "^8.28.2",
"vue-router": "^3.0.1",
"vuex": "^3.2.0"
},

View File

@@ -0,0 +1,18 @@
import Vue from 'vue';
// import locale from 'element-ui/lib/locale' //element组件翻译
import VueI18n from 'vue-i18n';
import messages from './langs';
Vue.use(VueI18n);
const i18n = new VueI18n({ //从sessionStorage中取没有就默认
// locale: 'zh',
locale: window.sessionStorage.getItem('language') || 'zh',
messages,
silentTranslationWarn: true,
})
// console.log('i18n.messages',i18n.messages);
// console.log('i18n.locale',i18n.locale);
export default i18n

View File

@@ -0,0 +1,55 @@
const en = {
diamondLog: {
登录过期: '登錄狀態已過期,請重新登錄',
钻石记录: '鉆石記錄',
支出记录: '支出記錄',
收入记录: '收入記錄',
礼物获得: '禮物獲得',
没有更多了: '沒有更多了',
共收入: '共收入',
共获得价值: '共獲得價值',
共支出: '共支出',
钻石: '鉆石',
房间红包: '房間紅包-來自',
全服红包: '全服紅包-來自',
全服红包退款: '全服紅包退款-來自',
水晶兑换钻石: '水晶兌換鉆石',
金币兑换钻石: '金幣兌換鉆石',
活动赠送钻石: '活動贈送鉆石',
充值: '充值',
塔罗占卜: '塔羅占蔔',
集福气瓜分钻石: '集福氣瓜分鉆石',
CP邀请退还: 'CP邀請退還',
赠送钻石: '贈送鉆石',
首充礼包获得钻石: '首充禮包獲得鉆石',
星级厨房奖励: '星級廚房獎勵',
寻找小精灵中奖奖励: '尋找小精靈中獎獎勵',
全服红包: '全服紅包-發生在',
房间红包: '房間紅包-發生在',
活动礼包支出: '活動禮包支出',
购买门票: '購買門票',
CP邀请支出: 'CP邀請支出',
寻找小精灵支出: '尋找小精靈支出',
赠送头饰支出: '贈送頭飾支出',
购买头饰支出: '購買頭飾支出',
购买铭牌支出: '購買銘牌支出',
赠送铭牌支出: '贈送銘牌支出',
购买资料卡支出: '購買資料卡支出',
赠送资料卡支出: '贈送資料卡支出',
购买聊天气泡支出: '購買聊天氣泡支出',
赠送聊天气泡支出: '贈送聊天氣泡支出',
航海冒险礼包支出: '航海冒險禮包支出',
购买座驾支出: '購買座駕支出',
赠送座驾支出: '贈送座駕支出',
星级厨房抽奖: '星級廚房抽獎',
新年烟花抽奖: '新年煙花抽獎',
夺宝精灵礼包购买支出: '奪寶精靈禮包購買支出',
寻爱之旅抽奖: '尋愛之旅抽獎',
转赠钻石给: '轉贈鉆石給',
: '鉆',
赠送: '贈送',
礼物: '禮物',
自己: '自己',
},
}
export default en

View File

@@ -0,0 +1,9 @@
import en from './en';
import zh from './zh';
const messages = {
en: en,
zh: zh,
}
// console.log('langmessages',messages);
export default messages

View File

@@ -0,0 +1,56 @@
const zh = {
diamondLog: {
登录过期: '登錄狀態已過期,請重新登錄',
钻石记录: '鉆石記錄',
支出记录: '支出記錄',
收入记录: '收入記錄',
礼物获得: '禮物獲得',
没有更多了: '沒有更多了',
共收入: '共收入',
共获得价值: '共獲得價值',
共支出: '共支出',
钻石: '鉆石',
房间红包: '房間紅包-來自',
全服红包: '全服紅包-來自',
全服红包退款: '全服紅包退款-來自',
水晶兑换钻石: '水晶兌換鉆石',
金币兑换钻石: '金幣兌換鉆石',
活动赠送钻石: '活動贈送鉆石',
充值: '充值',
塔罗占卜: '塔羅占蔔',
集福气瓜分钻石: '集福氣瓜分鉆石',
CP邀请退还: 'CP邀請退還',
赠送钻石: '贈送鉆石',
首充礼包获得钻石: '首充禮包獲得鉆石',
星级厨房奖励: '星級廚房獎勵',
寻找小精灵中奖奖励: '尋找小精靈中獎獎勵',
全服红包发生在: '全服紅包-發生在',
房间红包发生在: '房間紅包-發生在',
活动礼包支出: '活動禮包支出',
购买门票: '購買門票',
CP邀请支出: 'CP邀請支出',
寻找小精灵支出: '尋找小精靈支出',
赠送头饰支出: '贈送頭飾支出',
购买头饰支出: '購買頭飾支出',
购买铭牌支出: '購買銘牌支出',
赠送铭牌支出: '贈送銘牌支出',
购买资料卡支出: '購買資料卡支出',
赠送资料卡支出: '贈送資料卡支出',
购买聊天气泡支出: '購買聊天氣泡支出',
赠送聊天气泡支出: '贈送聊天氣泡支出',
航海冒险礼包支出: '航海冒險禮包支出',
购买座驾支出: '購買座駕支出',
赠送座驾支出: '贈送座駕支出',
星级厨房抽奖: '星級廚房抽獎',
新年烟花抽奖: '新年煙花抽獎',
夺宝精灵礼包购买支出: '奪寶精靈禮包購買支出',
寻爱之旅抽奖: '尋愛之旅抽獎',
转赠钻石给: '轉贈鉆石給',
: '鉆',
赠送: '贈送',
礼物: '禮物',
自己: '自己',
},
}
export default zh

View File

@@ -15,6 +15,8 @@ import { EnvCheck, checkVersion } from '@/utils/browser.js'
if (EnvCheck() === 'test') {
new Vconsole();
}
import i18n from '@/i18n/i18n.js'
//300毫秒
import fastClick from 'fastClick'
fastClick.attach(document.body)
@@ -34,6 +36,7 @@ new Vue({
el: '#app',
router,
store,
i18n,
components: { App },
template: '<App/>'
});

View File

@@ -30,6 +30,12 @@ routers.beforeEach((to, from, next) => {
setTimeout(() => {
window.sessionStorage.setItem('uid', info.uid);
window.sessionStorage.setItem('ticket', info.ticket);
let language = info.deviceInfo['accept-language'];
if (language.indexOf('zh') !=-1) {
window.sessionStorage.setItem('language', 'zh');
} else {
window.sessionStorage.setItem('language', info.deviceInfo['accept-language']);
}
console.log(info, 'router')
next();
}, 50)

View File

@@ -16,6 +16,7 @@ export default function getId() {
info.uid = $uid[0];
window.webkit.messageHandlers.getTicket.postMessage(null);
window.webkit.messageHandlers.getDeviceId.postMessage(null);
window.webkit.messageHandlers.getDeviceInfo.postMessage(null);
// console.log("ios");
// console.log(info.ticket);
} else if (browser.android) {
@@ -23,13 +24,23 @@ export default function getId() {
info.uid = parseInt(window.androidJsObj.getUid());
info.ticket = window.androidJsObj.getTicket();
info.deviceId = window.androidJsObj.getDeviceId();
info.deviceInfo = JSON.parse(window.androidJsObj.getDeviceInfo());
}
}
} else {
window.sessionStorage.clear();
info.uid = 1016;
info.ticket = "test"
info.ticket = "test",
info.deviceInfo = {
app: 'peko',
appVersion: '0.0.0',
os: '0.0.0',
osVersion: '0.0.0',
channel: 'browser',
client: 'h5',
'accept-language':'zh-Hans'
}
}
}
// export default function getJurisdiction() {

View File

@@ -1,6 +1,7 @@
import axios from 'axios'
import { Toast } from 'vant';
import router from '@/router'
import i18n from '@/i18n/i18n.js'
import { EnvCheck, checkVersion } from '@/utils/browser.js'
let baseURL;
if (EnvCheck() === 'test') {
@@ -84,7 +85,7 @@ service.interceptors.response.use(response => {
error => {
if (!checkVersion().app && error.response.status === 401) {
window.localStorage.clear();
Toast('登录失效,请重新登录')
Toast(i18n.t('diamondLog.登录过期'))
// router.replace({ path: '/Login' })
return
}

View File

@@ -1,17 +1,17 @@
<template>
<div>
<navigation v-if="!this.$store.state.isApp" title="石记录" rightTitle></navigation>
<navigation v-if="!this.$store.state.isApp" :title="$t('diamondLog.钻石记录')" rightTitle></navigation>
<div :class="!this.$store.state.isApp ? 'diamond-tab' : 'diamond-tab crystal-top-app'">
<div :class="tab === 11 ?'active' :''" @click="cutTab(11)">
<span>收入记录</span>
<span>{{$t('diamondLog.收入记录')}}</span>
<span :class="tab === 11 ?'active' :''"></span>
</div>
<div :class="tab === 12 ?'active' :''" @click="cutTab(12)">
<span>支出记录</span>
<span>{{$t('diamondLog.支出记录')}}</span>
<span :class="tab === 12 ?'active' :''"></span>
</div>
<div :class="tab === 1 ?'active' :''" @click="cutTab(1)">
<span>礼物获得</span>
<span>{{$t('diamondLog.礼物获得')}}</span>
<span :class="tab === 1 ?'active' :''"></span>
</div>
</div>
@@ -20,12 +20,18 @@
class="diamond-list"
:sticky-offset-top="!this.$store.state.isApp ? unApp : isApp"
>
<van-list
<!-- <van-list
style="width:100%"
v-model="loading"
:finished="finished"
finished-text="没有更多了"
@load="onLoad"
> -->
<van-list
style="width:100%"
:finished="finished"
:finished-text="noMore"
@load="onLoad"
>
<div v-for="(item, index) in list" :key="index">
<van-index-anchor
@@ -35,52 +41,52 @@
v-if="thinkTime(index, item)"
>
<span class="time">{{ relDate(item.date) }}</span>
<span>{{tab === 11 ? "共收入" : tab == 1 ? '共获得价值' : '共支出'}}</span>
<span>{{tab === 11 ? $t('diamondLog.共收入') : tab == 1 ? $t('diamondLog.共获得价值') : $t('diamondLog.共支出')}}</span>
<span class="total">{{tab === 1? item.totalGiftGoldNumDailySum: item.total}}</span>
<span>鉆石</span>
<span>{{$t('diamondLog.钻石')}}</span>
</van-index-anchor>
<div class="in-all-detail" v-for="(item1, index1) in item[item.date]" :key="index1">
<div class="in-all-user">
<p v-if="tab === 11 && item1.objType === 43">房间红包-来自{{ item1.roomTitle }}</p>
<p v-else-if="tab === 11 && item1.objType === 44">全服红包-来自{{ item1.roomTitle }}</p>
<p v-else-if="tab === 11 && item1.objType === 41">房间红包退款-来自{{ item1.roomTitle }}</p>
<p v-else-if="tab === 11 && item1.objType === 42">全服红包退款-来自{{ item1.roomTitle }}</p>
<p v-else-if="tab === 11 && item1.objType === 13">水晶兑换鉆石</p>
<p v-else-if="tab === 11 && item1.objType === 15">金币兑换鉆石</p>
<p v-else-if="tab === 11 && item1.objType === 23">活动赠送鉆石</p>
<p v-else-if="tab === 11 && item1.objType === 1">充值</p>
<p v-else-if="tab === 11 && item1.objType === 59">塔罗占卜</p>
<p v-else-if="tab === 11 && item1.objType === 60">集福气瓜分鉆石</p>
<p v-else-if="tab === 11 && item1.objType === 71">CP邀请退还</p>
<p v-else-if="tab === 11 && item1.objType === 89">{{item1.targetNick}}赠送鉆石</p>
<p v-else-if="tab === 11 && item1.objType === 62">首充礼包获得钻石</p>
<p v-else-if="tab === 11 && item1.objType === 88">星级厨房奖励</p>
<p v-else-if="tab === 11 && item1.objType === 96">寻找小精灵中奖奖励</p>
<p v-if="tab === 11 && item1.objType === 43">{{$t('diamondLog.房间红包')}}{{ item1.roomTitle }}</p>
<p v-else-if="tab === 11 && item1.objType === 44">{{$t('diamondLog.全服红包')}}{{ item1.roomTitle }}</p>
<p v-else-if="tab === 11 && item1.objType === 41">{{$t('diamondLog.房间红包退款')}}{{ item1.roomTitle }}</p>
<p v-else-if="tab === 11 && item1.objType === 42">{{$t('diamondLog.全服红包退款')}}{{ item1.roomTitle }}</p>
<p v-else-if="tab === 11 && item1.objType === 13">{{$t('diamondLog.水晶兑换鉆石')}}</p>
<p v-else-if="tab === 11 && item1.objType === 15">{{$t('diamondLog.金币兑换鉆石')}}</p>
<p v-else-if="tab === 11 && item1.objType === 23">{{$t('diamondLog.活动赠送鉆石')}}</p>
<p v-else-if="tab === 11 && item1.objType === 1">{{$t('diamondLog.充值')}}</p>
<p v-else-if="tab === 11 && item1.objType === 59">{{$t('diamondLog.塔罗占卜')}}</p>
<p v-else-if="tab === 11 && item1.objType === 60">{{$t('diamondLog.集福气瓜分鉆石')}}</p>
<p v-else-if="tab === 11 && item1.objType === 71">{{$t('diamondLog.CP邀请退还')}}</p>
<p v-else-if="tab === 11 && item1.objType === 89">{{item1.targetNick}}{{$t('diamondLog.赠送鉆石')}}</p>
<p v-else-if="tab === 11 && item1.objType === 62">{{$t('diamondLog.首充礼包获得钻石')}}</p>
<p v-else-if="tab === 11 && item1.objType === 88">{{$t('diamondLog.星级厨房奖励')}}</p>
<p v-else-if="tab === 11 && item1.objType === 96">{{$t('diamondLog.寻找小精灵中奖奖励')}}</p>
<!-- <p v-else-if="tab === 11 || !item1.targetNick">{{ item1.srcNick }}</p> -->
<p v-if="tab === 12 && item1.objType === 40">全服红包-发生在{{ item1.roomTitle }}</p>
<p v-else-if="tab === 12 && item1.objType === 39">房间红包-发生在{{ item1.roomTitle }}</p>
<p v-else-if="tab === 12 && item1.objType === 27">活动礼包支出</p>
<p v-else-if="tab === 12 && item1.objType === 61">购买门票</p>
<p v-else-if="tab === 12 && item1.objType === 70">CP邀请支出</p>
<p v-else-if="tab === 12 && item1.objType === 74">寻找小精灵支出</p>
<p v-else-if="tab === 12 && item1.objType === 79">赠送头饰支出</p>
<p v-else-if="tab === 12 && item1.objType === 78">购买头饰支出</p>
<p v-else-if="tab === 12 && item1.objType === 80">购买铭牌支出</p>
<p v-else-if="tab === 12 && item1.objType === 81">赠送铭牌支出</p>
<p v-else-if="tab === 12 && item1.objType === 82">购买资料卡支出</p>
<p v-else-if="tab === 12 && item1.objType === 83">赠送资料卡支出</p>
<p v-else-if="tab === 12 && item1.objType === 84">购买聊天气泡支出</p>
<p v-else-if="tab === 12 && item1.objType === 85">赠送聊天气泡支出</p>
<p v-else-if="tab === 12 && item1.objType === 86">航海冒险礼包支出</p>
<p v-else-if="tab === 12 && item1.objType === 31">购买座驾支出</p>
<p v-else-if="tab === 12 && item1.objType === 32">赠送座驾支出</p>
<p v-else-if="tab === 12 && item1.objType === 87">星级厨房抽奖</p>
<p v-else-if="tab === 12 && item1.objType === 95">新年煙花抽獎</p>
<p v-else-if="tab === 12 && item1.objType === 98">奪寶精靈禮包購買支出</p>
<p v-else-if="tab === 12 && item1.objType === 99">尋愛之旅抽獎</p>
<p v-else-if="tab === 12 && item1.objType === 90">转赠鉆石给 {{item1.targetNick}} {{item1.sendDiamondAmount}}</p>
<p v-if="tab === 12 && item1.objType === 40">{{$t('diamondLog.全服红包发生在')}}{{ item1.roomTitle }}</p>
<p v-else-if="tab === 12 && item1.objType === 39">{{$t('diamondLog.房间红包发生在')}}{{ item1.roomTitle }}</p>
<p v-else-if="tab === 12 && item1.objType === 27">{{$t('diamondLog.活动礼包支出')}}</p>
<p v-else-if="tab === 12 && item1.objType === 61">{{$t('diamondLog.购买门票')}}</p>
<p v-else-if="tab === 12 && item1.objType === 70">{{$t('diamondLog.CP邀请支出')}}</p>
<p v-else-if="tab === 12 && item1.objType === 74">{{$t('diamondLog.寻找小精灵支出')}}</p>
<p v-else-if="tab === 12 && item1.objType === 79">{{$t('diamondLog.赠送头饰支出')}}</p>
<p v-else-if="tab === 12 && item1.objType === 78">{{$t('diamondLog.购买头饰支出')}}</p>
<p v-else-if="tab === 12 && item1.objType === 80">{{$t('diamondLog.购买铭牌支出')}}</p>
<p v-else-if="tab === 12 && item1.objType === 81">{{$t('diamondLog.赠送铭牌支出')}}</p>
<p v-else-if="tab === 12 && item1.objType === 82">{{$t('diamondLog.购买资料卡支出')}}</p>
<p v-else-if="tab === 12 && item1.objType === 83">{{$t('diamondLog.赠送资料卡支出')}}</p>
<p v-else-if="tab === 12 && item1.objType === 84">{{$t('diamondLog.购买聊天气泡支出')}}</p>
<p v-else-if="tab === 12 && item1.objType === 85">{{$t('diamondLog.赠送聊天气泡支出')}}</p>
<p v-else-if="tab === 12 && item1.objType === 86">{{$t('diamondLog.航海冒险礼包支出')}}</p>
<p v-else-if="tab === 12 && item1.objType === 31">{{$t('diamondLog.购买座驾支出')}}</p>
<p v-else-if="tab === 12 && item1.objType === 32">{{$t('diamondLog.赠送座驾支出')}}</p>
<p v-else-if="tab === 12 && item1.objType === 87">{{$t('diamondLog.星级厨房抽奖')}}</p>
<p v-else-if="tab === 12 && item1.objType === 95">{{$t('diamondLog.新年煙花抽獎')}}</p>
<p v-else-if="tab === 12 && item1.objType === 98">{{$t('diamondLog.奪寶精靈禮包購買支出')}}</p>
<p v-else-if="tab === 12 && item1.objType === 99">{{$t('diamondLog.尋愛之旅抽獎')}}</p>
<p v-else-if="tab === 12 && item1.objType === 90">{{$t('diamondLog.转赠鉆石给')}} {{item1.targetNick}} {{item1.sendDiamondAmount}}</p>
<!-- <p v-if="tab === 12">{{ item1.srcNick }}</p> -->
<p
v-else-if="tab === 12 && item1.targetNick"
@@ -117,13 +123,15 @@ export default {
finished: false, //是否加载完
indexList: [], //不清楚应该没啥用
//点击tab类型
tab: 11
tab: 11,
//底部提示
noMore:'没有更多了'
};
},
components: { navigation },
created() {
document.title = this.$route.meta.title;
this.$i18n.locale = window.sessionStorage.getItem('language')
},
computed: {
isApp() {
@@ -212,6 +220,7 @@ export default {
mounted() {
let htmlCss = document.getElementsByTagName("html")[0];
htmlCss.style.background = "#fff";
this.noMore = this.$t('diamondLog.没有更多了')
}
};
</script>

View File

@@ -36,14 +36,14 @@ module.exports = {
loader: 'vue-loader',
options: vueLoaderConfig
},
{
test: /\.(js|vue)$/,
loader: 'language-hk-loader',
},
{
test: /\.(js|vue)$/,
loader: 'language-tw-loader',
},
// {
// test: /\.(js|vue)$/,
// loader: 'language-hk-loader',
// },
// {
// test: /\.(js|vue)$/,
// loader: 'language-tw-loader',
// },
{
test: /\.js$/,
loader: 'babel-loader',

View File

@@ -5675,16 +5675,6 @@
"resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz",
"integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw=="
},
"language-hk-loader": {
"version": "1.0.1",
"resolved": "https://registry.npmmirror.com/language-hk-loader/-/language-hk-loader-1.0.1.tgz",
"integrity": "sha512-OmOLx119bkmabkQYn4GvxzMrnp2PAxX6lhHkMwqyaHA6Casi6SyO5uhst1+svPJcR+kA7r8d7H3ri97N1JKXng=="
},
"language-tw-loader": {
"version": "1.0.3",
"resolved": "https://registry.npmmirror.com/language-tw-loader/-/language-tw-loader-1.0.3.tgz",
"integrity": "sha512-fA+6+Dn2IQUBN8QAfVO6ek+flzqdUmPvbKYDNXE/64invrDWIzJiXjv2PB2++F06lKxSso/B9clHUHN9jhx0gg=="
},
"last-call-webpack-plugin": {
"version": "2.1.2",
"resolved": "https://registry.npmjs.org/last-call-webpack-plugin/-/last-call-webpack-plugin-2.1.2.tgz",
@@ -11484,6 +11474,11 @@
"integrity": "sha512-BXq3jwIagosjgNVae6tkHzzIk6a8MHFtzAdwhnV5VlvPTFxDCvIttgSiHWjdGoTJvXtmRu5HacExfdarRcFhog==",
"dev": true
},
"vue-i18n": {
"version": "8.28.2",
"resolved": "https://registry.npmmirror.com/vue-i18n/-/vue-i18n-8.28.2.tgz",
"integrity": "sha512-C5GZjs1tYlAqjwymaaCPDjCyGo10ajUphiwA922jKt9n7KPpqR7oM1PCwYzhB/E7+nT3wfdG3oRre5raIT1rKA=="
},
"vue-layer": {
"version": "1.2.5",
"resolved": "https://registry.npmjs.org/vue-layer/-/vue-layer-1.2.5.tgz",

View File

@@ -12,8 +12,6 @@
"dependencies": {
"axios": "^0.19.0",
"fastclick": "^1.0.6",
"language-hk-loader": "^1.0.1",
"language-tw-loader": "^1.0.3",
"lib-flexible": "^0.3.2",
"node-sass": "^4.13.0",
"postcss-pxtorem": "^5.1.1",
@@ -25,6 +23,7 @@
"vconsole": "^3.3.4",
"vue": "^2.5.2",
"vue-awesome-swiper": "^4.1.1",
"vue-i18n": "^8.28.2",
"vue-layer": "^1.2.5",
"vue-router": "^3.0.1",
"vuex": "^3.2.0"

View File

@@ -0,0 +1,18 @@
import Vue from 'vue';
// import locale from 'element-ui/lib/locale' //element组件翻译
import VueI18n from 'vue-i18n';
import messages from './langs';
Vue.use(VueI18n);
const i18n = new VueI18n({ //从sessionStorage中取没有就默认
// locale: 'zh',
locale: window.sessionStorage.getItem('language') || 'zh',
messages,
silentTranslationWarn: true,
})
// console.log('i18n.messages',i18n.messages);
// console.log('i18n.locale',i18n.locale);
export default i18n

View File

@@ -0,0 +1,17 @@
const en = {
rank: {
日榜: 'day',
周榜: 'week',
月榜: 'month',
距上一名: '距上一名',
未上榜: '未上榜',
爱意榜: '愛意榜',
魅力榜: '魅力榜',
房间榜: '房間榜',
公会周榜: '公會周榜',
加載中: '加載中...',
排行榜: '排行榜',
虚位以待: '虚位以待',
}
}
export default en

View File

@@ -0,0 +1,9 @@
import en from './en';
import zh from './zh';
const messages = {
en: en,
zh: zh,
}
// console.log('langmessages',messages);
export default messages

View File

@@ -0,0 +1,17 @@
const zh = {
rank: {
日榜 : '日榜',
周榜:'周榜',
月榜:'月榜',
距上一名: '距上一名',
未上榜:'未上榜',
爱意榜:'愛意榜',
魅力榜:'魅力榜',
房间榜:'房間榜',
公会周榜:'公會周榜',
加載中:'加載中...',
排行榜:'排行榜',
虚位以待:'虚位以待',
}
}
export default zh

View File

@@ -14,7 +14,13 @@ import 'vant/lib/index.css';
import vant from 'vant';
import 'lib-flexible/flexible'
import Vconsole from 'vconsole'
// new Vconsole()
import { EnvCheck, checkVersion } from '@/utils/browser.js'
if (EnvCheck() === 'test') {
new Vconsole();
}
import i18n from '@/i18n/i18n.js'
console.log('main.js获取到的语言i18n.locale',i18n.locale);
//300毫秒
import fastClick from 'fastClick'
fastClick.attach(document.body)
@@ -23,6 +29,7 @@ new Vue({
el: '#app',
router,
store,
i18n,
components: { App },
template: '<App/>'
});

View File

@@ -24,9 +24,17 @@ routers.beforeEach((to, from, next) => {
sessionStorage.clear();
window.sessionStorage.setItem('uid', info.uid);
window.sessionStorage.setItem('ticket', info.ticket);
let language = info.deviceInfo['accept-language'];
if (language.indexOf('zh') !=-1) {
window.sessionStorage.setItem('language', 'zh');
} else {
window.sessionStorage.setItem('language', info.deviceInfo['accept-language']);
}
console.log(info, 'router')
next();
}, 70)
}, 50)
}
});
export default routers;

View File

@@ -14,17 +14,28 @@ export default function getId() {
var $uid = allcookies.match(/\d+/);
info.uid = $uid[0];
window.webkit.messageHandlers.getTicket.postMessage(null);
window.webkit.messageHandlers.getDeviceInfo.postMessage(null);
// console.log("ios");
// console.log(info.ticket);
} else if (browser.android) {
if (androidJsObj && typeof androidJsObj === 'object') {
info.uid = parseInt(window.androidJsObj.getUid());
info.ticket = window.androidJsObj.getTicket();
info.deviceInfo = JSON.parse(window.androidJsObj.getDeviceInfo());
}
}
} else {
info.uid = 0
info.ticket = "0"
info.ticket = "0",
info.deviceInfo = {
app: 'peko',
appVersion: '0.0.0',
os: '0.0.0',
osVersion: '0.0.0',
channel: 'browser',
client: 'h5',
'accept-language':'zh-Hans'
}
}
}
// export default function getJurisdiction() {

View File

@@ -8,7 +8,7 @@
:key="index"
@click="setTabType(index)"
>
{{ item }}
{{ $t(`rank.${item}`) }}
<span class="subscript-one"></span>
</div>
</div>
@@ -17,13 +17,13 @@
:class="`choose ${chooseType === 1 ? 'active' : ''}`"
@click="setChooseType(1)"
>
<span>日榜</span>
<span>{{$t('rank.日榜')}}</span>
</div>
<div
:class="`choose ${chooseType === 2 ? 'active' : ''}`"
@click="setChooseType(2)"
>
<span>周榜</span>
<span>{{$t('rank.周榜')}}</span>
</div>
</div>
</div>
@@ -69,7 +69,7 @@
}}
<br
/></span>
距上一名
{{$t('rank.距上一名')}}
</span>
<span v-else>
<img src="@/assets/images/rank/first-icon.png" alt="" />
@@ -128,7 +128,7 @@
<!-- <p v-if="tabType != 3">ID:{{ item.erbanNo }}</p> -->
</div>
<p class="rank-user-num" v-if="tabType != 3">
<span>距上一名</span><br />
<span> {{$t('rank.距上一名')}}</span><br />
{{
index
? formatTotal(value[index - 1].totalNum - item.totalNum)
@@ -162,10 +162,10 @@
<!-- <p>ID:{{ me.erbanNo }}</p> -->
</div>
<p class="rank-user-num" v-if="me.seqNo != 0 && me.seqNo != 1">
<span>距上一名</span><br />
<span>{{$t('rank.距上一名')}}</span><br />
{{ totalList[me.seqNo - 2].totalNum - me.totalNum }}
</p>
<p v-else-if="me.seqNo == 0" class="not-rank">未上榜</p>
<p v-else-if="me.seqNo == 0" class="not-rank">{{$t('rank.未上榜')}}</p>
<!-- <p class="rank-user-num">{{ formatTotal(me.totalNum) }}</p> -->
</div>
</div>
@@ -190,7 +190,8 @@ export default {
document.title = this.$route.meta.title;
setTimeout(() => {
this.getList();
}, 50);
this.$i18n.locale = window.sessionStorage.getItem('language')
}, 80);
// new Vconsole();
},
data() {