簡體   English   中英

c#Web API本地化

[英]c# Web API localization

標題有點誤導。 我必須構建一個新的Web API應用程序來為我們正在構建的許多不同客戶端提供服務。 我不需要API中的參數或路由本地化。

基本上,客戶端將要求指定語言的資源,web api將返回結果。

我唯一的要求是本地化資源將存儲在SQL DB中而不是資源文件中。

由於Web API只返回本地化結果並且不需要本地化,我應該嘗試遵循.NET本地化實踐,還是應該創建一個模仿本地化例程的簡單緩存表查找功能?

從技術上講,如何在服務器端保存本地化信息與客戶端應用程序(調用API)無關。 您可以將其保存在數據庫中,也可以將其保存在資源文件中; 一切都取決於系統的架構。

但您可以通過兩種方式解決您的需求:

  1. 將語言環境放在api url中:客戶端應用程序可以提供適當的語言環境,如下所示:

獲取https://apiserver.com/api/v1.0.0/en-GB/cities

獲取https://apiserver.com/api/v1.0.0/fr-CA/cities

獲取https://apiserver.com/api/v1.0.0/en-US/cities

在服務器端,您可以按如下方式配置方法:

[Route("v1.0.0/{locale}/cities")]
[HttpGet]
public List<City> GetCities(string locale)
{
    // Get cities by locale
    return cities;
}
  1. 在HTTP標頭中傳遞區域設置信息。 在服務器端讀取標頭中傳遞的區域設置並相應地發送響應:

     public WebRequest GetWebRequest(Uri uri) { WebRequest request = base.GetWebRequest(uri); request.Headers.Add("locale", "en-GB"); return request; } 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM