国际化
This commit is contained in:
@@ -22,7 +22,7 @@ if (!lang) {
|
|||||||
getDefaultLocal().then(res => {
|
getDefaultLocal().then(res => {
|
||||||
console.log('res', res)
|
console.log('res', res)
|
||||||
if (res === 'gu_IN') {
|
if (res === 'gu_IN') {
|
||||||
localStorage.setItem('lang', 'id')
|
localStorage.setItem('lang', 'hi')
|
||||||
} else {
|
} else {
|
||||||
localStorage.setItem('lang', 'zh')
|
localStorage.setItem('lang', 'zh')
|
||||||
}
|
}
|
||||||
|
|||||||
144
src/lang/hi-IN.ts
Normal file
144
src/lang/hi-IN.ts
Normal file
@@ -0,0 +1,144 @@
|
|||||||
|
// zh_cn.js 文件
|
||||||
|
export default {
|
||||||
|
app: {
|
||||||
|
home: 'होम',
|
||||||
|
serveList: 'वॉलेट',
|
||||||
|
message: 'सेवा',
|
||||||
|
my: 'मी',
|
||||||
|
yuan: 'रुपया',
|
||||||
|
second: 'सेकंड',
|
||||||
|
month: 'माह',
|
||||||
|
prompt: 'गुनाह',
|
||||||
|
tips: 'आशा चाहिए',
|
||||||
|
enterLogout: 'आप वादा लौट गाई जानाचा है?',
|
||||||
|
enterWithdrawal: 'आप वादा वितरण करनाचा है?',
|
||||||
|
withdrawal: 'वितरण',
|
||||||
|
info: 'जानकारी',
|
||||||
|
success: 'सफल',
|
||||||
|
withdrawalAmount: 'वितरण की राशि',
|
||||||
|
pleaseWithdrawalAmount: 'वितरण की राशि',
|
||||||
|
submit: 'भेजा',
|
||||||
|
submittedSuccessfully: 'सफल भेजा',
|
||||||
|
submitApplication: 'इंटरनेट प्राप्त करना',
|
||||||
|
bankCardAbnormality: 'बैंक कार्ड अनुद्वर्य',
|
||||||
|
receivedSuccessfully: 'सफल प्राप्त हो गए',
|
||||||
|
phoneNumber: 'फोन नंबर',
|
||||||
|
verificationCode: 'वेर्फिकेशन कोड',
|
||||||
|
confirm: 'पुष्ता करें',
|
||||||
|
enter: 'उपलब्ध करें',
|
||||||
|
select: 'चूना',
|
||||||
|
send: 'भेजा',
|
||||||
|
login: 'लौट गई',
|
||||||
|
account: 'कांト',
|
||||||
|
logout: 'बाजार',
|
||||||
|
register: 'रजिस्टर',
|
||||||
|
password: 'पासवर्ड',
|
||||||
|
forgotPassword: 'पासवर्ड और सिखाया नहीं आया?',
|
||||||
|
passwordPlaceholder: '6-16 दिगित पासवर्ड बनाना',
|
||||||
|
passwordPlaceholder1: 'पहले बार पासवर्ड दर्ज करें',
|
||||||
|
next: 'अगले',
|
||||||
|
update: 'सुनिश्चित करें',
|
||||||
|
noData: 'कुछ प्राप्त नहीं है',
|
||||||
|
none: 'कुछ नहीं है',
|
||||||
|
contract: 'संगठन',
|
||||||
|
loan: 'लोन',
|
||||||
|
totalLoan: 'संकल्प की लोन',
|
||||||
|
complete: 'सुनिश्चित',
|
||||||
|
noComplete: 'सुनिश्चित नहीं है',
|
||||||
|
signature: 'सिग्नेटूर',
|
||||||
|
identityInformation: 'आदारित जानकारी',
|
||||||
|
information: 'जानकारी',
|
||||||
|
signatureInformation: 'सिग्नेटूर जानकारी',
|
||||||
|
receivingBank: 'प्राप्त करेंगे बैंक',
|
||||||
|
rwmljndzlxx: 'हमें आपकी जानकारी पता होंगे',
|
||||||
|
upPNGOrJPG: 'कई jpg या png टाइम आईए।',
|
||||||
|
},
|
||||||
|
home: {
|
||||||
|
productDetails: 'संग्रह विवरण',
|
||||||
|
minimumDailyInterestRate: 'सडर दिन के लिए Nischit Raatā',
|
||||||
|
borrowingLimit: 'लोन की लिミट',
|
||||||
|
installmentPeriod: 'ईमेंट समय',
|
||||||
|
optional: 'सेटा',
|
||||||
|
applicationAmount: 'इंटरनेट की राशि',
|
||||||
|
loanTerm: 'लोन की समय',
|
||||||
|
repaymentPerInstallment: 'ईमेंट के लिए पुनर्णाम',
|
||||||
|
dailyInterestRate: 'दिन की raatā',
|
||||||
|
totalInterest: 'सामान्य लियENT',
|
||||||
|
successfulBorrowing: 'सफल लोन',
|
||||||
|
enterAgreement: 'मु<E0A4AE><E0A581><EFBFBD> प्राग्रही प्राप्त को सुनिश्चित पसंद आया है',
|
||||||
|
authAgreement: 'संग्राहक प्राप्त पत्र',
|
||||||
|
serviceAgreement: 'सेवा प्रामाण',
|
||||||
|
lawAgreement: 'अधिकारी प्रामाण',
|
||||||
|
loansAgreement: 'लोन के लिए प्रामाण',
|
||||||
|
immediateBorrowing: 'बिहारी लोन',
|
||||||
|
pleaseFillInYourPersonalInformationFirst: 'पहले आपकी प्रोफेशनल जानकारी ओपन करें।',
|
||||||
|
pleaseEnterAgreement: 'प्रामाणों को प्राप्त करें।',
|
||||||
|
},
|
||||||
|
my: {
|
||||||
|
userInfo: 'मी की जानकारी',
|
||||||
|
loan: 'मी की लोन',
|
||||||
|
repayment: 'मी की पुनर्णाम',
|
||||||
|
legalLiability: 'अधिकारी प्रावृत्ति',
|
||||||
|
uploadPassword: 'पासवर्ड संगेत',
|
||||||
|
logout: 'बाजार',
|
||||||
|
language: 'भेजिए',
|
||||||
|
},
|
||||||
|
serveList: {
|
||||||
|
loan: 'मी की लोन',
|
||||||
|
balance: 'बाラंस',
|
||||||
|
amountToBeRepaid: 'पुनर्णाया जरूरी की राशि',
|
||||||
|
immediateWithdrawal: 'बिहारी वितरण',
|
||||||
|
financialSecurity: 'बैंक की तरह की फिंसीफेक्शि'
|
||||||
|
},
|
||||||
|
borrowInfo: {
|
||||||
|
applicationTime: 'इंटरनेट की समय',
|
||||||
|
loanDetails: 'लोन की विवरण',
|
||||||
|
loanInfo: 'लोन की जानकारी',
|
||||||
|
loanNo: 'लोन की क्रEDIT नंबर',
|
||||||
|
loanAmount: 'लोन की राशि',
|
||||||
|
loanCycle: 'लोन की समय',
|
||||||
|
withdrawalBank: 'वितरण करनेवाला बैंक',
|
||||||
|
repaymentPerInstallment: 'ईमेंट के लिए पुनर्णाम',
|
||||||
|
describe: 'विवरण',
|
||||||
|
receivingAccount: 'प्राप्त करेंगी अカウント',
|
||||||
|
usageOfLoan: 'लोन की प्यारी',
|
||||||
|
loans: 'इंटरनेट करनेवाले लोन',
|
||||||
|
enterSubmitApplication: 'आप वादा इंटरनेट करनाचा है?',
|
||||||
|
},
|
||||||
|
userInfo: {
|
||||||
|
realPrompt: 'सच और मुख्य जानकारी, आपको वैसे पसंद आएगी।',
|
||||||
|
idCardPrompt: 'आपकी आदारीत पत्र की जानकारी आवश्यक है, और उन्होंने सुनिश्चित होना चاहिए।',
|
||||||
|
photographPrompt: 'आपकी फोटोग्राफी की प्रमानित होते हैं।',
|
||||||
|
name: 'नम',
|
||||||
|
idCard: 'आदारीत पत्र',
|
||||||
|
idCardUp1: 'क्लɪक करें, आपकी आदारीत पत्र को दौरे दें।',
|
||||||
|
idCardUp2: 'क्लɪk करें, आपकी आदारीत पत्र को दौरे दें।',
|
||||||
|
idCardUp3: 'क्लिक करें, आपकी आदारीत пत्र को दौरे दें।',
|
||||||
|
shootingRequirements: 'टैयरिंग के में requirements',
|
||||||
|
standardShooting: 'सेंडर्ड टैयरिंग',
|
||||||
|
missingBorder: 'संगर्ष मिस्सिंग',
|
||||||
|
outOfFocus: 'बहुत सुनिश्चित',
|
||||||
|
flashStrongly: 'फ्लASH बहुत सुनिश्चित',
|
||||||
|
unitName: 'यूनिट नाम',
|
||||||
|
position: 'पोष्ट',
|
||||||
|
workTelephone: 'कम करेंगी टेलेфोн',
|
||||||
|
workingAge: 'कार्य कयार',
|
||||||
|
monthlyPay: 'महिनावारी आज्ञा',
|
||||||
|
unitAddress: 'एकाइ पता',
|
||||||
|
addressInfo: 'विस्तृत पता',
|
||||||
|
currentResidentialAddress: 'मौजूदा रिस्टेसियल पता',
|
||||||
|
directFamilyContactPerson: 'सीधा परिवार संपर्क व्यक्ति',
|
||||||
|
relationship: 'संबंध',
|
||||||
|
parents: 'पेरेन्ट',
|
||||||
|
spouse: 'स्त्री',
|
||||||
|
children: 'बच्चे',
|
||||||
|
grandparents: 'आज्ञापिता',
|
||||||
|
bankOfDeposit: 'बैंक खोल रहा है',
|
||||||
|
bankCardNumber: 'बैंक कार्ड क्रमांक'
|
||||||
|
},
|
||||||
|
language: {
|
||||||
|
zh: '中文',
|
||||||
|
id: 'Bahasa indonesia',
|
||||||
|
hi: 'हिंदी'
|
||||||
|
}
|
||||||
|
};
|
||||||
@@ -136,5 +136,10 @@ export default {
|
|||||||
grandparents: 'Dari Orang Tua Kandung',
|
grandparents: 'Dari Orang Tua Kandung',
|
||||||
bankOfDeposit: 'Bank Penyedia Rekening',
|
bankOfDeposit: 'Bank Penyedia Rekening',
|
||||||
bankCard: 'Nomor Kartu Bank',
|
bankCard: 'Nomor Kartu Bank',
|
||||||
|
},
|
||||||
|
language: {
|
||||||
|
zh: '中文',
|
||||||
|
id: 'Bahasa indonesia',
|
||||||
|
hi: 'हिंदी'
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -2,8 +2,10 @@ import { createI18n } from 'vue-i18n';
|
|||||||
import {Locale} from 'vant'
|
import {Locale} from 'vant'
|
||||||
import zhCN from 'vant/lib/locale/lang/zh-CN'
|
import zhCN from 'vant/lib/locale/lang/zh-CN'
|
||||||
import idId from 'vant/lib/locale/lang/id-ID'
|
import idId from 'vant/lib/locale/lang/id-ID'
|
||||||
|
import hiIN from 'vant/lib/locale/lang/hi-IN'
|
||||||
import zhLocale from './zh_cn'
|
import zhLocale from './zh_cn'
|
||||||
import idLocale from './id_ID'
|
import idLocale from './id_ID'
|
||||||
|
import hiLocale from './hi-IN'
|
||||||
import type { App } from 'vue';
|
import type { App } from 'vue';
|
||||||
|
|
||||||
|
|
||||||
@@ -15,16 +17,21 @@ const messages = {
|
|||||||
id: {
|
id: {
|
||||||
...idId,
|
...idId,
|
||||||
...idLocale
|
...idLocale
|
||||||
|
},
|
||||||
|
hi: {
|
||||||
|
...hiIN,
|
||||||
|
...hiLocale
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
const language = (navigator.language || 'zh').toLocaleLowerCase(); // 这是获取浏览器的语言
|
const language = (navigator.language || 'zh').toLocaleLowerCase(); // 这是获取浏览器的语言
|
||||||
|
const defLanguage = localStorage.getItem('lang'); // 这是获取浏览器的语言
|
||||||
|
|
||||||
console.log('当前的环境语言是:', language)
|
console.log('当前的环境语言是:', language)
|
||||||
console.log('当前的后台语言是:', localStorage.getItem('lang'))
|
console.log('当前的后台语言是:', localStorage.getItem('lang'))
|
||||||
const i18n = createI18n({
|
const i18n = createI18n({
|
||||||
allowComposition: true,
|
allowComposition: true,
|
||||||
locale: localStorage.getItem('lang') || language.split('-')[0] || 'zh', // 设置默认语言
|
locale: defLanguage || language.split('-')[0] || 'zh', // 设置默认语言
|
||||||
fallbackLocale: 'zh', // 设置备用语言
|
fallbackLocale: 'zh', // 设置备用语言
|
||||||
messages: messages // 设置资源文件对象
|
messages: messages // 设置资源文件对象
|
||||||
})
|
})
|
||||||
@@ -32,9 +39,13 @@ const i18n = createI18n({
|
|||||||
// 更新vant组件库本身的语言变化,支持国际化
|
// 更新vant组件库本身的语言变化,支持国际化
|
||||||
export function vantLocales (app: App<Element>) {
|
export function vantLocales (app: App<Element>) {
|
||||||
app.use(i18n)
|
app.use(i18n)
|
||||||
if (language === 'id') {
|
const lan = defLanguage || language.split('-')[0] || 'zh'
|
||||||
Locale.use(language, idId)
|
if (lan === 'hi') {
|
||||||
|
Locale.use(lan, hiIN)
|
||||||
|
console.log('========================', lan)
|
||||||
|
} else if (lan === 'id') {
|
||||||
|
Locale.use(lan, idId)
|
||||||
} else {
|
} else {
|
||||||
Locale.use(language, zhCN)
|
Locale.use(lan, zhCN)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -136,6 +136,11 @@ export default {
|
|||||||
grandparents: '祖父母',
|
grandparents: '祖父母',
|
||||||
bankOfDeposit: '开户银行',
|
bankOfDeposit: '开户银行',
|
||||||
bankCard: '银行卡号',
|
bankCard: '银行卡号',
|
||||||
|
},
|
||||||
|
language: {
|
||||||
|
zh: '中文',
|
||||||
|
id: 'Bahasa indonesia',
|
||||||
|
hi: 'हिंदी'
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
<template>
|
<template>
|
||||||
<j-nav-bar/>
|
<!-- <j-nav-bar/>-->
|
||||||
<div ref="root" class="frame" style="height: calc(100vh - 50px - 46px)">
|
<div ref="root" class="frame" style="height: calc(100vh - 50px)">
|
||||||
<iframe :src="iframeSrc" class="frame-iframe" ref="frameRef"></iframe>
|
<iframe :src="iframeSrc" class="frame-iframe" ref="frameRef"></iframe>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|||||||
@@ -82,11 +82,19 @@
|
|||||||
</template>
|
</template>
|
||||||
</van-cell>
|
</van-cell>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<van-popup v-model:show="showPicker" round position="bottom">
|
||||||
|
<van-picker
|
||||||
|
:columns="columns"
|
||||||
|
@confirm="onConfirm"
|
||||||
|
@cancel="onCancel"
|
||||||
|
/>
|
||||||
|
</van-popup>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import {showConfirmDialog} from "vant";
|
import { showConfirmDialog, showToast } from 'vant';
|
||||||
import {getAssetsImages} from "@/utils";
|
import {getAssetsImages} from "@/utils";
|
||||||
import {useUserStore} from "@/store/modules/user";
|
import {useUserStore} from "@/store/modules/user";
|
||||||
import {useRouter} from "vue-router";
|
import {useRouter} from "vue-router";
|
||||||
@@ -141,14 +149,29 @@ const checkLanguage = () => {
|
|||||||
// }
|
// }
|
||||||
// location.reload()
|
// location.reload()
|
||||||
// })
|
// })
|
||||||
const lang = localStorage.getItem('lang')
|
showPicker.value = true
|
||||||
if (lang === 'zh') {
|
|
||||||
localStorage.setItem('lang', 'id')
|
|
||||||
} else {
|
|
||||||
localStorage.setItem('lang', 'zh')
|
|
||||||
}
|
}
|
||||||
|
const showPicker = ref(false)
|
||||||
|
|
||||||
|
const columns = [
|
||||||
|
{ text: '中文', value: 'zh' },
|
||||||
|
{ text: '印地语', value: 'hi' },
|
||||||
|
{ text: '印尼语', value: 'id' },
|
||||||
|
// { text: t('language.zh'), value: 'zh' },
|
||||||
|
// { text: t('language.hi'), value: 'hi' },
|
||||||
|
// { text: t('language.id'), value: 'id' },
|
||||||
|
];
|
||||||
|
const onConfirm = ({ selectedValues }) => {
|
||||||
|
showToast(`当前值: ${selectedValues.join(',')}`);
|
||||||
|
// const lang = localStorage.getItem('lang')
|
||||||
|
// if (lang === 'zh') {
|
||||||
|
// } else {
|
||||||
|
// localStorage.setItem('lang', 'zh')
|
||||||
|
// }
|
||||||
|
localStorage.setItem('lang', selectedValues)
|
||||||
location.reload()
|
location.reload()
|
||||||
}
|
};
|
||||||
|
const onCancel = () => showToast('取消');
|
||||||
|
|
||||||
|
|
||||||
const customerInfo = reactive({
|
const customerInfo = reactive({
|
||||||
|
|||||||
Reference in New Issue
Block a user