이와 같은 현지화는 번역하려는 언어를 고려합니다. 여러 개의 복수형은 매우 드물며 대부분의 경우 상호 교환이 가능하거나 상황에 민감합니다. 응용 프로그램의 여러 위치에서 사용하지 않으면 걱정할 필요가 없습니다. 이 작업을 수행하고 특정 용도가 복수 사용법에서 문법적 오류를 만드는 경우 해당 인스턴스의 새로운 키 (모든 언어)를 추가해야합니다. 어쨌든 문화권을 탐지하고 있으므로 영향을받는 언어에 대한 조건부를 추가하고 단일 대체 복수형을 사용하십시오.
자연 언어의 흐름을 빨리 잃을 수 있으므로 회피 해주십시오. "Mins answered ago : 6".
어쩌면 당신은 처음에는 이것을 의미 했겠지만 훨씬 더 일반적인 시나리오는 다른 문화권에서 구문 배치의 변형입니다. 예를 들어, 현지화하려는 문자열입니다. "이 페이지는 X 번 조회되었습니다."이 3 지역화 문자열 수 있도록 할 수 있습니다 : 그럼 간단한 의사 구현 될 PageViewEnd = "시간" PageViewEndPlural는 = "시간"
을 "이 페이지를 볼 때"=
PageViewStart을
PageViewStart + pageCount.ToString() + pageCount == 1? PageViewEnd : PageViewEndPlural;
그러나 "Deze pagina는 {0} keer bekeken"이고 한국어는 "조회수 {0}"입니다. 따라서 여러 언어에서 여러 문장 구조의 형식을 지정하는 여러 가지 방법에 대한 구현 문제가 immediatley에서 발생하게됩니다.
내 솔루션을 암시하는 예로 의도적으로 {0}을 예제에 남겼습니다. 전체 문장에 대해 복수형 및 복수형으로 현지화를 사용하십시오.
PageView = "이 페이지를 한 번 보았습니다." PageViewPlural = "이 페이지는 {0} 번 보았습니다." 당신이 조건부 쓸 수
이 방법 (의사가 다시 구현에 따라) :
PAGECOUNT> 1? PageView : String.Format (PageViewPlural, pageCount.ToString());
유일하게 번역사가 resx 파일에 {0} 토큰의 의미와 위치를 지정해야합니다.
예를 들어주세요. –
예 : 폴란드어에는 단수, 소문자의 domy, 복수의 domow가있는 집과 같은 단수, paucal 및 복수형 용어가 있습니다. 단수는 1, paucal은 범위 2-4, 22-24, 32-34, 그리고 복수는 그 밖의 모든 것입니다. 영어보다 다소 복잡합니다. – Sam
@Sam - 저에게 예제를 추가해 주셔서 감사합니다.이 질문을 할 때 iPod Touch를 사용 했으므로 짧게 유지해야했습니다. – dustyburwell