문제

적절한 기사 (a/an)를 사용하는 동안 명사를 문장에 올바르게 삽입하는 문화적으로 민감한 방법을 찾고 있습니다. 이 작업을 수행하는 적절한 방법이 다른 곳에 존재하는 경우 String.format 또는 다른 것을 사용할 수 있습니다.

예를 들어:

기본 문장 : "당신은 a/an {0}을보고 있습니다"

이것은 "당근을보고 있습니다"또는 "계란을보고 있습니다."

나는 현재 삽입 할 단어의 첫 번째 문자를 수동으로 확인한 다음 "a"또는 "an"을 수동으로 삽입 하여이 작업을 수행하고 있습니다. 그러나 나는 응용 프로그램이 다른 언어에 국한 될 때 이것이 제한 될 수 있다는 것이 걱정됩니다.

이 문제에 접근하기위한 모범 사례가 있습니까?

해결 : 문제는 내가 원래 표현 한 방식 으로이 문제를 해결하기위한 유틸리티 또는 프레임 워크가 존재하지 않는 시점에서 복잡한 것으로 보입니다. 최상의 솔루션 (내 상황에서)은 번역가가 필요한 제어 수준을 갖도록 명사와 함께 데이터베이스에 기사를 저장하는 것 같습니다. 모든 제안에 감사드립니다!

도움이 되었습니까?

해결책

LC (1 시간, 모자)가 언급 한 문제 외에도 문법 규칙은 다른 언어의 규칙이 크게 다릅니다. 예를 들어, 많은 라틴어 기반 언어는 명사의 '성별'및 '숫자'를 기반으로 명사 기사를 전환합니다. 많은 예외.

인터페이스를 현지화하는 것에 대해 이야기하고 있다면 각 언어의 인터페이스 요소 명사와 함께 기사를 저장합니다. 사용자 입력을 처리하는 경우 쉽게 수행 할 수있는 방법이 없습니다.

다른 팁

문제는 영어로되어 있습니다. A-VS-An은 시작에 의해 결정되지 않습니다. 편지, 그러나 시작 소리. 출발 편지를 기반으로 영어로 꽤 좋은 가정을 할 수 있지만 몇 가지 예외가 있습니다 (예 : "시간", "사용자").

가장 좋은 방법은 선택할 수있는 단어의 발음에 접근하는 것입니다.

다음으로 가장 좋은 방법은 일반적인 예외 목록을 가지고 있다는 것입니다. 그런 다음 나머지는 추측합니다.


에서 위키 백과:

"A"또는 "AN"의 선택은 철자 규칙보다는 발음 규칙에 의해 결정됩니다. "A"는 "A"와 다음 단어 예를 들어 "X-ray"사이에 필요한 어색한 Glottal STOP (Momentary Silent Pause)를 제거하기 위해 연설에 사용됩니다. 다음 단락은 "an"에 대한 철자 규칙입니다. 발음 규칙이 이해되지 않으면 사용할 수 있습니다.

날에 오래된 텍스트 어드벤처 컴퓨터 게임, 이것을 해결하는 한 가지 방법은 "A", "an", ""등의 실제 이름의 일부를 만드는 것이 었습니다. 이 게임에서 "사서함"이 표시되면 "A"를 결정할 스마트 AI가 없습니다. 객체의 이름은 "사서함"입니다. 일부 게임에서는 "당신은 우편함을 열어"라고 말할 수 있습니다. 이는 바보 같은 소리를냅니다. 다른 게임에서는 "당신은 사서함을 열어"라고 말할 수 있습니다. 즉, 다른 문법적 맥락에서 사용되는 다른 이름이 입력 된 다른 이름이 있음을 의미합니다. 나는 당신이 지금 당신이 지금 진행중인 경로 대신이 경로를 갈 것을 제안합니다.

다른 언어에는 비슷한 문제가 있지만 객체의 성별 또는 실제 객체 수에 따라 다른 상황에서는 다른 상황에서 다른 문맥에서는 하나와 두 개 객체를 구별 할뿐만 아니라 문법은 하나, 둘 이상의 것에 대해 다릅니다. 러시아어로 된 두 가지 물체).

독일어의 예를 사용하려면 :

"당신은 (n) x를보고 있습니다"와 동등한 것은 다음과 같습니다.

"Du Siehst Ein X"
또는 "du Siehst Eine X"
또는 "Du Siehst Einen X"

대상 X의 성별에 따라 대상의 성별은 당신이 추측 할 수없는 것입니다. 그것은 역사적 전통에 기초하여 단지 대상의 이름과 연결되어 있습니다.

따라서 대부분의 언어로 이러한 차이를 구현하는 간단한 방법은 없습니다. 나의 조언은 항상 모든 경우에 효과가있는 공식을 사용하는 것입니다.

"당신은 유형 X의 대상을보고 있습니다"
또는 "당신은 (n) x를보고 있습니다"
또는 "당신은 하나의 X를보고 있습니다"

이것은 문화적으로 어떻게 민감합니까? 당신이하려는 일 영어로 의미가 있습니다. 다른 언어는 문장에 완전히 다른 변경이 필요할 수 있습니다. 일부는 명사를 수정할 수 있고 일부는 문장 구조를 변경할 수 있으며 일부는 단어를 재정렬 할 수 있습니다.

당신이하려는 일 ~ 할 것이다 다른 언어에 현지화되면 휴식을 취하십시오. 이것을 해결하는 자동적 인 방법은 없습니다.

간단한 예로, 영어로 "{something}"을 쓸 때 어떤 일이 일어나는지 고려하면 "The"와 단어로 접두사를 접두사하면 모든 것이 잘됩니다. 프랑스어로서, 당신은 성별에 따라 Le, La 또는 Les와 접두사를 접두사합니다. 덴마크에서는 대신 'en'또는 'et'접미사를 추가합니다. 따라서 단어 테이블이 "Bord"로 번역되는 경우 "테이블"은 "Bordet"이됩니다. "의자"(stol)는 "도난"이된다.

이것에 대한 유일한 의미있는 방법은 번역기가 전체 문장. 여기저기서 문화 의존적 단어를 몇 개 꽂을 수 있다고 가정하지 마십시오.

따라서 실제로 최상의 솔루션은 응용 프로그램이 사소한 현지화 될 수 없다는 것을 인정하는 것입니다. 아마도 몇 가지 주요 언어가 가능하고 그 외에는 문제를 무시할 수 있습니다. 그런 다음 향후 어느 시점에서 응용 프로그램을 언어 X로 변환 해야하는 경우 번역가와 협력하여 응용 프로그램 코드에 필요한 변경 사항을 변경하십시오.

또는 문장을 직접 구성하려는 시도를 완전히 포기해야합니다. 문장이 올바른지 확인하는 유일한 방법은 번역기가 전부의 문장. 물론, 그것은 당신이 개별 단어를 교환하고 싶을 때 문제를 일으 킵니다.

라이브러리가 있습니다 .NET Impector 이는 그러한 일에 대해 동일한 방식으로 재사용되거나 확장 될 수있는 복수화/단수화에 사용됩니다. 여기서 찾고있는 것은 예외로 조정할 수있는 일반적인 규칙입니다. 예를 들어, 일반적으로 모음으로 발음되는 문자 조합으로 시작하는 단어. 이것은 문화적으로 민감하지는 않지만 적어도 영어로 시작해야합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top