내 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
을 로케일을 지정하지 않고 String.toLowerCase()
URL 문자열로 변환하는 논리가 더 깊어 져서 바람직하지 않은 동작이 발생했습니다. 이 파일은 String.toLowerCase(Locale.US)
? URL 스키마는 언어를 선택한다고 생각 하겠지만 i11n은 렌더링 된 HTML (또는 json이 html로 삽입되는 등)과 같은 최종 사용자가 볼 수있는 요소를위한 것입니다. – yshavit
API_ENDPOINT.values ()에서 생성 된 URL 문자열은 모든 언어에 대해 구성된 장치에서 동일해야합니다. 문제점은 * API_ENDPOINT.MISSION에서 끝점을 생성하는 터키 장치가 영어 장치에서 생성 된 장치와 다릅니다. – dbro
아, 알겠습니다. 그건 내 머리에서 완전히 뒤집 혔어. :) – yshavit