要實(shí)現(xiàn)JavaScript Prompt的多語言支持,您可以使用一個(gè)名為i18next
的庫。這個(gè)庫可以幫助您輕松地在應(yīng)用程序中實(shí)現(xiàn)多語言支持。以下是使用i18next
實(shí)現(xiàn)多語言支持的步驟:
i18next
庫:npm install i18next
locales
的文件夾,用于存放不同語言的翻譯文件。例如,創(chuàng)建兩個(gè)文件:en.json
和zh.json
。en.json
:
{
"welcome": "Welcome",
"prompt": "Please enter your name:"
}
zh.json
:
{
"welcome": "歡迎",
"prompt": "請(qǐng)輸入您的名字:"
}
i18n.js
的文件,用于配置i18next
庫:import i18next from 'i18next';
import en from './locales/en.json';
import zh from './locales/zh.json';
i18next.init({
lng: 'en', // 默認(rèn)語言
resources: {
en: { translation: en },
zh: { translation: zh },
},
});
export default i18next;
i18n.js
庫,并使用i18next.t()
函數(shù)獲取翻譯后的字符串:import i18next from './i18n.js';
function showPrompt() {
const name = prompt(i18next.t('prompt'));
console.log(`${i18next.t('welcome')}, ${name}!`);
}
showPrompt();
現(xiàn)在,當(dāng)您運(yùn)行項(xiàng)目時(shí),prompt
將顯示默認(rèn)語言(英語)的文本。您可以通過更改i18next.init()
函數(shù)中的lng
屬性來更改當(dāng)前語言。例如,將其設(shè)置為'zh'
將顯示中文文本。
如果您想要根據(jù)用戶的瀏覽器語言設(shè)置自動(dòng)選擇語言,可以使用i18next.detectLanguage()
函數(shù):
i18next.detectLanguage().then((detectedLanguage) => {
i18next.changeLanguage(detectedLanguage);
});
這將使得應(yīng)用程序根據(jù)用戶的瀏覽器語言設(shè)置自動(dòng)選擇合適的語言。