우리는 ASP.NET 웹 사이트에 대한 다중 언어 지원을 추가 할 계획입니다. 현재 문화권을 기반으로 리소스 파일에서 문자열을 가져 오는 일반적인 과정을 이해하지만 다음과 같은 상황을 처리하는 가장 좋은 방법은 무엇입니까?다국어 ASP.NET 웹 사이트에 대한 동적 생성 문장
오늘 스택 오버플로 게시물의 개수를 사용자에게 표시하고 싶다고 가정 해 보겠습니다. 게시물 수는 i
입니다. 그런 다음 영어로 작업하는 경우 다음 코드를 사용합니다.
if(i == 1)
{
postCountText = "You have made " + i + " post today";
} else {
postCountText = "You have made " + i + " posts today";
}
그래서 우리가 단수형 또는 복수형 중 어느 것을 다루고 있는지에 따라 텍스트가 생성됩니다.
다른 언어로 게시물 개수 텍스트를 만들려면 어떻게해야합니까? 분명히 우리는 위와 같은 많은 조건문을 가질 수 없기 때문에 리소스 파일의 문자열은 자동으로 원하는 출력 텍스트를 생성해야합니다. 다른 언어에서는 변경되는 단어가 post(s)
일뿐만 아니라 단수형과 복수형 사이를 이동할 때 today
이라는 단어가 사용 된 것일 수도 있습니다.
내가 가지고있는 유일한 아이디어는 외부 리소스 파일에 단 하나와 복수에 대한 문자열 두 개를 저장 한 다음 이들에 String.Format
을 적용하여 올바른 위치에 게시물 개수를 삽입하는 것입니다.
영어 리소스 파일은 다음과 같은 두 개의 문자열을 포함하는 것, 즉 :
if(i == 1)
{
postCountText = String.Format(GetResourceString("singlePostCount"), i);
} else {
postCountText = String.Format(GetResourceString("pluralPostCount"), i);
}
이 다음 텍스트를 허용합니다 :
singlePostCount : "You have made {0} post today"
pluralPostCount : "You have made {0} posts today"
을 그럼 난 출력 텍스트를 만들려면 다음 코드를 것 어떤 언어에 대해서나 바르게 바꿀 수있다. 그런데, 게시물이 없으면 특정 텍스트에 다른 텍스트가 필요한 경우 어떻게해야합니까?
이것은 기본적으로 "당신은 {0} 게시물 오늘 만든 '질문에서, 나는 그게 아니라 생각처럼 동일 그가 알고 싶었다. 실제 질문은 문장이 $ amount $의 값에 따라 달라지는 경우입니다. –