目錄
設置Vue I18N
有效地管理翻譯文件
動態切換語言
處理動態和多元化內容
使用動態值:
多元化:
首頁 web前端 前端問答 如何在VUE應用程序中實施國際化(I18N)和本地化(L10N)?

如何在VUE應用程序中實施國際化(I18N)和本地化(L10N)?

Jun 20, 2025 am 01:00 AM
vue 國際化

VUE應用程序中的國際化和本地化主要使用VUE I18N插件來處理。 1。通過NPM或紗線安裝VUE-I18N。 2。創建Locale JSON文件(例如,EN.JSON,ES.JSON)以獲取翻譯消息。 3。在Main.js中設置I18N實例,並具有語言環境配置和消息文件。 4。使用$ t('鍵')中的模板中的訪問翻譯。 5。始終如一地管理翻譯鍵,並避免深嵌套以進行可擴展性。 6。通過在運行時更新語言環境屬性來動態切換語言。 7。在本地存儲中堅持選擇的語言,以保留用戶偏好。 8。在翻譯中使用動態值,帶有變量注入,例如$ t('Hellouser',{name:'alice'})。 9。在I18N配置中實現複數化規則,並使用$ TC()進行適當的複數處理。 10。對於諸如RTL支持或日期格式之類的高級需求,請集成INTL或Date-FN等庫,以確保完整的本地化覆蓋範圍。

VUE應用中的國際化(I18N)和本地化(L10N)主要歸結為兩件事:根據用戶的語言偏好切換內容,並確保正確顯示文本,日期,數字和其他特定於網站的特定元素。最常見和最有力的方法是使用專為VUE應用程序構建的VUE I18N


設置Vue I18N

要開始,請通過NPM或紗線安裝vue-i18n

 NPM安裝VUE-I18N@9

安裝後,創建一個語言環境消息文件(例如en.jsones.json等),並在您的應用程序輸入點( main.js或類似)中設置I18N實例:

從'vue'導入{createApp}
從'vue-i18n'導入{createi18n}
從'./app.vue'導入應用程序
從'./locales/en.json'導入en
從'./locales/es.json'導入ES

const i18n = createi18n({
  遺產:錯誤,
  語言環境:'en',
  後備名冊:“ en”,
  消息:{
    en,
    es
  }
}))

createApp(app).use(i18n).mount('#app')

現在,您可以使用$t('key')訪問模板中任何地方的翻譯。


有效地管理翻譯文件

與其將硬編碼字符串直接分為組件,不如將它們保存在結構化的JSON文件中,例如:

en.json

 {
  “歡迎”:“歡迎!”,
  “按鈕”: {
    “提交”:“提交”
  }
}

ES.JSON

 {
  “歡迎”:“âbienvenido!”,
  “按鈕”: {
    “提交”:“ Enviar”
  }
}

這使得隨著應用程序的增長而更容易維護和擴展。您還可以使用PoeditorCrowdin等工具來幫助管理翻譯,如果使用多種語言或團隊。

一些提示:

  • 保持鑰匙在整個環境之間保持一致。
  • 除非有必要,否則避免嵌套的結構深處 - 它們可能會變得凌亂。
  • 如果您的團隊包括非開發人員,請在單獨的文件或工具中使用註釋。

動態切換語言

在運行時更改應用程序的語言很簡單。只需更新I18N實例上的locale屬性:

導入{usei18n}來自'vue-i18n'

導出默認{
  設定() {
    const {locale} = usei18n()

    功能changelang(newlang){
      locale.value = newlang
    }

    返回{locale,changelang}
  }
}

在您的模板中:

 <button @click =“ changelang(&#39;es&#39;)”>español</button>

這將立即切換您的應用程序中的所有本地化文本。您還可以在本地存儲中持續使用所選語言,因此用戶不必每次訪問時都切換。


處理動態和多元化內容

有時,您需要將變量注入翻譯字符串或處理複數化。 VUE I18N支持這兩者:

使用動態值:

在您的JSON中:

 “ hellouser”:“你好,{name}!”

在您的組件中:

 <p> {{$ t(&#39;hellouser&#39;,{name:&#39;alice&#39;})}}} </p>

多元化:

在您的I18N配置中設置複數規則:

 const i18n = createi18n({
  遺產:錯誤,
  語言環境:&#39;en&#39;,
  後備名冊:“ en”,
  複數:{
    en :(選擇,選擇)=> {
      if(choiceslength === 2){
        返回選擇> 1? 1:0
      }
      返回選擇? 1:0
    }
  },,
  消息:{
    en,
    es
  }
}))

然後在您的JSON中:

 “ tookeSelected”:“您選擇{count} item |您選擇{count}項目”

在您的模板中:

這有助於使您的UI在復數規則不同的不同語言中感到自然。


這基本上就是I18N和L10N在VUE工作的方式。一旦建立了結構,它就不會太複雜,但是很容易忽略某些邊緣案例,例如RTL語言,日期格式或貨幣處理。對於這些,請研究與諸如date-fnsIntl類的庫集成。但是對於大多數標準需求,VUE I18N涵蓋了它。

以上是如何在VUE應用程序中實施國際化(I18N)和本地化(L10N)?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

vue怎麼給按鈕添加函數 vue怎麼給按鈕添加函數 Apr 08, 2025 am 08:51 AM

可以通過以下步驟為 Vue 按鈕添加函數:將 HTML 模板中的按鈕綁定到一個方法。在 Vue 實例中定義該方法並編寫函數邏輯。

React與Vue:Netflix使用哪個框架? React與Vue:Netflix使用哪個框架? Apr 14, 2025 am 12:19 AM

NetflixusesAcustomFrameworkcalled“ Gibbon” BuiltonReact,notReactorVuedIrectly.1)TeamSperience:selectBasedonFamiliarity.2)ProjectComplexity:vueforsimplerprojects:reactforforforproproject,reactforforforcompleplexones.3)cocatizationneedneeds:reactoffipicatizationneedneedneedneedneedneeds:reactoffersizationneedneedneedneedneeds:reactoffersizatization needefersmoreflexibleise.4)

Netflix的前端:React(或VUE)的示例和應用 Netflix的前端:React(或VUE)的示例和應用 Apr 16, 2025 am 12:08 AM

Netflix使用React作為其前端框架。 1)React的組件化開發模式和強大生態系統是Netflix選擇它的主要原因。 2)通過組件化,Netflix將復雜界面拆分成可管理的小塊,如視頻播放器、推薦列表和用戶評論。 3)React的虛擬DOM和組件生命週期優化了渲染效率和用戶交互管理。

vue的div怎麼跳轉 vue的div怎麼跳轉 Apr 08, 2025 am 09:18 AM

Vue 中 div 元素跳轉的方法有兩種:使用 Vue Router,添加 router-link 組件。添加 @click 事件監聽器,調用 this.$router.push() 方法跳轉。

反應,vue和Netflix前端的未來 反應,vue和Netflix前端的未來 Apr 12, 2025 am 12:12 AM

Netflix主要使用React作為前端框架,輔以Vue用於特定功能。 1)React的組件化和虛擬DOM提升了Netflix應用的性能和開發效率。 2)Vue在Netflix的內部工具和小型項目中應用,其靈活性和易用性是關鍵。

vue怎麼a標籤跳轉 vue怎麼a標籤跳轉 Apr 08, 2025 am 09:24 AM

實現 Vue 中 a 標籤跳轉的方法包括:HTML 模板中使用 a 標籤指定 href 屬性。使用 Vue 路由的 router-link 組件。使用 JavaScript 的 this.$router.push() 方法。可通過 query 參數傳遞參數,並在 router 選項中配置路由以進行動態跳轉。

vue怎麼實現組件跳轉 vue怎麼實現組件跳轉 Apr 08, 2025 am 09:21 AM

Vue 中實現組件跳轉有以下方法:使用 router-link 和 &lt;router-view&gt; 組件進行超鏈接跳轉,指定 :to 屬性為目標路徑。直接使用 &lt;router-view&gt; 組件顯示當前路由渲染的組件。使用 router.push() 和 router.replace() 方法進行程序化導航,前者保存歷史記錄,後者替換當前路由不留記錄。

怎樣開發一個完整的PythonWeb應用程序? 怎樣開發一個完整的PythonWeb應用程序? May 23, 2025 pm 10:39 PM

要開發一個完整的PythonWeb應用程序,應遵循以下步驟:1.選擇合適的框架,如Django或Flask。 2.集成數據庫,使用ORM如SQLAlchemy。 3.設計前端,使用Vue或React。 4.進行測試,使用pytest或unittest。 5.部署應用,使用Docker和平台如Heroku或AWS。通過這些步驟,可以構建出功能強大且高效的Web應用。

See all articles