iT邦幫忙

3

有關於多國語系架構設計的問題

  • 分享至 

  • xImage

請教各位大大~
目前做的案子有需要做多國語系的系統
目前使用 LARAVEL,基本的選單...皆完成!

但是有一些部分的值是由資料庫讀出來的!請問該如去設計多國語系的架構?

我目前想到的是以資料表設計不同的語系欄位,讀取資料後,再由CONTROLLER 去判斷要回傳哪一個語系的內容

title title_zh_TW title_jp
哈囉世界 Hello,World! こんにちは、世界!

不過如果語系多的話,資料庫就會變很多欄,想請教有經驗的大大,是否有其他不錯的方法可以提供給小弟參考。

froce iT邦大師 1 級 ‧ 2018-12-03 15:58:22 檢舉
https://laravel.tw/docs/5.1/localization
有i18n就用,不要自己用資料庫。
fillano iT邦超人 1 級 ‧ 2018-12-04 09:00:48 檢舉
他說的應該是content,這部份是存在資料庫。
Victor iT邦新手 2 級 ‧ 2018-12-04 09:41:22 檢舉
謝謝兩位大大!基本選單的多國語系我已經用i18n的方式完成了! 剩下就如同fillano大大所說的都是內容的部分
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

2 個回答

2

我自已的多語系規劃如下,你可以參考看看。
我會開兩張表,一個是語系的主表。一個是語系片語的主表

語系主表
landid(id值)、lang(語言)、language(語系代碼)、landtext(語言說明)
其主表的內容比較單純,只是為了給程式切換語系用

1            en       en      ENGISH
2            tw       zh-tw   繁體中文
3            cn       zh      简体中文

片語表
textcode(詞句代碼)、lang(語言)、text(詞句內容)

其内容如下

hello        en         Hello!!
hello        tw         哈囉!!
hello        cn         哈啰!!

當然,因為片語很多的情況下。其實我資料庫內的片語。並不是每一次頁面載入就取用。
其資料庫內的片語其實只是我為了增加並整理方便做處理的。
大多數處理完後。會輸出一個php檔來給頁面使用。並不會直接取用資料庫內的值。

4
犬千賀
iT邦新手 3 級 ‧ 2018-12-04 10:25:15

用語系下去分
leng_id (1:zh-TW, 2:kr, 3:vn, 4:gh, 5:en, 6:jp, ...)

leng_id title
1 哈囉世界
5 Hello,World!
6 こんにちは、世界!

如果很多文本要翻譯 我會全部放一個Table用type下去分
type (1: title, 2: content, 3: blahblah, ... )

type | leng_id | title
------------- | -------------
1 | 1 | 哈囉世界
1 | 5 | Hello,World!
1 | 6 | こんにちは、世界!
2 | 1 | 另一個文本 中文
2 | 5 | another content in english
3 | 1 | 日文沒有那麼好... =P
4 | 5 | not good at english neither

我要發表回答

立即登入回答