我的Android應用程序使用枚舉類型來定義某些API端點。跨多種人類語言統一enum.values()
public static enum API_ENDPOINT{
MISSION, FEATURED_MEDIA
}
枚舉類型似乎是依賴於API調用類型的方法適當的說法,但我無法翻譯枚舉一貫的字符串(即用於映射到API端點URL)的跨設備具有不同的配置語言。
在土耳其API_ENDPOINT.values()
回報:mıssıon, featured_medıa
在英語API_ENDPOINT.values()
回報:mission, featured_media
一個顯而易見的解決方案是一個額外的數據結構,映射到API_ENDPOINT
硬編碼字符串終點,但我很好奇是否這種enum.values()
的行爲是有意和/或可避免的。
已解決:謝謝大家的見解。在邏輯上更深入的將API_ENDPOINT
轉換爲我使用的URL字符串String.toLowerCase()
,而不指定Locale,這導致了不良行爲。這已被替換爲String.toLowerCase(Locale.US)
我從i11n專家很遠,但它是正常i11n-IZE網址?我認爲一個URL方案只是選擇一種語言,而i11n只是爲最終用戶可見的元素,比如呈現的HTML(或插入到html中的json等)。 – yshavit
我希望從API_ENDPOINT.values()生成的URL字符串在爲每種語言配置的設備上都相同。我的問題是,從API_ENDPOINT.MISSION生成端點的土耳其設備不同於英文設備上生成的設備。 – dbro
啊,好的。完全顛倒了我的腦袋。 :) – yshavit