多語言範例網站

ShipLang架構的特色是,你只需要在後台書寫一種語言的網頁,系統就會自動翻譯成多種

使用方法很簡單:在需要翻譯的元素上新增data-i18n="翻譯鍵名" 屬性即可。系統會自動翻譯帶有data-i18n 標記的元素

Js文本翻譯原理:Js向頁面傳遞文本[哈嘍]會讀取[data-i18n="哈嘍"]的翻譯結果

你需要將本頁面切換為英文查看,下方展示了各種常見場景的使用方式,每個範例都包含程式碼和實際效果示範。

其中Html代碼框組件【pre】【code】沒辦法被data-i18n標籤翻譯,如果這兩個加入了i18n可能會報錯

多語言使用方式集中展示

1.只要在标签加入[data-i18n]即代表该内容需要被翻译,示例:

<p data-i18n="welcome">欢迎使用</p>

歡迎使用

2. 当[data-i18n]的值相同,系统也会容错处理,不会翻译为相同文本

<p data-i18n="k">你好</p><p data-i18n="k">不错</p>

你好

不錯

3. 无[data-i18n]标记文本(代表不翻译)

<span>这段文本没有data-i18n标记,不会被翻译</span>
这段文本没有data-i18n标记,不会被翻译

4. 输入框Placeholder翻译兼容

<input data-i18n="email_placeholder" placeholder="请输入邮箱">

5. 按钮文本,点击按钮通过js修改文本翻译

<button data-i18n="btn_submit">修改文本</button>

主要原理是基于隐藏标签,假设隐藏标签的文本存在要翻译的文本就会读取隐藏标签的翻译之后的文本,实现翻译

6. 嵌套元素

<div><p data-i18n="nested">这是嵌套在div中的文本</p></div>

這是嵌套在div中的文本

7. JavaScript动态内容,代码中是中文,当用户切换英语也会显示英语

document.getElementById('btn').addEventListener('click',function(){alert('这是JavaScript弹窗内容');});

8. PHP动态列表

<?php foreach ($qx_list as $i) {echo '<li data-i18n="item">' . $i['text'] . '</li>';}?>
  • 列表資料1
  • Wechat:5833487
  • 列表資料2

9. Meta标签SEO

<title data-i18n="title">标题</title><meta data-i18n="keywords" name="keywords" content="关键词"><meta data-i18n="description" name="description" content="描述">

Meta標籤已在頁面head中設置,用於渲染seo搜尋引擎排名

這是JavaScript彈跳窗內容 主要原理是基於隱藏標籤,假設隱藏標籤的文本存在要翻譯的文本就會讀取隱藏標籤的翻譯之後的文本,實現翻譯