추상 위키백과/언어의 표현
이 문서는 현재 초안입니다. 관련하여 더 많은 정보가 토론 문서에 있을 수 있습니다. 번역 관리자께: 일반적으로 초안은 번역으로 표시하지 않습니다. |
언어 객체
2021년 3월 현재, 위키함수는 미디어 위키어 코드 (예를 들어, 영어는 "en", 일본어는 "ja" 등)를 사용하는 언어를 나타냅니다. 영어 레이블 "유형"을 나타내는 단일 텍스트는 예를 들어 다음과 같습니다:
{
"type": "Monolingual text",
"language": "en",
"text": "Type"
}
|
{
"Z1K1": "Z11",
"Z11K1": "en",
"Z11K2": "Type"
}
|
여기서 "en"과 "type"은 Z6/문자열 유형입니다.
제안은 Z11K1/언어의 유형을 Z6/문자열에서 새로운 유형 Z60/자연어로 변경하는 것입니다. Z60/자연어에는 Z6/문자열의 Z60K1/자연어 코드 키가 하나뿐입니다. 이것은 위의 표현이 다음으로 변경 될 것임을 의미합니다:
{
"type": "Monolingual text",
"language": "English",
"text": "Type"
}
|
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "Type"
}
|
코드를 통한 객체의 장점
- 언어 코드를 암기하지 않고 다른 모든 객체와 동일한 검색을 사용할 수 있습니다.
- 인터페이스 언어를 전환 할 때 독자는 언어 코드 대신 언어로 언어 이름을 볼 수 있습니다.
- 미디어위키의 언어 시스템에 의존하는 것을 하드 코딩하는 대신 언어 객체의 일반적인 검증을 사용할 수 있습니다.
- 후자의 요점은 위키함수 코드를 지원하는 다른 구현에 대해 생각할 때 특히 적절합니다: 일관된 행동을 보여주기 위해 미디어위키 언어 시스템의 일부를 다시 구현해야합니다.
객체에 대한 코드의 장점
- 우리는 이미 코드 목록을 제공하는 API를 가지고 있으며 위키 내부의 동일한 소스를 사용하여 언어 코드가 양호한지 확인할 수 있습니다.
- 우리는 "Z1002"보다 "en"에 더 익숙합니다.
- 현재 Z12/다국어 텍스트 구성 요소는 매우 빠릅니다. 객체를 사용하기 위해 구성 요소를 다시 쓰는 것이 전체적으로 훨씬 느리게 될 것입니다.
- 미디어위키는 이미 언어와 다른 이름의 언어를 잘 지원하고 있습니다. 우리는 자체 솔루션을 개발하는 대신 다른 언어로 이름을 표시하는 대신 사용할 수 있습니다.
언어명
"진지하게? 우리는 이미 모든 언어로 미디어위키의 모든 언어 이름을 가지고 있으며 위키데이터에도 언어 이름이 있습니다. 세 번째로 다시 가지고 있습니까? 그게 어떻게 멋져요?"
좋아요, 좋아요, 그렇지 않습니다. 이 이름을 재사용하는 것은 정말 달콤합니다.
그러나 다음은 다음과 같습니다. 우리가 일회성 코딩을 하면 미디어위키 설치 실행의 일부에 의존하는 일회성 코딩을 수행하면 기본적으로 모든 평가 엔진이 미디어위키의 해당 부분을 재현해야합니다. 또는 CLDR에 의존합니다. 그리고 이것들 중 하나는 부담스러운 느낌이 듭니다.
우리가 할 수 있는 한 가지 방법은 미디어위키에서 언어의 레이블을 생성하고 필요에 따라 위키람다의 데이터 디렉토리로 재생 한 다음 필요에 따라이를 다시 로드하는 것입니다.
추가 단계는 언어 객체에 대한 레이블 편집을 잠그고 레이블의 변경을 강등하여 미디어위키의 확립된 프로세스를 통해 이루어집니다. 그것들을 잠그지 않으면서, 우리는 위키에서 나온 변화가있는 위키함수에 의한 위키에서의 양방향 동기화 조정 변경에 문제가 있을 수 있습니다.
BCP 47 매핑
"우리는 이미 BCP 47에서 미디어위키 언어 코드까지 매핑을 가지고 있습니다! 우리 자신을 발명하는 대신 그것들을 재사용합시다."
알고 있습니다.
제안은 언어 이름의 제안과 유사합니다. 결국 그것은 단지 두 가지 매우 간단한 기능입니다. 이것들은 미디어위키의 매핑을 재현하고 업로드하고 잠재적으로 편집을 잠시함으로써 위에서 설명한 것과 유사한 접근법을 통해 최신 상태로 유지 될 수 있습니다.
언어 폴백
나중에 해결합시다. 인터페이스와 대상 언어에 대한 다른 솔루션이 있을 수 있습니다.
언어 목록
이미 여러 언어 목록이 있습니다. 다음은 몇 가지 관련이 있습니다:
- 인터페이스 언어: 미디어위키의 사용자 인터페이스가 지원하는 언어, 즉 미디어위키의 사용자 인터페이스 요소가 렌더링 될 수있는 언어 (이것은 미디어위키 컨텐츠 언어와는 다르며 언어의 미디어위키 매뉴얼 참조)
- 위키데이터에서 어휘소 언어 목록
- 미디어위키 컨텐츠 언어
- 위키백과 언어판 목록
- 영어 위키낱말사전의 커뮤니티 템플릿에서 "인정된" 8,163개의 언어 코드 목록: 위키낱말사전:언러 목록 - 다른 위키낱말사전에 비슷한 목록이 있을 것입니다.
비슷한 언어 목록 목록은 레아의 위키데이터에 있는 언어 목록입니다.
우리는 처음에 "인터페이스 언어"(언어에서 위키함수의 인터페이스는 어느 언어가 사용 가능한가?)를 "대상 언어"와 분리하는 것을 고려하고 있었습니다(위키함수 자연어 생성 라이브러리가 컨텐츠를 생성할 수 있는 언어). 이 두 목록을 정렬하면 모든 사람에게 더 유용 할 것이라고 결정했습니다. 아마 조금 더 비싸지 만 결국 모든 사람의 상황을 개선해야 합니다.
언어의 초기 목록
미디어위키 인터페이스 언어는 미디어위키 사용자 인터페이스가 지원하는 언어를 기반으로 합니다.
미디어위키는 ISO 639 또는 BCP 47 코드와 유사한 짧은 문자열을 사용하는 언어를 식별합니다. 이들의 전체 목록은 LanguageInfo API를 통해 제공됩니다. 이 목록에는 858개의 언어를 작성할 때가 있습니다. 우리는이 목록을 첫 번째 언어 목록으로 시작할 것입니다. 이 언어 목록의 출처는 토론 페이지에 설명되어 있습니다.
현재 Z12/다국어 텍스트로 지원하는 언어 목록과 uselang 매개 변수는 858개 언어의 전체 목록입니다.
이것은 언어가 무엇인지에 대한 매우 포괄적인 견해입니다: 몇 가지 예를 들어, 목록에는 "de-formal", 각 "uz", "uz-latn"및 "uz-cyrl", "등"이 포함됩니다.
ZID 할당
다음은 첫 번째 언어 집합을 ZID에 할당하기위한 제안입니다:
- 먼저, UN의 공식 작업 언어 목록을 사용하여 처음 몇 개의 ZID를 지정하세요(이 방법으로 시스템으로 작업할 때 이러한 언어를 암기 할 가능성이 있습니다). 순서는 코드를 기반으로 알파벳입니다.
- Z1001/Arabic (ar)
- Z1002/English (en)
- Z1003/Spanish (es)
- Z1004/French (fr)
- Z1005/Russian (ru)
- Z1006/Chinese (zh)
- 또한 Z1011부터 시작하여 Z1861로 이동하여 코드의 알파벳 순서를 기반으로 인터페이스 언어 전체 목록에 있는 다른 852개의 언어를 할당합니다. 추가 언어는 연대순으로 추가됩니다.
대안: 알파벳 순서를 사용하는 대신 해시를 사용하거나 무작위로 할당할 수도 있습니다. 신뢰할 수 있는 통계가 없기 때문에 L1 또는 L2 스피커의 수로 정렬하는 것은 어렵습니다.