請教各位大大~
目前做的案子有需要做多國語系的系統
目前使用 LARAVEL,基本的選單...皆完成!
但是有一些部分的值是由資料庫讀出來的!請問該如去設計多國語系的架構?
我目前想到的是以資料表設計不同的語系欄位,讀取資料後,再由CONTROLLER 去判斷要回傳哪一個語系的內容
title | title_zh_TW | title_jp |
---|---|---|
哈囉世界 | Hello,World! | こんにちは、世界! |
不過如果語系多的話,資料庫就會變很多欄,想請教有經驗的大大,是否有其他不錯的方法可以提供給小弟參考。
我自已的多語系規劃如下,你可以參考看看。
我會開兩張表,一個是語系的主表。一個是語系片語的主表
語系主表
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檔來給頁面使用。並不會直接取用資料庫內的值。
用語系下去分
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