當前位置:
首頁 > 最新 > 多語言的秘密

多語言的秘密

SAPtechnical

聊聊SAP的那些事兒

更多精彩請關注公眾號,不要錯過精彩內容哦。

如果你覺得文章還不錯,請推薦給你的朋友吧。

語言是人與人交流溝通的工具,當你出國後,發現語言環境改變了,如果語言不通,就難於和人家交流溝通,就會造成諸多不便,甚至麻煩多多。因此,如果能夠掌握外語的話,就會減少很多不必要的麻煩,編程亦是如此,老外的網站也不可能全都是顯示中文,所以,今天就來聊一聊編程中的多語言。

寫在前面

大多數的編程語言是通過xml配置文件的方式實現多語言的,把字元串的資源放在xml文件中,載入字元串的時候從xml讀取。

在SAP ERP系統中,為了兼容性,ABAP代碼中使用的是SAP專有的language codes(請參考SAP系統表T002),其基本符合ISO 639 alpha-2 language code。如果SAP UI5應用程序連接SAP ERP系統應用伺服器,默認URL參數sap-language的值為SAP專有language codes,會被自動轉成BCP-47 language tag。

而SAP UI5中使用了i18n的機制來處理多語言問題,i18n來源於英文單詞internationalization的首尾字元i和n,即國際化的簡稱,18是中間的字元數,就是在不同語言訪問的情況下,展現出當前使用語言界面的功能。具體如何使用也非常簡單。

HANA的UI中是使用text bundles文件實現的,我在之前的推文中也有介紹,如果你沒看到,請翻閱一下,根據應用程序的語言設置來自動選擇相應的語言文本,我們今天的重點不是說這個,所以這裡不再贅述其使用方法。

多語言對於一個全球化的公司來說是非常重要的,通過前面的介紹在SAP ERP系統中、SAP UI5中等,所有的內容都是支持多語言的。今天說後台不說前台,SAP的HANA也是支持多語言的,今天就來一起探討一下,看看HANA建模是如何支持和實現多語言的。

當前語言

在HANA安裝後就會默認一種LOCAL的語言,我們可以直接查看當前語言,直接使用session context查看即可,如下圖所示:

當然,最直接的辦法就是不寫SQL,也可以直接在studio里查看,如下圖所示:

上述兩個截圖對比,很顯然兩者的結果是一致的。所以,不管用哪種方法,我們的目的是要知道系統默認了LOCAL的是什麼語言。知道了語言的前提下,我們開始為後面探討的內容準備一下原始數據。

數據準備

首先,準備兩張數據表,就像在SAP ERP里取文本描述一樣,一個編碼,名稱,另一個語言,文本,這裡就不一一截圖了,來看一下兩張表join後,最終整理出結果如下圖所示:

備註:每種語言一條數據,我這裡為了測試方便,把準備的三組數據都展示出來,為了對比明顯。

那麼,數據準備好後,我們要做什麼呢,要在模型中實現上述結果。

做HANA的朋友應該知道,在HANA模型中,使用Text Join關聯類型來實現join語言數據表。下面就是Text Join的實驗過程。

實驗一

我們在進行第一個實驗前,先看一下Text Join的過程,如下圖所示:

簡單解釋:

Join Type 選擇 Text Join

Language選擇LANGU

前面截圖可以知道默認是EN,那麼看下面截圖:

為什麼沒有顯示文本呢,找了一下,原來和ERP里的原理一樣,English並不是用EN代表,所以,我們把語言代碼更改為E,如下圖所示:

再次執行我們使用Text Join的模型,顯示結果如下圖所示:

結果英文的文本顯示出來了,為了更清晰的說明問題,我們還可以繼續嘗試下面的做法。

實驗二

我們把系統語言更改一下,更改為:中文。這樣會不會影響結果顯示呢,如下圖所示:

其他內容均不變,我們只看模型的執行結果,如下圖所示:

同樣,文本沒有顯示出來,那麼,我就不多解釋了,讀者朋友應該很清楚了。

到這裡應該足以說明問題了,但為了顯示思路的更加嚴謹,我們再做一個測試。

實驗三

我們把最初準備的數據的語言代碼都更新一下,如下圖所示:

這次我們需要顯示法語的文本內容,所以,先把系統的LOCAL語言修改為法語,如下圖所示:

準備好這些條件後,我們再次執行Text Join的模型,結果如下圖所示:

這樣就足以說明問題了。獲取所有語言代碼,可以在公眾號回復:多語言的秘密。公眾號會聊天,如果回復多了不要介意,到此本文結束,感謝閱讀。


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 SAPtechnical 的精彩文章:

TAG:SAPtechnical |