2011-10-01 4 views
1

나는 다음과 같은 형식의 문자열을 번역하고 싶습니다 :gettext를 사용하여 정의되지 않은 길이의 목록을 처리하는 방법은 무엇입니까?

파일 삭제 토토, 타타와 티티를.

첫 번째 아이디어는 Delete files %s을 사용하는 것이었지만 그때 나는 복수형에 대해 생각했습니다.

일부 언어는 끝에 'and'를 넣지 않지만, 예를 들어 마지막 항목과 이전 항목에 대해 서로 다른 두 단어를 사용하면 어떨까요?

  • 당신이 그와 같은 언어를 알고 계십니까 :

    그래서 여기에 두 가지 질문입니까?

  • 이 사례를 처리하는 더 좋은 방법을 알고 있습니까?
+0

여러 개의 양식이있을 수도 있습니다. http://code.google.com/webtoolkit/doc/latest/DevGuideI18nPluralForms.html – nos

+0

감사합니다. 여러 개의 양식이있을 수 있으며 그로 인해 내가 생각할 수있는 부분이 있음을 알았습니다. 다른 목록 형식이어야합니다. 어쨌든 귀하의 링크 덕분에 이제는 기본적으로 지원 목록을 알 수 있습니다. 그러나 그들은 영어와 다르게 작동 할 수있는 언어에 대해서는 말하지 않습니다. – needle

답변

2

이것은 더 복잡합니다.

실제로 언어는 복수형을 가질 수 있지만 단수형과 복수형 중 하나만 선택하면됩니다. 기본적으로 Do you want to delete this file: %s? 또는 Do you want to delete these files: %s?입니다. 나는 모든 언어에 대해 말할 수는 없지만 이것은 폴란드어에서는 괜찮을 것입니다. 당신이 (오히려 좋은 생각 인) 양을 넣어하려는 경우
그러나, 여러 복수 형태로 끝날 것 : Do you want to delete this file: %s (번역 Czy chcesz usunąć ten plik: {0}?) 또는 Do you want to translate these %n files: %s 번역 중 Czy chcesz usunąć te %n pliki: %s? 또는 Czy chcesz usunąć tych %n plików: %s?한다.

목록의 경우 CLDR charts을 사용하는 것이 좋습니다. listPattern을 찾아보십시오. 내가 폴란드어 차트에서 조각을 제시하고 아래 : toto; tata i titi :

enter image description here

{0}과 {1} 자리 표시 자, 사용자가 제공 한 목록과 같을 것이다. 나는 아직도 이것이 (폴란드어에서 내가 더 toto, tata i titi에 경향이있는) 좋아할만한 것이라고 확신하지는 않는다. 그러나 이론 상으로는이 정보를 사용하여 목록을 만들 수있다.
다른 사람의 대답은 일반적으로 (언어와 상관없이) 그러한 목록을 만드는 것은 실제로 불가능하며 사람들은 선택을 위해 목록보기 컨트롤을 사용하거나 문제를 피하기 위해 세로 목록으로 데이터를 사용하는 경향이 있다고 주장했습니다. 이 문제가 될 수

These file(s) would be deleted: 
toto 
tata 
titi 
Are you sure? 

(가 화면에 맞지 않을 수도 있습니다)하지만이 사람들이 종종 외국어 목록과 문제가 발생하지 않도록 할 것입니다 : 귀하의 예를 수정해야합니다.

+1

완벽한 답변을 보내 주셔서 감사합니다. CLDR은 첫 번째 질문에 대한 좋은 대답입니다. 목록보기가 목록 대신 사용된다는 사실은 나의 두 번째 요점에 대한 꽤 좋은 대답입니다. – needle

+0

차트를 사용하는 것보다 CLDR 데이터 (XML)를 추출하는 것이 좋습니다.C 또는 Java 사용자 인 경우 ICU는이 CLDR 데이터에 액세스 할 수 있으며 곧이 데이터를 사용하는 목록 형식기를 갖게됩니다. –

관련 문제